Microsoft hat den Code des Hypervisors OpenVMM und der Paravirtualisierungsplattform OpenHCL veröffentlicht.

Das Unternehmen Microsoft hat die Veröffentlichung der Quelltexte für die Paravirtualisierungsschicht OpenHCL und den Monitor für virtuelle Maschinen OpenVMM angekündigt, die speziell für den Betrieb von OpenHCL entwickelt wurde. Der Code von OpenVMM und OpenHCL ist in der Programmiersprache Rust verfasst und steht unter der MIT-Lizenz. OpenVMM gehört zu den Hypervisoren der zweiten Ebene, die im selben Schutzring wie der Kernel des Betriebssystems arbeiten, ähnlich wie Produkte wie VirtualBox und VMware Workstation. Es wird der Betrieb auf Host-Systemen mit Linux (x86_64), Windows (x86_64, Aarch64) und macOS (x86_64, Aarch64) unterstützt, wobei die von diesen Betriebssystemen bereitgestellten Virtualisierungs-APIs KVM, SHV (Microsoft Hypervisor), WHP (Windows Hypervisor Platform) und Hypervisor.framework verwendet werden.

Zu den in OpenVMM unterstützten Funktionen gehören:

  • Starten im UEFI- und BIOS-Modus, direktes Booten des Linux-Kernels;
  • Unterstützung der Paravirtualisierung mit Virtio-Treibern (virtio-fs, virtio-9p, virtio-net, virtio-pmem);
  • Unterstützung der Paravirtualisierung über VMBus (storvsp, netvsp, vpci, framebuffer);
  • Emulation von vTPM, NVMe, UART, dem Chipsatz i440BX + PIIX4, IDE HDD, PCI und VGA;
  • Backends für die Durchleitung von Grafiken, Eingabegeräten, Konsolen, Speicher und Netzwerkzugang;
  • Verwaltung über die Befehlszeilenschnittstelle, interaktive Konsole, gRPC und ttrpc.

OpenHCL wird als Umgebung mit Komponenten der Paravirtualisierung (Paravisor) positioniert, die über dem Hypervisor OpenVMM arbeitet. Das Hauptmerkmal von Virtualisierungssystemen, die auf OpenVMM und OpenHCL basieren, besteht darin, dass die Komponenten der Paravirtualisierung nicht auf der Seite des Host-Systems, sondern in einer virtuellen Maschine mit dem Gastbetriebssystem ausgeführt werden. Die Isolation der Paravirtualisierungsschicht vom Gastbetriebssystem wird durch den Hypervisor der zweiten Ebene OpenVMM gewährleistet. In dieser Anwendung kann OpenHCL als virtuelle Firmware betrachtet werden, die auf einem höheren Privilegierungsniveau als das im Gastumfeld betriebene Betriebssystem ausgeführt wird.

Die Trennung des Gastbetriebs und der Komponenten von OpenHCL erfolgt unter Verwendung des Konzepts der virtuellen Vertrauensstufen (VTL, Virtual Trust Level), für dessen Umsetzung sowohl Softwaremechanismen als auch Hardwaretechnologien wie Intel TDX (Trust Domain Extensions), AMD SEV-SNP (Secure Encrypted Virtualization-Secure Nested Paging) und ARM CCA (Confidential Compute Architecture) verwendet werden können. Für die Ausführung der Komponenten von OpenHCL wird eine abgespeckte Version des Linux-Kernels verwendet, die nur die minimal erforderlichen Komponenten für den Betrieb von OpenVMM enthält.

Microsoft hat den Code des Hypervisors OpenVMM und der Paravirtualisierungsplattform OpenHCL veröffentlicht.

OpenHCL kann auf x86-64- und ARM64-Plattformen betrieben werden und unterstützt Intel TDX-, AMD SEV-SNP- und ARM CCA-Erweiterungen für zusätzliche Isolation. OpenHCL umfasst eine Reihe von Diensten, Treibern und Emulatoren, die verwendet werden, um den Zugriff auf die Hardware zu organisieren, den Betrieb virtueller Geräte auf der Seite des Gastbetriebs zu gewährleisten und Hardwaregeräte zu emulieren (zum Beispiel kann ein Chip für die Speicherung kryptografischer Schlüssel – vTPM – emuliert werden).

Zur Übersetzung des Zugriffs auf die Hardware auf der Seite des Gastbetriebs werden vorhandene Treiber mit Unterstützung für Paravirtualisierung verwendet oder es kann eine direkte Zuordnung von Geräten zu einer virtuellen Maschine erfolgen, was es ermöglicht, bestehende Gastbetriebe ohne Änderungen in die OpenHCL-Umgebung zu migrieren. Darüber hinaus umfasst OpenHCL Komponenten für Diagnosen und Debugging virtuelle Maschinen, die unter Verwendung von Erweiterungen für vertrauliche Berechnungen durchgeführt werden.

Im Gegensatz zum bereits bestehenden offenen Projekt COCONUT-SVSM (Secure VM Service Module), das Dienste und emulierte Geräte für Gastbetriebe bereitstellt, die in vertraulichen virtuellen Maschinen (CVM, Confidential Virtual Machine) ausgeführt werden, ermöglicht es OpenHCL, in Gastbetrieben standardisierte Schnittstellen zu verwenden, während COCONUT-SVSM eine spezielle Interaktion mit SVSM, Änderungen am Gastbetrieb und die Verwendung separater Treiber erfordert.

Zu den Anwendungen des Paravirtualisierungs-Frameworks OpenHCL gehören Szenarien wie die Migration bestehender Systeme auf die Nutzung von Azure Boost Hardwarebeschleunigern, ohne Änderungen am Speicherabbild des Gastsystems vorzunehmen; das Ausführen vorhandener Gastsysteme in virtuellen Maschinen, die vertrauliche Berechnungen ermöglichen (z. B. basierend auf Intel TDX und AMD SEV-SNP); die Organisation eines verifiziertem Starts von virtuellen Maschinen unter Verwendung des UEFI Secure Boot-Modus und vTPM.

Besonders hervorgehoben wird, dass das Projekt OpenVMM sich auf die Verwendung mit OpenHCL konzentriert und derzeit nicht für eine separate Anwendung in Host-Systemen für produktive Implementierungen durch Endbenutzer bereit ist. Zu den Problemen von OpenVMM, die seine Nutzung in Host-Umgebungen im traditionellen Kontext, unabhängig von OpenHCL, behindern, gehören: mangelnde Dokumentation der Verwaltungsoberfläche; fehlende angemessene Leistungsoptimierung von Backend-Systemen für Speicher, Netzwerk und Grafik; fehlende Unterstützung bestimmter Treiber (z. B. IDE-Festplatten und PS/2-Mäuse); keine Garantie für die Stabilität der API und Funktionalität. Dennoch hat die Kombination von OpenVMM und OpenHCL bereits den Status industrieller Implementierung erreicht und wird von Microsoft auf der Azure-Plattform (Azure Boost SKU) zur Unterstützung von über 1,5 Millionen virtuellen Maschinen eingesetzt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4