De udviklere, der arbejder på Xen-projektet, har arbejdet på muligheden for at bruge Xen Hypervisor på Raspberry Pi 4 kort. Tidligere var det en udfordring at tilpasse Xen til tidligere versioner af Raspberry Pi, på grund af brugen af en ikke-standard afbrydercontroller, der ikke understøttede virtualisering. På Raspberry Pi 4 er der anvendt en almindelig GIC-400 afbrydercontroller, som understøttes af Xen, og udviklerne forventede, at der ikke ville være problemer med at køre Xen. Men i praksis viste det sig at være en anden sag, og for at få Xen til at fungere på Raspberry Pi 4 var det nødvendigt at foretage betydelige ændringer i koden til hukommelsesstyring.
De første versioner af Raspberry Pi 4 kort begrænsede kun adgangen til adressen i det første gigabyte hukommelse, hvilket ikke var tilstrækkeligt til Dom0. Nødvendige ændringer blev indført i Xen 4.14, men straks dukkede et andet problem op - i Xen-subsystemet til konvertering af virtuelle adresser til fysiske blev der brugt et kald til virt_to_phys, som ikke fungerede for alle virtuelle adresser, og forsøg på at konvertere nogle virtuelle adresser resulterede i fejl. For at løse dette problem var det nødvendigt at tilføje en anden adressekonverteringsfunktion.
Problemerne sluttede ikke der; der blev også opdaget en særlig egenskab ved DMA - i alle tidligere understøttede Xen-platforme (x86, ARM og ARM64) var DMA-adresser og fysiske adresser altid identiske, men på Raspberry Pi 4 var de forskellige. At finde en løsning på denne problemstilling viste sig at være den sværeste opgave og krævede udviklingen af patches til Linux-kernen, der udførte konvertering mellem fysiske adresser og DMA-adresser.
De forberedte rettelser blev inkluderet i Linux-kernen 5.9, og nu er Xen anerkendt som klar til at implementere virtualisering på Raspberry Pi 4 kort. Desuden kan man nu bruge (Edge Virtualization Engine), en motor til at oprette og køre cloud-native applikationer, der bruger Xen, og til at bygge virtualiseringsinfrastruktur på portable enheder.
Det kan også bemærkes, at er blevet udbedret i Xen. Sårbarhederne ,
og
giver potentielt mulighed for, at en gæstesystem kan opnå privilige i værtssystemet. Problemerne
, ,
,
,
,
og
er begrænset til at forårsage service-nægtelse.
Kilde: opennet.ru
