Microsoft on välja kuulutanud OpenHCL-i paravirtualiseerimise kihi avatud lähtekoodi ja spetsiaalselt OpenHCL-i töö korraldamiseks välja töötatud virtuaalmasina monitori OpenVMM. OpenVMM-i ja OpenHCL-i kood on kirjutatud Rust-keeles ja litsentsitud MIT-i litsentsi alusel. OpenVMM viitab teise taseme hüperviisoridele, mis töötavad operatsioonisüsteemi tuumaga samas turvaringis, sarnaselt sellistele toodetele nagu VirtualBox ja VMware Workstation. See toetab tööd Linuxi (x86_64), Windowsi (x86_64, Aarch64) ja macOS-i (x86_64, Aarch64) põhiste hostsüsteemide peal, kasutades pakutavaid KVM-i, SHV-d (Microsoft Hypervisor), WHP-d (Windows Hypervisor Platform) ja Hypervisori virtualiseerimise API-sid. OS-i raamistiku järgi.
OpenVMM-i toetatud funktsioonide hulgas:
- Käivitamine UEFI ja BIOS režiimides, Linuxi kerneli otsekäivitamine;
- Virtio draiveritel põhinev paravirtualiseerimise tugi (virtio-fs, virtio-9p, virtio-net, virtio-pmem)
- VMBusil põhineva paravirtualiseerimise tugi (storvsp, netvsp, vpci, framebuffer);
- vTPM, NVMe, UART, i440BX + PIIX4 kiibistiku, IDE HDD, PCI ja VGA emuleerimine;
- Taustaprogrammid graafika, sisendseadmete, konsoolide, salvestusruumi ja võrgule juurdepääsu edastamiseks;
- Haldamine käsurea liidese, interaktiivse konsooli, gRPC ja ttrpc kaudu.
OpenHCL on positsioneeritud keskkonnana, kus OpenVMM-i hüperviisori peal töötavad paravirtualiseerimiskomponendid (paravisor). OpenVMM-il ja OpenHCL-il põhinevate virtualiseerimissüsteemide põhiomadus on see, et paravirtualiseerimise komponendid ei käivitata hostisüsteemi poolel, vaid külalissüsteemiga samas virtuaalmasinas. Paravirtualiseerimiskihi eraldamine külalisoperatsioonisüsteemist on tagatud teise taseme hüperviisoriga OpenVMM. Sellisel viisil kasutamisel võib OpenHCL-i pidada virtuaalseks püsivaraks, mis töötab kõrgemal privileegtasemel kui külaliskeskkonnas töötav operatsioonisüsteem.
Külalissüsteemi ja OpenHCL komponentide eraldamine toimub virtuaalsete usaldustasemete (VTL, Virtual Trust Level) kontseptsiooni abil, mille realiseerimiseks saab kasutada nii tarkvaramehhanisme kui ka riistvaratehnoloogiaid, näiteks Intel TDX (Trust Domain Extensions). ), AMD SEV-SNP (turvaline krüptitud virtualiseerimine-turvaline pesaotsimine) ja ARM CCA (konfidentsiaalne arvutusarhitektuur). OpenHCL-i komponentide käitamiseks kasutatakse Linuxi kerneli tühjendatud versiooni, mis sisaldab ainult OpenVMM-i käitamiseks vajalikke miinimumkomponente.

OpenHCL saab töötada x86-64 ja ARM64 platvormidel ning toetab täiendava isolatsiooni tagamiseks Inteli TDX, AMD SEV-SNP ja ARM CCA laiendusi. OpenHCL sisaldab teenuste komplekti, draivereid ja emulaatoreid, mida kasutatakse seadmetele juurdepääsu korraldamiseks, külalissüsteemi poolel olevate virtuaalsete seadmete töö tagamiseks ja riistvaraseadmete (nt krüptograafiliste võtmete salvestamise kiip - vTPM) emuleerimiseks.
Külalissüsteemi poolel riistvarale juurdepääsu edastamiseks kasutatakse olemasolevaid paravirtualiseerimist toetavaid draivereid või saab seadmeid otse virtuaalmasinaga siduda, mis võimaldab olemasolevaid külalissüsteeme OpenHCL-põhisesse keskkonda ilma muudatusteta migreerida. OpenHCL sisaldab ka diagnostika- ja silumiskomponente. virtuaalmasinad, teostatud laienduste abil, et tagada konfidentsiaalne arvutikasutus.
Erinevalt olemasolevast avatud lähtekoodiga projektist COCONUT-SVSM (Secure VM Service Module), mis pakub teenuseid ja emuleeritud seadmeid külalissüsteemidele, mis töötavad konfidentsiaalses keskkonnas virtuaalmasinad (CVM, konfidentsiaalne virtuaalmasin) võimaldab OpenHCL külalissüsteemides kasutada standardseid liideseid, samas kui COCONUT-SVSM nõuab spetsiaalse interaktsiooni korraldamist SVSM-iga, külaliste süsteemis muudatuste tegemist ja eraldi draiverite kasutamist.
OpenHCL paravisori rakenduste hulgas mainitakse selliseid stsenaariume nagu olemasolevate süsteemide üleminek Azure Boosti riistvarakiirenditele, ilma et oleks vaja teha muudatusi külalissüsteemi ketta kujutises; Käitage olemasolevaid külalisi virtuaalmasinates, mis pakuvad konfidentsiaalset andmetöötlust (nt Intel TDX ja AMD SEV-SNP baasil); virtuaalmasinate kontrollitud alglaadimise korraldamine, kasutades UEFI Secure Boot ja vTPM režiimi.
Eraldi tuleb märkida, et OpenVMM-projekt keskendub OpenHCL-iga kasutamisele ega ole veel valmis lõppkasutajate tootmisrakenduste jaoks hostsüsteemides eraldi kasutamiseks. OpenVMM-i probleemide hulgas, mis takistavad selle kasutamist hostikeskkondades traditsioonilises kontekstis, väljaspool OpenHCL-i, mainitakse järgmist: juhtliidese halb dokumentatsioon; salvestusruumi, võrgu ja graafika jaoks taustaprogrammi jõudluse nõuetekohase optimeerimise puudumine; mõne draiveri toe puudumine (näiteks IDE-draivid ja PS/2 hiired); API stabiilsuse ja funktsionaalsuse garantiid pole. Samal ajal on OpenVMM-i ja OpenHCL-i kombinatsioon jõudnud juba tööstusliku juurutamise tasemele ning Microsoft kasutab seda Azure'i platvormis (Azure Boost SKU), et toetada enam kui 1.5 miljoni virtuaalmasina tööd.
Allikas: opennet.ru
