Rilascio dell'emulatore QEMU 6.2

Viene presentato il rilascio del progetto QEMU 6.2. Come emulatore, QEMU consente di eseguire un programma creato per una piattaforma hardware su un sistema con un'architettura completamente diversa, ad esempio eseguire un'applicazione ARM su un PC compatibile con x86. Nella modalità di virtualizzazione in QEMU, le prestazioni dell'esecuzione del codice in un ambiente isolato sono simili a quelle di un sistema hardware a causa dell'esecuzione diretta delle istruzioni sulla CPU e dell'uso dell'hypervisor Xen o del modulo KVM.

Il progetto è stato originariamente creato da Fabrice Bellard per consentire agli eseguibili Linux creati per la piattaforma x86 di funzionare su architetture non x86. Nel corso degli anni di sviluppo, è stato aggiunto il supporto completo dell'emulazione per 14 architetture hardware, il numero di dispositivi hardware emulati ha superato i 400. In preparazione alla versione 6.2, sono state apportate più di 2300 modifiche da 189 sviluppatori.

Principali miglioramenti aggiunti in QEMU 6.2:

  • Il meccanismo virtio-mem, che consente di collegare e disconnettere la memoria alle macchine virtuali, ha aggiunto il supporto completo per i dump della memoria guest, le operazioni di copia prima e dopo la migrazione dell'ambiente (pre-copia/post-copia) e la creazione di snapshot di il sistema ospite in background.
  • QMP (QEMU Machine Protocol) implementa la gestione degli errori DEVICE_UNPLUG_GUEST_ERROR che si verificano sul lato del sistema guest in caso di errori durante le operazioni hot plug.
  • La sintassi degli argomenti di caricamento elaborati nei plugin per il classico generatore di codice TCG (Tiny Code Generator) è stata ampliata. Aggiunto il supporto per i sistemi multi-core al plugin della cache.
  • L'emulatore dell'architettura x86 supporta il modello di CPU Intel Snowridge-v4. Aggiunto il supporto per l'accesso alle enclavi Intel SGX (Software Guard eXtensions) dagli ospiti utilizzando il dispositivo /dev/sgx_vepc sul lato host e il backend "memory-backend-epc" in QEMU. Per i sistemi guest protetti tramite tecnologia AMD SEV (Secure Encrypted Virtualization), è stata aggiunta la possibilità di avviare in modo verificabile il kernel direttamente (senza utilizzare un bootloader) (abilitabile impostando il parametro 'kernel-hashes=on' in 'sev-guest' ).
  • L'emulatore ARM sui sistemi host con chip Apple Silicon implementa il supporto per il meccanismo di accelerazione hardware "hvf" durante l'esecuzione di sistemi guest basati sull'architettura AArch64. Aggiunto il supporto per l'emulazione del modello di processore Fujitsu A64FX. È stato implementato un nuovo tipo di macchina emulata “kudo-mbc”. Per le macchine 'virt', aggiunto il supporto per l'emulazione ITS (Interrupt Translation Service) e la possibilità di utilizzare più di 123 CPU in modalità di emulazione. Aggiunto supporto per dispositivi BBRAM ed eFUSE per macchine emulate "xlnx-zcu102" e "xlnx-versal-virt". Per i sistemi basati sul chip Cortex-M55, viene fornito il supporto per il profilo mobile delle estensioni del processore MVE.
  • Il supporto iniziale per il modello di CPU POWER10 DD2.0 è stato aggiunto all'emulatore dell'architettura PowerPC. Per le macchine "powernv" emulate, il supporto per l'architettura POWER10 è stato migliorato e per le macchine "pseries" sono state aggiunte le descrizioni FORM2 PAPR NUMA.
  • Aggiunto il supporto per le estensioni del set di istruzioni Zb[abcs] all'emulatore dell'architettura RISC-V. Per tutte le macchine emulate sono consentite le opzioni “host-user” e “numa mem”. Aggiunto il supporto per SiFive PWM (modulatore di larghezza di impulso).
  • L'emulatore 68k ha migliorato il supporto per NuBus di Apple, inclusa la possibilità di avviare immagini ROM e il supporto per gli slot di interruzione.
  • Il dispositivo a blocchi qemu-nbd ha la modalità di memorizzazione nella cache di scrittura abilitata per impostazione predefinita ("writeback" invece di "writethrough") per corrispondere al comportamento di qemu-img. Aggiunta l'opzione "--selinux-label" per etichettare i socket Unix SELinux.

Fonte: opennet.ru

Aggiungi un commento