Dezvoltatorii proiectului Xen au implementat posibilitatea utilizării Xen Hypervisor pe plăcile Raspberry Pi 4. Adaptarea Xen pentru a funcționa pe versiunile anterioare ale plăcilor Raspberry Pi a fost împiedicată de utilizarea unui controller de întrerupere non-standard, care nu avea suport pentru virtualizare. Pe Raspberry Pi 4 a fost utilizat un controller de întrerupere GIC-400 obișnuit, susținut de Xen, iar dezvoltatorii se așteptau ca problemele cu lansarea Xen să nu apară. Însă, în realitate, lucrurile s-au dovedit a fi mai complicate decât se anticipa, iar pentru a asigura funcționarea Xen pe Raspberry Pi 4, a fost necesar să se aducă modificări semnificative în codul dedicat gestionării memoriei.
Primele versiuni ale plăcilor Raspberry Pi 4 limitau accesul doar la spațiul de adresare din primul gigabyte de memorie, ceea ce era insuficient pentru Dom0. Modificările necesare au fost integrate în versiunea Xen 4.14, dar a apărut o altă problemă — în subsistemul Xen pentru conversia adreselor virtuale în fizice s-a utilizat apelul virt_to_phys, care nu funcționa pentru toate adresele virtuale, iar încercările de a transforma anumite adrese virtuale se soldau cu erori. Pentru a rezolva această problemă, a fost necesar să se adauge o altă funcție de conversie a adreselor.
Aceste probleme nu s-au oprit aici, iar o particularitate a funcționării DMA a fost descoperită — pe toate platformele anterior suportate în Xen (x86, ARM și ARM64), adresele DMA și adresele fizice erau întotdeauna identice, dar pe Raspberry Pi 4 acestea diferă. Găsirea unei soluții pentru această problemă s-a dovedit a fi cea mai dificilă și a necesitat dezvoltarea unor patch-uri pentru nucleul Linux, care execută conversia între adresele fizice și cele DMA.
Corecțiile pregătite au fost incluse în nucleul Linux 5.9 și acum Xen este considerat pregătit pentru organizarea virtualizării pe plăcile Raspberry Pi 4. De asemenea, pe Raspberry Pi 4 poate fi folosit (Edge Virtualization Engine), un motor pentru crearea și rularea aplicațiilor cloud-native, care utilizează Xen, și pentru construirea infrastructurii de virtualizare pe dispozitive portabile.
De asemenea, se poate menționa eliminarea în Xen. Vulnerabilitățile ,
și
permit potențial obținerea privilegiilor de mediu gazdă din sistemul găzduit. Problemele
, ,
,
,
,
și
se limitează la provocarea unui refuz de serviciu.
Sursa: opennet.ro
