È stato presentato il rilascio del progetto QEMU 6.1. QEMU, come emulatore, 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à 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'utilizzo dell'iperfvisor 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. Nel corso degli anni sono state aggiunte funzionalità che supportano la piena emulazione per 14 architetture hardware, e il numero di dispositivi hardware emulati ha superato 400. Per la versione 6.1 sono state apportate oltre 3000 modifiche da 221 sviluppatori.
Miglioramenti chiave aggiunti in QEMU 6.1:
- Nel QMP (QEMU Machine Protocol) è stata aggiunta la comando 'blockdev-reopen' per modificare le impostazioni di un dispositivo a blocchi già creato.
- Il driver crittografico prioritario è gnutls, che supera gli altri driver in termini di prestazioni. Il driver basato su libgcrypt, precedentemente impostato come predefinito, è stato spostato nelle opzioni, mentre il driver basato su nettle rimane come opzione di riserva, utilizzato in assenza di GnuTLS e Libgcrypt.
- Nel simulatore I2C è stata aggiunta la supporto per PMBus e multiplexers I2C (pca9546, pca9548).
- Per impostazione predefinita, è attivato il supporto per i plugin del generatore di codice classico TCG (Tiny Code Generator). Sono stati aggiunti nuovi plugin execlog (registro di esecuzione) e cache modelling (simulazione del comportamento della cache L1 nella CPU).
- Nel simulatore ARM è stata aggiunta la supporto per schede basate su chip Aspeed (rainier-bmc, quanta-q7l1), npcm7xx (quanta-gbs-bmc) e Cortex-M3 (stm32vldiscovery). È stato aggiunto il supporto per motori hardware di crittografia e hashing forniti nei chip Aspeed. È stato aggiunto il supporto per l'emulazione delle istruzioni SVE2 (incluso bfloat16), operatori per la moltiplicazione di matrici e comandi di reset dei buffer di traduzione associativa (TLB).
- Nell'emulatore dell'architettura PowerPC per le macchine emulate 'pseries' è stata aggiunta la supporto per la rilevazione di malfunzionamenti durante il collegamento a caldo dei dispositivi in nuovi ambienti guest, è stato aumentato il limite del numero di CPU e implementata l'emulazione di alcune istruzioni specifiche per i processori POWER10. È stato aggiunto il supporto per le schede basate su chip Genesi/bPlan Pegasos II (pegasos2).
- Nell'emulatore RISC-V è stato implementato il supporto per la piattaforma OpenTitan e la GPU virtuale virtio-vga (basata su virgl).
- Nell'emulatore s390 è stato aggiunto il supporto per la CPU di 16ª generazione e le estensioni vettoriali.
- Nell'emulatore x86 è stato aggiunto il supporto per i nuovi modelli di CPU Intel (Skylake-Client-v4, Skylake-Server-v5, Cascadelake-Server-v5, Cooperlake-v2, Icelake-Client-v3, Icelake-Server-v5, Denverton-v3, Snowridge-v3, Dhyana-v2), che includono l'istruzione XSAVES. Nell'emulatore del chipset Q35 (ICH9) è stato implementato il supporto per il collegamento a caldo dei dispositivi PCI. È migliorata l'emulazione delle estensioni di virtualizzazione fornite nei processori AMD. È stata aggiunta l'opzione bus-lock-ratelimit per limitare l'intensità del blocco del bus da parte del sistema guest.
- È stato aggiunto il supporto per l'utilizzo come acceleratore per l'iperparalizzatore NVMM, sviluppato dal progetto NetBSD.
- Nell'interfaccia grafica, il supporto per l'autenticazione tramite password nel protocollo VNC è ora attivato solo con una build che utilizza un backend crittografico esterno (gnutls, libgcrypt o nettle).
Fonte: opennet.ru
