È stato rilasciato il progetto QEMU 7.0. Come emulatore, QEMU consente di eseguire un programma compilato per una piattaforma hardware su un sistema con un'architettura completamente diversa, ad esempio eseguire un'applicazione per ARM su un PC compatibile con x86. In modalità virtualizzazione, le prestazioni del codice in esecuzione in un ambiente isolato sono vicine a quelle di un sistema hardware grazie all'esecuzione diretta delle istruzioni sulla CPU e all'uso di un hypervisor Xen o del modulo KVM.
Il progetto è stato inizialmente 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, è stata aggiunta la supporto per l'emulazione completa di 14 architetture hardware, con oltre 400 dispositivi hardware emulati. Per la versione 7.0 sono stati effettuati più di 2500 cambiamenti da 225 sviluppatori.
Miglioramenti chiave aggiunti in QEMU 7.0:
- Nell'emulatore dell'architettura x86 è stata aggiunta la supporto per il set di istruzioni Intel AMX (Advanced Matrix Extensions), implementato nei processori server Intel Xeon Scalable. AMX offre nuovi registri personalizzabili TMM "TILE" e istruzioni per la manipolazione dei dati in questi registri, come TMUL (Tile matrix MULtiply) per la moltiplicazione delle matrici.
- È stata fornita la possibilità di registrare eventi ACPI dal sistema ospite tramite l'interfaccia ACPI ERST.
- Nel modulo virtiofs, utilizzato per il passaggio di parte del file system dell'ambiente host al sistema ospite, è stato migliorato il supporto per le etichette di sicurezza. È stata corretta la vulnerabilità CVE-2022-0358, che consentiva di elevare i propri privilegi nel sistema creando file eseguibili nelle directory passate tramite virtiofs, appartenenti a un'altra gruppo e dotate del flag SGID.
- È aumentata la flessibilità del backup delle immagini di sistema attive in esecuzione (viene creato uno snapshot, quindi un filtro copy-before-write (CBW) è applicato per aggiornare lo stato dello snapshot, copiando i dati dalle aree in cui il sistema ospite scrive). È stata aggiunta la supporto per immagini nei formati diversi da qcow2. È stata garantita la possibilità di accedere allo snapshot con il backup non direttamente, ma tramite il driver del dispositivo di blocco snapshot-access. Sono state ampliate le opzioni di gestione del funzionamento del filtro CBW, ad esempio, è possibile escludere determinate bitmap dal trattamento.
- Nell'emulatore ARM per le macchine ‘virt’ è stata aggiunta la supporto per virtio-mem-pci, la definizione della topologia della CPU per il sistema ospite e l'inclusione di PAuth quando si utilizza l'ipervisore. KVM con l'acceleratore hvf. Nell'emulatore di schede ‘xlnx-versal-virt’ è stata aggiunta la supporto per PMC SLCR e l'emulazione del controller della memoria Flash OSPI. Per le macchine emulate ‘xlnx-zynqmp’ sono stati aggiunti nuovi modelli di gestione del CRF e dell'APU. È stata aggiunta l'emulazione delle estensioni FEAT_LVA2, FEAT_LVA (Large Virtual Address space) e FEAT_LPA (Large Physical Address space).
- Con il generatore di codice classico TCG (Tiny Code Generator) è stata interrotta la supporto per gli host con CPU ARMv4 e ARMv5, che non supportano l'accesso alla memoria non allineato e hanno una quantità insufficiente di RAM per eseguire QEMU.
- Nell'emulatore dell'architettura RISC-V è stata aggiunta la supporto per il hypervisor KVM e implementate le estensioni vettoriali Vector 1.0, oltre a istruzioni come Zve64f, Zve32f, Zfhmin, Zfh, zfinx, zdinx e zhinx{min}. Per le macchine emulabili 'spike' è stata aggiunta la possibilità di caricare file binari OpenSBI (Interfaccia binaria supervisor RISC-V). Per le macchine emulabili 'virt' è stata implementata la possibilità di utilizzare fino a 32 nuclei di CPU e supporto AIA.
- Nell'emulatore dell'architettura HPPA è stata fornita la possibilità di utilizzare fino a 16 vCPU e migliorato il driver grafico per ambienti utente HP-UX VDE/CDE. È stata aggiunta la possibilità di modificare l'ordine di avvio per i dispositivi SCSI.
- Nell'emulatore dell'architettura OpenRISC per schede 'sim' è stata aggiunta la supporto per l'utilizzo di fino a 4 nuclei CPU, il caricamento di un'immagine initrd esterna e la generazione automatica del device tree per il kernel caricato.
- Nell'emulatore dell'architettura PowerPC per macchine emulati 'pseries' è stata implementata la possibilità di avviare sistemi guest sotto il controllo dell'ipervisore KVM. È stata aggiunta la supporto per il dispositivo spapr-nvdimm. Per le macchine emulati 'powernv' è stato aggiunto il supporto per il controller delle interruzioni XIVE2 e per i controller PHB5, migliorando il supporto per XIVE e PHB 3/4.
- Nell'emulatore dell'architettura s390x è stato aggiunto il supporto per le estensioni z15 (Miscellaneous-Instruction-Extensions Facility 3).
Fonte: opennet.ru
