Microsoft oznámil open source vrstvu pro paravirtualizaci OpenHCL a monitor virtuálního stroje OpenVMM, speciálně vyvinutý pro organizaci práce OpenHCL. Kód OpenVMM a OpenHCL je napsán v Rustu a je distribuován pod licencí MIT. OpenVMM odkazuje na hypervizory druhé úrovně, které pracují ve stejném bezpečnostním kruhu s jádrem operačního systému, podobně jako produkty jako VirtualBox a VMware Workstation. Podporuje provoz nad hostitelskými systémy založenými na Linuxu (x86_64), Windows (x86_64, Aarch64) a macOS (x86_64, Aarch64), pomocí poskytovaných virtualizačních API KVM, SHV (Microsoft Hypervisor), WHP (Windows Hypervisor Platform) a Hypervisor. pomocí dat OS.
Mezi funkce podporované v OpenVMM:
- Bootování v režimech UEFI a BIOS, přímé spouštění linuxového jádra;
- Podpora paravirtualizace na základě ovladačů Virtio (virtio-fs, virtio-9p, virtio-net, virtio-pmem)
- podpora paravirtualizace na bázi VMBus (storvsp, netvsp, vpci, framebuffer);
- Emulace čipové sady vTPM, NVMe, UART, i440BX + PIIX4, IDE HDD, PCI a VGA;
- Backendy pro předávání grafiky, vstupních zařízení, konzolí, úložiště a přístupu k síti;
- Správa pomocí rozhraní příkazového řádku, interaktivní konzole, gRPC a ttrpc.
OpenHCL je umístěno jako prostředí s paravirtualizačními komponentami (paravisor), které běží nad hypervizorem OpenVMM. Klíčovou vlastností virtualizačních systémů založených na OpenVMM a OpenHCL je to, že komponenty pro paravirtualizaci nejsou spouštěny na straně hostitelského systému, ale na stejném virtuálním stroji jako hostující systém. Izolaci paravirtualizační vrstvy od hostujícího operačního systému zajišťuje hypervizor druhé úrovně OpenVMM. Při tomto použití lze OpenHCL považovat za virtuální firmware běžící na vyšší úrovni oprávnění než operační systém běžící v prostředí hosta.
Oddělení komponent hostujícího systému a OpenHCL se provádí pomocí konceptu úrovní virtuální důvěry (VTL, Virtual Trust Level), k jejichž implementaci lze využít softwarové mechanismy i hardwarové technologie, jako je Intel TDX (Trust Domain Extensions ), AMD SEV-SNP (Secure Encrypted Virtualization-Secure Nested Paging) a ARM CCA (Confidential Compute Architecture). Ke spouštění komponent OpenHCL se používá zkrácené sestavení linuxového jádra, které obsahuje pouze naprosté minimum komponent potřebných ke spuštění OpenVMM.

OpenHCL může běžet na platformách x86-64 a ARM64 a podporuje rozšíření Intel TDX, AMD SEV-SNP a ARM CCA pro další izolaci. OpenHCL zahrnuje sadu služeb, ovladače a emulátory sloužící k organizaci přístupu k zařízení, zajištění provozu virtuálních zařízení na straně hostujícího systému a emulaci hardwarových zařízení (například čip pro ukládání kryptografických klíčů - vTPM).
Pro převod přístupu k hardwaru na straně hostovaného systému se používají stávající ovladače s povolenou paravirtualizací nebo lze zařízení přímo navázat na virtuální počítač, což umožňuje migraci stávajících hostovaných systémů do prostředí založeného na OpenHCL bez úprav. OpenHCL také obsahuje diagnostické a ladicí komponenty. virtuální stroje, prováděné pomocí rozšíření pro zajištění důvěrnosti výpočtů.
Na rozdíl od stávajícího open source projektu COCONUT-SVSM (Secure VM Service Module), který poskytuje služby a emulovaná zařízení pro hostované systémy běžící v důvěrném prostředí virtuální stroje (CVM, Confidential Virtual Machine), OpenHCL umožňuje použití standardních rozhraní v hostovaných systémech, zatímco COCONUT-SVSM vyžaduje organizaci speciální interakce s SVSM, provádění změn v hostovaném systému a použití samostatných ovladačů.
Mezi aplikacemi paravisoru OpenHCL jsou zmíněny takové scénáře, jako je přechod stávajících systémů na používání hardwarových akcelerátorů Azure Boost bez nutnosti provádět změny v image disku hostujícího systému; Spusťte stávající hosty ve virtuálních počítačích, které poskytují důvěrné výpočty (například založené na Intel TDX a AMD SEV-SNP); organizace ověřeného spouštění virtuálních strojů pomocí UEFI Secure Boot a režimu vTPM.
Samostatně je třeba poznamenat, že projekt OpenVMM je zaměřen na použití s OpenHCL a zatím není připraven pro samostatné použití na hostitelských systémech pro produkční implementace koncovými uživateli. Mezi problémy OpenVMM, které brání jeho použití v hostitelských prostředích v tradičním kontextu, mimo OpenHCL, jsou zmíněny následující: špatná dokumentace ovládacího rozhraní; nedostatečná optimalizace výkonu backendu pro úložiště, síť a grafiku; nedostatek podpory pro některé ovladače (například disky IDE a myši PS/2); neexistuje žádná záruka stability a funkčnosti API. Přitom kombinace OpenVMM a OpenHCL již dosáhla úrovně průmyslové implementace a Microsoft ji využívá v platformě Azure (Azure Boost SKU) pro podporu provozu více než 1.5 milionu virtuálních strojů.
Zdroj: opennet.ru
