Dopo otto mesi di sviluppo, è stato pubblicato il rilascio del hypervisor open source Xen 4.16. Hanno partecipato allo sviluppo di questa nuova versione aziende come Amazon, Arm, Bitdefender, Citrix ed EPAM Systems. Il rilascio degli aggiornamenti per la serie Xen 4.16 continuerà fino al 2 giugno 2023, mentre la pubblicazione delle correzioni per le vulnerabilità terminerà il 2 dicembre 2024.
Modifiche chiave in Xen 4.16:
- Nel TPM Manager, che gestisce i chip virtuali per la memorizzazione delle chiavi crittografiche (vTPM), implementati sulla base di un TPM fisico comune (Trusted Platform Module), sono state apportate correzioni per successiva implementazione del supporto per la specifica TPM 2.0.
- Aumentata la dipendenza dal layer PV Shim, utilizzato per eseguire sistemi guest paravirtualizzati non modificati (PV) in ambienti PVH e HVM. In futuro, l'uso di sistemi guest paravirtualizzati a 32 bit sarà possibile solo in modalità PV Shim, riducendo il numero di punti nell'hypervisor in cui potrebbero esserci vulnerabilità.
- È stata aggiunta la possibilità di avvio su dispositivi Intel senza timer programmabile (PIT, Programmable Interval Timer).
- È stata effettuata una pulizia dei componenti obsoleti, interrompendo la build predefinita del codice «qemu-xen-traditional» e PV-Grub (non c'è più bisogno di fork specifici per Xen dopo l'integrazione delle modifiche di supporto a Xen nel codice principale di QEMU e Grub).
- Per i sistemi guest con architettura ARM è stato implementato un supporto iniziale per i contatori di monitoraggio delle prestazioni (Performance Monitor Counters).
- È stato migliorato il supporto per la modalità dom0less, che consente di avviare senza distribuire un ambiente dom0. macchine virtuali in una fase iniziale di avvio del server. Le modifiche apportate hanno permesso l'implementazione del supporto per sistemi ARM a 64 bit con firmware EFI.
- Migliorato il supporto per sistemi ARM a 64 bit eterogenei basati sull'architettura big.LITTLE, che combina nel medesimo chip core potenti ma ad alta consumo energetico e core meno prestanti ma più efficienti dal punto di vista energetico.
Allo stesso tempo, Intel ha rilasciato la versione 20.0 del hypervisor Cloud Hypervisor, basato su componenti di un progetto congiunto Rust-VMM, che coinvolge anche Alibaba, Amazon, Google e Red Hat. Rust-VMM è scritto in Rust e consente la creazione di hypervisor specifici per compiti definiti. Cloud Hypervisor è uno di questi hypervisor, che fornisce un monitor di macchine virtuali (VMM) ad alto livello, funzionante su KVM e ottimizzato per le esigenze dei sistemi cloud. Il codice del progetto è disponibile sotto la licenza Apache 2.0.
Cloud Hypervisor è focalizzato sull'esecuzione di moderni distribuzioni Linux utilizzando dispositivi paravirtualizzati basati su virtio. Tra le principali caratteristiche ci sono: elevata reattività, basso consumo di memoria, elevate prestazioni, semplificazione della configurazione e riduzione dei potenziali vettori di attacco. Il supporto per l'emulazione è ridotto al minimo e si punta sulla paravirtualizzazione. Attualmente, sono supportati solo sistemi x86_64, ma è previsto anche il supporto per AArch64. Tra i sistemi guest è attualmente supportata solo la versione a 64 bit di Linux. La configurazione di CPU, memoria, PCI e NVDIMM avviene al momento della costruzione. È prevista la possibilità di migrazione delle macchine virtuali tra server.
Nella nuova versione:
- Per le architetture x86_64 e aarch64 ora è consentita la creazione di fino a 16 segmenti PCI, aumentando il numero totale di dispositivi PCI consentiti da 31 a 496.
- È stata implementata la possibilità di fissare le CPU virtuali a specifici core fisici (CPU pinning). Per ogni vCPU, ora è possibile definire un insieme limitato di CPU host su cui è consentito l'esecuzione, il che può essere utile per il riflesso diretto (1:1) delle risorse dell'host e del sistema guest o per l'avvio della macchina virtuale su un nodo NUMA specifico.
- È stato migliorato il supporto per la virtualizzazione dell'input/output. Ogni area VFIO può ora essere riflessa in memoria, il che riduce il numero di operazioni di uscita dalla macchina virtuale e consente di aumentare le prestazioni del passaggio dei dispositivi alla macchina virtuale.
- Nel codice scritto in Rust è stata effettuata un'operazione di sostituzione delle sezioni unsafe con implementazioni alternative eseguite in modalità safe. Per le restanti sezioni unsafe sono stati aggiunti dettagliati commenti che spiegano perché il codice unsafe rimasto può essere considerato sicuro.
Fonte: opennet.ru
