După un an de dezvoltare, a fost lansată versiunea liberă a hipervizorului Xen 4.17. La dezvoltarea noului release au participat companii precum Amazon, Arm, Bitdefender, Citrix, EPAM Systems și Xilinx (AMD). Procesul de actualizare pentru ramura Xen 4.17 va continua până pe 12 iunie 2024, iar publicația corectării vulnerabilităților va avea loc până pe 12 decembrie 2025.
Modificările cheie în Xen 4.17:
- S-a asigurat conformitatea parțială cu cerințele pentru dezvoltarea de programe sigure și fiabile în limbajul C, formulate în specificațiile MISRA-C, utilizate în crearea sistemelor critice. În Xen au fost implementate oficial 4 directive și 24 de reguli MISRA-C (din 143 de reguli și 16 directive), precum și integrarea analizei statice MISRA-C, care verifică respectarea cerințelor specificației.
- S-a oferit posibilitatea de a defini configurația statică a Xen pentru sistemele ARM, care determină dinainte toate resursele necesare pentru bootarea sistemelor gazdă. Toate resursele, cum ar fi memoria partajată, canalele pentru notificarea evenimentelor și spațiul din heap-ul hipervizorului, sunt distribuite dinainte la pornirea hipervizorului, și nu sunt alocate dinamic, ceea ce elimină posibilele defecțiuni cauzate de lipsa resurselor în timpul funcționării.
- Pentru sistemele încorporate bazate pe arhitectura ARM, a fost implementat suport experimental (tech preview) pentru virtualizarea input/output folosind protocoale VirtIO. Pentru schimbul de date cu dispozitivele virtuale de input/output este utilizat transportul virtio-mmio, ceea ce a asigurat compatibilitatea cu o gamă largă de dispozitive VirtIO. A fost realizat suportul frontend pentru Linux, uneltei (libxl/xl), modului dom0less și backendurilor care rulează în spațiul utilizatorului (au fost testate backenduri precum virtio-disk, virtio-net, i2c și gpio).
- Suportul pentru modul dom0less a fost îmbunătățit, permițând evitarea desfășurării unui mediu dom0 la pornire mașini virtuale în etapa timpurie a încărcării serverului. A fost oferită posibilitatea de a defini grupuri de CPU (CPUPOOL) în timpul încărcării (prin arborele dispozitivelor), ceea ce permite utilizarea grupurilor în configurații fără dom0, de exemplu, pentru alocarea diferitelor tipuri de nuclee CPU pe sistemele ARM bazate pe arhitectura big.LITTLE, care combină în același cip nuclei puternici, dar care consumă multă energie, și nuclei mai puțin performanți, dar mai eficienți din punct de vedere energetic. În plus, în dom0less a fost oferită posibilitatea de a asocia frontend-ul/backend-ul paravirtualizării cu sistemele gazdă, ceea ce permite încărcarea sistemelor gazdă cu dispozitivele paravirtualizate necesare.
- Pe sistemele ARM, structurile de virtualizare a memoriei (P2M, Physical to Machine) sunt acum alocate dintr-un grup de memorie format în timpul creării domeniului, ceea ce permite îmbunătățirea eficienței izolării între sistemele gazdă în cazul apariției unor erori legate de memorie.
- Pentru sistemele ARM a fost adăugată protecție împotriva vulnerabilității Spectre-BHB în structurile microarhitecturale ale procesoarelor.
- Pe sistemele ARM a fost oferită posibilitatea de a rula sistemul de operare Zephyr în mediu de bază Dom0.
- A fost oferită posibilitatea unei compilări separate (out-of-tree) a hipervizorului.
- Pe sistemele x86, suportul pentru paginile mari IOMMU (superpage) a fost asigurat pentru toate tipurile de sisteme gazdă, ceea ce permite creșterea lățimii de bandă în cazul transferului de dispozitive PCI. A fost adăugat suport pentru gazde echipate cu până la 12 TB RAM. În timpul încărcării a fost implementată posibilitatea de a stabili parametrii cpuid pentru dom0. Pentru gestionarea măsurilor de protecție împotriva atacurilor asupra CPU-ului implementate la nivelul hipervizorului, au fost propuse parametrii VIRT_SSBD și MSR_SPEC_CTRL.
- Se dezvoltă separat transportul VirtIO-Grant, care se deosebește de VirtIO-MMIO printr-un nivel mai ridicat de securitate și capacitatea de a rula gestionari într-un domeniu izolat pentru drivere. În VirtIO-Grant, în loc de o mapare directă a memoriei, se utilizează o traducere a adreselor fizice ale sistemului gazdă în grant-links, ceea ce permite utilizarea unor zone de memorie partajată prealabil convenite pentru schimbul de date între sistemul gazdă și backend-ul VirtIO, fără a oferi backend-ului drepturi de execuție a mapării memoriei. Suportul pentru VirtIO-Grant este deja implementat în nucleul Linux, dar încă nu este inclus în backend-urile QEMU, în virtio-vhost și în toolkit (libxl/xl).
- Se continuă dezvoltarea inițiativei Hyperlaunch, care vizează furnizarea de instrumente flexibile pentru configurarea lansării mașinilor virtuale în timpul boot-ului sistemului. În prezent, este gata primul set de patch-uri care permit identificarea domeniilor PV și transmiterea imaginilor lor către hipervizor la boot. De asemenea, s-au implementat toate componentele necesare pentru a rula astfel de domenii paravirtualizate domenii, inclusiv componentele Xenstore pentru driverele PV. După aprobarea patch-urilor, va începe munca pentru activarea suportului dispozitivelor PVH și HVM, precum și pentru implementarea unui domeniu separat domB (builder domain), potrivit pentru organizarea boot-ului măsurat (measured boot), care confirmă autenticitatea tuturor componentelor încărcate.
- Se lucrează în continuare la crearea portului Xen pentru arhitectura RISC-V.
Sursa: opennet.ro
