Společnost Microsoft oznámila otevření zdrojových kódů vrstvy pro zajištění paravirtualizace OpenHCL a monitoru virtuálních strojů OpenVMM, který je vyvíjen speciálně pro organizaci práce OpenHCL. Kód OpenVMM a OpenHCL je napsán v jazyce Rust a šíří se pod licencí MIT. OpenVMM patří mezi hypervizory druhé úrovně, které pracují ve stejném ochranném prstenci jako jádro operačního systému, podobně jako produkty jako VirtualBox a VMware Workstation. Podporována je činnost na hostitelských systémech založených na Linuxu (x86_64), Windows (x86_64, Aarch64) a macOS (x86_64, Aarch64), s využitím API virtualizace poskytovaného těmito OS, jako jsou KVM, SHV (Microsoft Hypervisor), WHP (Windows Hypervisor Platform) a Hypervisor.framework.
Mezi funkcemi podporovanými v OpenVMM jsou:
- Zavádění v režimech UEFI a BIOS, přímé zavádění jádra Linuxu;
- Podpora paravirtualizace založené na ovladačích Virtio (virtio-fs, virtio-9p, virtio-net, virtio-pmem);
- Podpora paravirtualizace založené na VMBus (storvsp, netvsp, vpci, framebuffer);
- Emulace vTPM, NVMe, UART, čipové sady i440BX + PIIX4, IDE HDD, PCI a VGA;
- Backendy pro předávání grafiky, vstupních zařízení, konzole, úložišť a síťového přístupu;
- Správa prostřednictvím příkazového řádku, interaktivní konzole, gRPC a ttrpc.
OpenHCL je prezentován jako prostředí s komponentami paravirtualizace (paravirtualizátor), fungující na hypervizoru OpenVMM. Klíčovou vlastností systémů virtualizace založených na OpenVMM a OpenHCL je, že komponenty pro paravirtualizaci fungují nikoli na straně hostitelského systému, ale v jedné virtuální mašině se systémem hosta. Izolaci vrstvy paravirtualizace od hostitelské operační soustavy zajišťuje hypervizor druhé úrovně OpenVMM. OpenHCL v tomto použití může být považován za virtuální firmware, který funguje na vyšší úrovni privilegií než operační systém běžící v hostitelském prostředí.
Oddělení hostitelského systému a komponent OpenHCL se provádí pomocí konceptu virtuálních úrovní důvěry (VTL, Virtual Trust Level), pro jejichž realizaci mohou být použity jak softwarové mechanismy, tak hardwarové technologie, jako jsou Intel TDX (Trust Domain Extensions), AMD SEV-SNP (Secure Encrypted Virtualization-Secure Nested Paging) a ARM CCA (Confidential Compute Architecture). K provádění komponent OpenHCL se používá zjednodušená verze jádra Linuxu, zahrnující pouze minimálně potřebné komponenty potřebné pro fungová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 dodatečnou izolaci. Sada OpenHCL obsahuje soubor služeb, ovladačů a emulátorů, které se používají k zajištění přístupu k hardwaru, provozu virtuálních zařízení na straně hostitelského systému a emulaci hardwarových zařízení (například může být emulován čip pro ukládání kryptografických klíčů — vTPM).
Pro přenos přístupu k hardwaru na straně hostitelského systému se používají stávající ovladače s podporou paravirtualizace nebo může být provedeno přímé přiřazení zařízení k virtuálnímu stroji, což umožňuje převést stávající hostitelské systémy do prostředí založeného na OpenHCL bez nutnosti provádět v nich změny. Kromě toho OpenHCL zahrnuje komponenty pro diagnostiku a ladění virtuálních strojů, prováděné s využitím rozšíření pro zajištění důvěrných výpočtů.
Na rozdíl od již existujícího otevřeného projektu COCONUT-SVSM (Secure VM Service Module), který poskytuje služby a emulovaná zařízení pro hostitelské systémy provozující důvěrné virtual machines (CVM, Důvěrný virtuální stroj), OpenHCL umožňuje použití standardních rozhraní v hostitelských systémech, zatímco COCONUT-SVSM vyžaduje zřízení speciální interakce se SVSM, provedení změn v hostitelském systému a použití samostatných ovladačů.
Mezi aplikace paravirtualizace OpenHCL patří scénáře jako 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 diskovém obraze hostitelského systému; provoz stávajících hostitelských systémů ve virtuálních strojích, které poskytují důvěrné výpočty (například na základě Intel TDX a AMD SEV-SNP); zajištění ověřeného spouštění virtuálních strojů pomocí režimu UEFI Secure Boot a vTPM.
Je třeba poznamenat, že projekt OpenVMM se zaměřuje na použití s OpenHCL a zatím není připraven pro samostatné nasazení na hostitelských systémech pro pracovní 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 spojení s OpenHCL, patří: špatná dokumentace ovládacího rozhraní; nedostatek dostatečné optimalizace výkonu backendů pro úložiště, síť a grafiku; nedostatek podpory některých ovladačů (např. IDE disků a PS/2 myší); žádná záruka stability API a funkcionality. Spojení OpenVMM a OpenHCL již dosáhlo úrovně průmyslového nasazení a je používáno společností Microsoft na platformě Azure (Azure Boost SKU) k zajištění provozu více než 1,5 milionu virtuálních strojů.
Zdroj: opennet.ru
