È stata rilasciata la versione 6.2 del progetto QEMU. Come emulatore, QEMU consente di eseguire programmi compilati per una piattaforma hardware su un sistema con architettura completamente diversa, ad esempio, eseguire un'applicazione ARM su un PC compatibile con x86. In modalità di virtualizzazione, le prestazioni del codice eseguito in un ambiente isolato si avvicinano a quelle di un sistema hardware grazie all'esecuzione diretta delle istruzioni sulla CPU e all'uso del hypervisor Xen o del modulo KVM.
Inizialmente, il progetto è stato creato da Fabrice Bellard con l'obiettivo di consentire l'esecuzione di file eseguibili Linux compilati per la piattaforma x86 su architetture diverse da x86. Nel corso degli anni, è stata aggiunta la supporto per l'emulazione completa di 14 architetture hardware, e il numero dei dispositivi hardware emulati ha superato 400. Per la versione 6.2 sono state apportate oltre 2300 modifiche da parte di 189 sviluppatori.
Miglioramenti chiave aggiunti in QEMU 6.2:
- Nel meccanismo virtio-mem, che consente il collegamento e disconnessione a caldo della memoria per macchine virtuali, è stata aggiunta la piena supporto per i dump della memoria dei sistemi guest, per le operazioni di copia prima e dopo la migrazione dell'ambiente (pre-copy/post-copy) e per la creazione di snapshot del sistema guest in background.
- In QMP (QEMU Machine Protocol) è stata implementata la gestione degli errori DEVICE_UNPLUG_GUEST_ERROR, che si verificano lato guest in caso di errori durante le operazioni di hotplug dell'hardware.
- È stata ampliata la sintassi degli argomenti di avvio gestiti nei plugin per il generatore di codice classico TCG (Tiny Code Generator). Nel plugin 'cache' è stata aggiunta la supporto per sistemi multi-core.
- Nell'emulatore dell'architettura x86 è stato implementato il supporto per il modello CPU Intel Snowridge-v4. È stato aggiunto il supporto per l'accesso agli enclave Intel SGX (Software Guard eXtensions) dai sistemi guest, utilizzando il dispositivo /dev/sgx_vepc lato host e il backend 'memory-backend-epc' in QEMU. Per i sistemi guest protetti dalla tecnologia AMD SEV (Secure Encrypted Virtualization), è stata aggiunta la possibilità di avviare il kernel in modo verificabile (senza utilizzare un bootloader) attivando l'opzione 'kernel-hashes=on' in 'sev-guest'.
- Nell'emulatore ARM sui sistemi host con chip Apple Silicon è stato implementato il supporto per il meccanismo di accelerazione hardware «hvf» durante l'avvio di sistemi guest basati sull'architettura AArch64. È stato aggiunto il supporto per l'emulazione del modello di processori Fujitsu A64FX. È stato realizzato un nuovo tipo di macchine emulate «kudo-mbc». Per le macchine ‘virt’ è stato aggiunto il supporto per l'emulazione del ITS (Interrupt Translation Service) e la possibilità di utilizzare più di 123 CPU in modalità emulazione. Per le macchine emulate «xlnx-zcu102» e «xlnx-versal-virt» è stato aggiunto il supporto per dispositivi BBRAM e eFUSE. Per i sistemi basati sul chip Cortex-M55 è fornito il supporto per il profilo mobile delle estensioni del processore MVE.
- Nell'emulatore dell'architettura PowerPC è stato aggiunto il supporto iniziale per il modello di CPU POWER10 DD2.0. Per le macchine emulate «powernv» è stato migliorato il supporto per l'architettura POWER10, mentre per le macchine ‘pseries’ sono state aggiunte descrizioni FORM2 PAPR NUMA.
- Nell'emulatore dell'architettura RISC-V è stato aggiunto il supporto per le estensioni del set di istruzioni Zb[abcs]. Per tutte le macchine emulate è consentito l'uso delle opzioni «host-user» e «numa mem». È stato aggiunto il supporto per SiFive PWM (modulatore di larghezza d'onda).
- Nell'emulatore dell'architettura 68k è stato migliorato il supporto per il bus NuBus proposto da Apple, compresa la possibilità di caricare immagini ROM e supporto per le slot di interruzione.
- Nella funzione di blocco qemu-nbd è ora abilitato per impostazione predefinita il mode di caching delle operazioni di scrittura ('writeback' invece di 'writethrough') per corrispondere al comportamento di qemu-img. È stata aggiunta l'opzione '--selinux-label' per impostare le etichette SELinux su socket Unix.
Fonte: opennet.ru
