Vývojáři projektu Xen o realizaci možnosti využití Xen Hypervisor na deskách Raspberry Pi 4. Adaptace Xen pro minulá vydání desek Raspberry Pi bránilo použití nestandardního ovladače přerušení, který neměl podporu virtualizace. Na Raspberry Pi 4 byl použit běžný ovladač přerušení GIC-400, který je podporován v Xen, a vývojáři očekávali, že nebudou žádné problémy se spuštěním Xen. Ale ve skutečnosti to nebylo tak, jak se předpokládalo, a pro zajištění funkčnosti Xen na Raspberry Pi 4 bylo třeba provést výrazné změny v kódu pro práci s pamětí.
První verze desek Raspberry Pi 4 omezovaly přístup pouze na adresní prostor prvního gigabajtu paměti, což bylo nedostatečné pro Dom0. Potřebné změny byly zahrnuty v vydání Xen 4.14, ale ihned se objevila jiná problém — v subsystému Xen pro převod virtuálních adres na fyzické se používal volání virt_to_phys, které nefungovalo pro všechny virtuální adresy a pokusy o převod některých virtuálních adres končily chybou. K vyřešení tohoto problému bylo nutné přidat jinou funkci pro převod adres.
Tím se problémy neskončily a objevila se zvláštnost v práci DMA — ve všech dříve podporovaných platformách Xen (x86, ARM a ARM64) se DMA adresy a fyzické adresy vždy shodovaly, ale na Raspberry Pi 4 se lišily. Najít řešení pro tento problém se ukázalo jako nejtěžší a vyžadovalo vytváření patchů pro jádro Linux, které prováděly převod mezi fyzickými adresami a adresami DMA.
Připravené opravy byly součástí jádra Linux 5.9 a nyní je Xen uznáván jako připravený pro organizaci virtualizace na deskách Raspberry Pi 4. Na Raspberry Pi 4 je nyní možné používat (Edge Virtualization Engine), engine pro vytváření a spouštění cloud-native aplikací, který využívá Xen, a pro výstavbu virtualizační infrastruktury na přenosných zařízeních.
Dále lze zmínit odstranění v Xen. Zranitelnosti ,
a
potenciálně umožňují z hostované systému získat oprávnění hostitelského prostředí. Problémy
, ,
,
,
,
a
se omezují na provádění odmítnutí služby.
Zdroj: opennet.ru
