Po 8 měsících vývoje byl zveřejněn release svobodného hypervizoru Xen 4.21. Na vývoji nové verze se podílely společnosti jako Amazon, Arm, EPAM Systems a AMD. Kód projektu je napsán v jazyce C a je distribuován pod licencí GPLv2+. Vývoj probíhá v rámci organizace Linux Foundation.
Hlavní změny v Xen 4.21:
- Byla zajištěna plná podpora modelu zařízení Linux stubdomain, který umožňuje organizovat provádění komponent pro emulaci zařízení pod samostatným nepřiděleným uživatelem. Model Linux stubomains byl navržen projektem QUBES OS a podporuje použití emulačních ovladačů z nových verzí QEMU a také dostupných v QEMU souvisejících možností pro hostitelské systémy.
- Změny pro systémy založené na architektuře x86:
- Byla přidána podpora nového algoritmu komprese struktury PDX (Page inDeX), který zlepšuje výkon Xen na procesorech Intel Sierra Forest a Granite Rapids při nelineárním mapování fyzické paměti (sparse memory map), které umožňuje existenci prázdných oblastí.
- Byla přidána možnost řídit atribut kešování v MTRR (Memory Type Range Registers) pro registr BAR (Base Address Register) základního PCI zařízení platformy Xen, používaného hostitelskými systémy v režimu HVM. Ve výchozím nastavení je v MTRR pro zrcadlenou paměť PCI zařízení nastavena vlastnost UC (uncacheable), která má smysl pro skutečná PCI zařízení, ale pouze snižuje výkon PCI zařízení platformy Xen.
- Pro procesory AMD byl přidán nový ovladač amd-cppc/amd-cppc-epp, který řídí změnu frekvence CPU pro dosažení optimálního výkonu. V ovladači je využit mechanismus CPPC (Collaborative Processor Performance Control), který na rozdíl od acpi-cpufreq není omezen na tři úrovně výkonu a umožňuje rychleji reagovat na změnu stavu.
- V variantě vrstvy xenstore-stubdom, používané k spuštění xenstored bez privilegii Dom0, byla pro paravirtualizovaná prostředí v režimu PVH implementována podpora live-updatu.
- Pro Dom0 v režimu PVH byla implementována podpora technologie Resizable BAR (Resizable Base Address Register), která umožňuje okamžitý přístup k celé paměti zařízení PCI Express, a nikoli pouze se vztahem k blokům.
- Byla realizována možnost předávání PCI zařízení do prostředí domU v režimu HVM (úplná hardwarová virtualizace) v konfiguracích, kde dom0 pracuje v režimu PVH (hybridní hardwarová virtualizace a paravirtualizace).
- Změny pro systémy založené na architektuře ARM:
- Byla přidána možnost zapnutí mechanismu ochrany zásobníku (kompilace s příznakem „-fstack-protector“), který je založen na přidání do zásobníku kanárkových značek — náhodných posloupností. V případě přetečení zásobníku během zneužívání zranitelnosti je kanárková značka přepsána jinými daty, což vede k aktivaci následné kontroly neměnnosti značky a iniciaci havarijního ukončení aplikace.
- Byla přidána podpora mechanismu eSPI (Extended Shared Peripheral Interrupts), poskytovaného řadiči přerušení GICv3.1.
- Byla realizována zpracování SMMU (System Memory Management Unit) při předávání zařízení PCIe.
- Byla přidána podpora hostitelských řadičů PCI, používaných ve čtvrté generaci SoC Renesas R-Car.
- Byla přidána počáteční podpora procesorů Cortex-R52 a Cortex-R82 s MPU (Memory Protection Unit).
- V portu Xen pro architekturu RISC-V byla realizována základní podpora UART a možnost zpracování externích přerušení (APLIC/IMSIC) v režimu hypervizora.
- Byla pokračována realizace požadavků na vývoj bezpečných a spolehlivých aplikací v jazyce C, formulovaných ve specifikacích MISRA-C pro kritické systémy.
- Byla ukončena podpora starých verzí GCC a Clang, pro kompilaci jsou nyní vyžadovány alespoň verze GCC 5.1, Clang 11, Binutils 2.25 a GNU Make 3.80.
Zdroj: opennet.ru
