Xen projekti arendajad rääkisid Xen Hypervisori kasutamise võimaluse rakendamisest Raspberry Pi 4 pardal. Xen-i kohandamine varasemate Raspberry Pi versioonide jaoks takistati standardiseerimata katkestuste kontrolleri tõttu, mis ei toetanud virtualiseerimist. Raspberry Pi 4-l kasutati tavalist katkestuste kontrollerit GIC-400, mida Xen toetab, ja arendajad lootsid, et Xen-i käivitamisel ei esine probleeme. Kuid tegelikkus osutus teistsuguseks, ja Xen-i toetamiseks Raspberry Pi 4-l tuli koodis mällu töötamiseks teha märkimisväärseid muudatusi.
Esimesed Raspberry Pi 4 versioonid piiravad juurdepääsu vaid esimese gigabaidi mälu aadressiruumi, mis ei olnud Dom0 jaoks piisav. Vajalikud muudatused tehti Xen 4.14 väljaandes, kuid kohe kerkis esile teine probleem — Xen-i alamsüsteemis virtualaadresside füüsilisteks aadressideks muutmiseks kasutati virt_to_phys kutsumist, mis ei töötanud kõigi virtuaalsete aadresside puhul ja mõnede virtuaalsete aadresside muutmine lõppes veaga. Selle probleemi lahendamiseks tuli lisada teine aadresside muutmise funktsioon.
Probleemid ei ole sellega lõppenud, kuna DMA töö tingib eripära — kõikides varasemates Xen platvormides (x86, ARM ja ARM64) olid DMA aadressid ja füüsilised aadressid alati identsed, kuid Raspberry Pi 4 puhul erinevad nad. Selle probleemi lahendamine osutus kõige keerulisemaks ning nõudis Linuxi tuumale patšide väljatöötamist, mis teevad füüsiliste aadresside ja DMA aadresside vahelisi teisendusi.
Valmistatud parandused on nüüd osa Linux 5.9 tuumast ja Xen on nüüd tunnustatud sobilikuks virtualiseerimise korraldamiseks Raspberry Pi 4 platvormidel. Lisaks on nüüd Raspberry Pi 4-l võimalik kasutada (Edge Virtualization Engine), pilveteenuste rakenduste loomise ja käitamise mootorit, mis kasutab Xen, ja virtualiseerimistruktuuri loomiseks kaasaskantavates seadmetes.
Lisaks tuleb märkida Xenis. Turvavigad ,
ja
võivad potentsiaalselt lubada külalisüsteemist host-keskkonna õiguste saamist. Probleemid
, ,
,
,
,
ja
piirduvad teenuse keelamise teostamisega.
Allikas: opennet.ru
