È stata presentata la release del progetto QEMU 8.0. Come emulatore, QEMU consente di eseguire programmi compilati per una piattaforma hardware su un sistema con architettura completamente diversa, ad esempio, eseguire un'applicazione per ARM su un PC compatibile x86. In modalità di virtualizzazione, le prestazioni dell'esecuzione del codice in un ambiente isolato sono simili a quelle di un sistema hardware grazie all'esecuzione diretta delle istruzioni sulla CPU e al coinvolgimento dell'iper-vizore 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. Negli anni di sviluppo è stato aggiunto il supporto per l'emulazione completa di 14 architetture hardware, e il numero di dispositivi hardware emulati ha superato i 400. Nella preparazione della versione 8.0, sono state apportate oltre 2800 modifiche da parte di 238 sviluppatori.
Miglioramenti chiave aggiunti in QEMU 8.0:
- La supporto per l'emulazione di sistema (esecuzione di un OS completo, inclusivo di hypervisor) su host a 32 bit con architettura x86 è stato dichiarato obsoleto e verrà interrotto a breve. KVM Il supporto per l'emulazione in modalità user (esecuzione di singoli processi compilati per un'altra CPU) su host x86 a 32 bit continuerà.
- Nell'emulatore x86 è stato aggiunto il supporto per l'avvio di sistemi guest Xen in un ambiente basato sull'iper-vizore KVM e su kernel Linux 5.12+.
- Nel generatore di codice TCG classico per l'architettura x86 è stato aggiunto il supporto ai flag CPUID FSRM, FZRM, FSRS e FSRC. È stato implementato il supporto per il nuovo modello di CPU Intel Sapphire Rapids (Intel 7).
- Nell'emulatore ARM è stato implementato il supporto per le CPU Cortex-A55 e Cortex-R52, è stato aggiunto un nuovo tipo di macchine emulabili Olimex STM32 H405, e sono stati implementati il supporto per le estensioni della CPU FEAT_EVT (Enhanced Virtualization Traps), FEAT_FGT (Fine-Grained Traps) e AArch32 ARMv8-R. Nel gdbstub è stata aggiunta la compatibilità con i registri di sistema per l'architettura M-profile (profilo dei microcontrollori).
- Nell'emulatore RISC-V è stata aggiornata l'implementazione delle macchine emulabili OpenTitan, PolarFire e OpenSBI. È stato aggiunto il supporto per ulteriori set di istruzioni (ISA) e estensioni: Smstateen, contatori di debug icount, legati alla cache degli eventi PMU in modalità virtuale, ACPI, estensioni Zawrs, Svadu, T-Head e Zicond.
- Nell'emulatore dell'architettura HPPA è stato aggiunto il supporto per l'istruzione fid (Floating-Point Identify) e migliorata l'emulazione in modalità a 32 bit.
- Nell'emulatore dell'architettura 390x è supportta la disconnessione asincrona della memoria durante il riavvio dei sistemi guest protetti KVM. Migliorata la gestione dei dispositivi zPCI pass-through.
- Nel meccanismo virtio-mem, che consente il collegamento e la disconnessione della memoria a caldo per le macchine virtuali, è stata implementata l'allocazione anticipata delle risorse (preallocation) durante la live-migrazione.
- In VFIO (Virtual Function I/O) è stato aggiornato il supporto sperimentale per la migrazione (attivata la seconda versione del protocollo di migrazione).
- Nel dispositivo a blocchi qemu-nbd è stata aumentata l'efficienza del funzionamento su TCP con l'uso di TLS.
- Nell'agente per i sistemi guest è stato aggiunto il supporto iniziale per OpenBSD e NetBSD.
Fonte: opennet.ru
