Razvijalci projekta Xen so uvedli možnost uporabe Xen Hypervisorja na Raspberry Pi 4. Prilagoditve Xen za delovanje na prejšnjih različicah Raspberry Pi so motile uporaba nestandardnega kontrolerja prekinitev, ki ni imel podpore za virtualizacijo. Na Raspberry Pi 4 je bil uporabljen običajen kontroler prekinitev GIC-400, ki ga Xen podpira, in razvijalci so predvidevali, da ne bo težav z zagonjem Xen. Vendar pa se je izkazalo, da situacija ni bila tako preprosta, in da so bili potrebni znatni popravki kode za delovanje z pomnilnikom.
Prve različice Raspberry Pi 4 so omejevale dostop le do naslovnega prostora prvega gigabajta pomnilnika, kar ni bilo dovolj za Dom0. Potrebne spremembe so bile vključene v različico Xen 4.14, toda takoj se je pojavila druga težava — v Xenovem podsystemu za pretvorbo virtualnih naslovov v fizične se je uporabila funkcija virt_to_phys, ki ni delovala za vse virtualne naslove, kar je povzročalo napake pri pretvorbi nekaterih naslovov. Za rešitev te težave je bilo potrebno dodati drugo funkcijo za pretvorbo naslovov.
S tem težave niso odpadle, saj se je pojavila posebnost pri delovanju DMA — na vseh prej podprtih Xen platformah (x86, ARM in ARM64) so se naslovi DMA in fizični naslovi vedno ujemali, vendar so se na Raspberry Pi 4 razlikovali. Iskanje rešitve za to težavo se je izkazalo za najtežje in je zahtevalo razvoj popravkov za jedro Linux, ki so izvajali pretvorbo med fizičnimi naslovi in naslovi DMA.
Pripravljeni popravki so bili vključeni v jedro Linux 5.9 in sedaj je Xen priznan kot pripravljen za virtualizacijo na Raspberry Pi 4. Na Raspberry Pi 4 je zdaj mogoče uporabljati (Edge Virtualization Engine), motor za ustvarjanje in zagon cloud-native aplikacij, ki uporablja Xen, in za gradnjo infrastrukture virtualizacije na prenosnih napravah.
Dodatno je mogoče izpostaviti odpravo v Xen. Ranljivosti ,
in
potencialno omogočajo, da iz gostiteljskega sistema pridobite privilegije gostiteljskega okolja. Težave
, ,
,
,
,
in
so omejene na izvajanje napadov za zavrnitev storitve.
Izvor: opennet.ru
