Sviluppatori del progetto Xen sull'implementazione della possibilità di utilizzare Xen Hypervisor sulle schede Raspberry Pi 4. L'adattamento di Xen per funzionare sulle versioni precedenti delle schede Raspberry Pi era ostacolato dall'uso di un controller delle interruzioni non standard, privo del supporto per la virtualizzazione. Nella Raspberry Pi 4 è stato utilizzato un normale controller delle interruzioni GIC-400, supportato in Xen, e gli sviluppatori si aspettavano che non ci sarebbero stati problemi nell'avviare Xen. Tuttavia, in realtà, le cose non sono andate come previsto e sono state necessarie modifiche significative al codice per gestire la memoria.
Le prime versioni delle schede Raspberry Pi 4 limitavano l'accesso solo allo spazio indirizzabile del primo gigabyte di memoria, insufficiente per Dom0. Le modifiche necessarie sono state apportate nella versione Xen 4.14, ma è subito emerso un altro problema: nel sottosistema Xen per la conversione degli indirizzi virtuali in fisici veniva utilizzata la chiamata virt_to_phys, che non funzionava per tutti gli indirizzi virtuali e i tentativi di conversione di alcuni indirizzi virtuali si concludevano con un errore. Per risolvere questo problema è stata necessaria l'aggiunta di un'altra funzione di conversione degli indirizzi.
Le problematiche non finiscono qui, è emersa una particolare caratteristica del funzionamento del DMA: in tutte le piattaforme precedentemente supportate da Xen (x86, ARM e ARM64), gli indirizzi DMA e gli indirizzi fisici coincidevano sempre, ma nel Raspberry Pi 4 sono diversi. Trovare una soluzione a questo problema si è rivelato particolarmente complesso e ha richiesto lo sviluppo di patch per il kernel Linux che eseguono la conversione tra indirizzi fisici e indirizzi DMA.
Le correzioni preparate sono state integrate nel kernel Linux 5.9 e ora Xen è ufficialmente pronto per organizzare la virtualizzazione sulle schede Raspberry Pi 4. In particolare, su Raspberry Pi 4 è ora possibile utilizzare (Edge Virtualization Engine), un motore per la creazione e l'esecuzione di applicazioni cloud-native che utilizza Xen, e per costruire infrastrutture di virtualizzazione su dispositivi portatili.
In aggiunta, si può notare la risoluzione di in Xen. Le vulnerabilità ,
e
potenzialmente consentono al sistema guest di ottenere privilegi dell'ambiente host. I problemi
, ,
,
,
,
e
sono limitati a cause di denial of service.
Fonte: opennet.ru
