Кампанія Microsoft абвясціла аб адкрыцці зыходных тэкстаў пласта для забеспячэння паравіртуалізацыі OpenHCL і манітора віртуальных машын OpenVMM, спецыяльна які развіваецца для арганізацыі працы OpenHCL. Код OpenVMM і OpenHCL напісаны на мове Rust і распаўсюджваецца пад ліцэнзіяй MIT. OpenVMM ставіцца да гіпервізарам другога ўзроўня, якія працуюць у адным кольцы абароны з ядром аперацыйнай сістэмы па аналогіі з такімі прадуктамі, як VirtualBox і VMware Workstation. Падтрымліваецца праца над хост-сістэм на базе Linux (x86_64), Windows (x86_64, Aarch64) і macOS (x86_64, Aarch64), выкарыстоўваючы якія прадстаўляюцца дадзенымі АС API віртуалізацыі KVM, SHV (Microsoft Hypervisor), WHP (Windows Hypervisor) framework.
Сярод магчымасцяў, якія падтрымліваюцца ў OpenVMM:
- Загрузка ў рэжымах UEFI і BIOS, прамая загрузка ядра Linux;
- Падтрымка паравіртуалізацыі на базе драйвераў Virtio (virtio-fs, virtio-9p, virtio-net, virtio-pmem)
- Падтрымка паравіртуалізацыі на базе VMBus (storvsp, netvsp, vpci, framebuffer);
- Эмуляцыя vTPM, NVMe, UART, чыпсэта i440BX + PIIX4, IDE HDD, PCI і VGA;
- Бэкэнды для пракіду графікі, прылад уводу, кансолі, сховішчаў і сеткавага доступу;
- Кіраванне праз інтэрфейс каманднага радка, інтэрактыўную кансоль, gRPC і ttrpc.
OpenHCL пазіцыянуецца як асяроддзе з кампанентамі паравіртуалізацыі (паравізор), якое працуе па-над гіпервізарам OpenVMM. Ключавой асаблівасцю сістэм віртуалізацыі на базе OpenVMM і OpenHCL з'яўляецца тое, што кампаненты для паравіртуалізацыі выконваюцца не на баку хост-сістэмы, а ў адной віртуальнай машыне з гасцявой сістэмай. Ізаляцыі пласта паравіртуалізацыі ад гасцявой аперацыйнай сістэмы пры гэтым забяспечваецца сіламі гіпервізара другога ўзроўня OpenVMM. OpenHCL пры такім ужыванні можа разглядацца як віртуальная прашыўка, выкананая на больш высокім узроўні прывілеяў, чым якая запускаецца ў госцевым асяроддзі аперацыйная сістэма.
Падзел гасцёўні сістэмы і кампанентаў OpenHCL ажыццяўляецца з выкарыстаннем канцэпцыі віртуальных узроўняў даверу (VTL, Virtual Trust Level), для рэалізацыі якіх могуць выкарыстоўвацца як праграмныя механізмы, так і апаратныя тэхналогіі, такія як Intel TDX (Trust Domain Extensions), AMD SEV-SNP ( Secure Encrypted Virtualization-Secure Nested Paging) і ARM CCA (Confidential Compute Architecture). Для выканання кампанентаў OpenHCL выкарыстоўваецца зрэзаная зборка ядра Linux, улучальная толькі мінімальна неабходныя кампаненты, неабходныя для працы OpenVMM.

OpenHCL можа працаваць на платформах x86-64 і ARM64, і падтрымлівае пашырэнні Intel TDX, AMD SEV-SNP і ARM CCA для дадатковай ізаляцыі. У склад OpenHCL уваходзіць набор сэрвісаў, драйвераў і эмулятараў, якія ўжываюцца для арганізацыі доступу да абсталявання, забеспячэнні працы віртуальных прылад на боку гасцявой сістэмы і эмуляцыі апаратных прылад (напрыклад, можа эмулявацца чып для захоўвання крыптаграфічных ключоў – vTPM).
Для трансляцыі доступу да абсталявання на боку гасцявой сістэмы прымяняюцца існуючыя драйверы з падтрымкай паравіртуалізацыі або можа выконвацца прамая прывязка прылад да віртуальнай машыны, што дазваляе пераносіць у асяроддзе на базе OpenHCL існуючыя гасцявыя сістэмы без унясення ў іх змен. Акрамя таго, OpenHCL уключае кампаненты для дыягностыкі і адладкі віртуальная машына, Якія выконваюцца з выкарыстаннем пашырэнняў для забеспячэння канфідэнцыйных вылічэнняў.
У адрозненне ад ужо існуючага адкрытага праекта COCONUT-SVSM (Secure VM Service Module), які прадстаўляе сэрвісы і эмулюемыя прылады для гасцявых сістэм, якія выконваюцца ў канфідэнцыйных віртуальныя машыны (CVM, Confidential Virtual Machine), OpenHCL дазваляе выкарыстоўваць у гасцявых сістэмах стандартныя інтэрфейсы, у той час як COCONUT-SVSM патрабуе арганізацыі спецыяльнага ўзаемадзеяння з SVSM, занясенні змен у гасцёўню сістэму і выкарыстанні асобных драйвераў.
З ужыванняў паравізара OpenHCL згадваюцца такія сцэнары, як пераклад існых сістэм на выкарыстанне апаратных паскаральнікаў Azure Boost без неабходнасці занясення змен у дыскавую выяву гасцёўні сістэмы; выкананне наяўных гасцявых сістэм у віртуальных машынах, якія забяспечваюць канфідэнцыйныя вылічэнні (напрыклад, на базе Intel TDX і AMD SEV-SNP); арганізацыя верыфікаванай загрузкі віртуальных машын, выкарыстоўваючы рэжым UEFI Secure Boot і vTPM.
Асобна адзначаецца, што праект OpenVMM сфакусаваны на выкарыстанне з OpenHCL і пакуль не готаў для адасобленага ўжывання на хост-сістэмах для працоўных укараненняў канчатковымі карыстачамі. З праблем OpenVMM, якія замінаюць яго выкарыстанню ў хост-акружэннях у традыцыйнай кантэксце, па-за звязкам з OpenHCL, згадваюцца: дрэннае дакументаванне кіраўніка інтэрфейсу; адсутнасць належнай аптымізацыі прадукцыйнасці бэкэндаў для сховішчаў, сеткі і графікі; адсутнасць падтрымкі некаторых драйвераў (напрыклад, IDE-дыскаў і PS/2 мышы); няма гарантыі стабільнасці API і функцыянальнасці. Пры гэтым звязка з OpenVMM і OpenHCL ужо дасягнула ўзроўню прамысловага ўкаранення і задзейнічана Microsoft у платформе Azure (Azure Boost SKU) для забеспячэння працы больш за 1.5 млн. віртуальных машын.
Крыніца: opennet.ru
