È stata presentata la release del progetto QEMU 10.0.0. Come emulatore, QEMU consente di eseguire software 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 di esecuzione del codice in un ambiente isolato sono vicine a quelle di una sistema hardware grazie all'esecuzione diretta delle istruzioni sulla CPU e all'uso dell'iperpervisore Xen o del modulo KVM in Linux, o del modulo NVMM in NetBSD.
Il progetto è stato originariamente creato da Fabrice Bellard con l'obiettivo di consentire l'esecuzione di file eseguibili Linux compilati per piattaforme x86 su architetture diverse da x86. Negli anni di sviluppo è stato aggiunto il supporto per la completa emulazione di 14 architetture hardware e il numero di dispositivi hardware emulati ha superato i 400. Nella preparazione della versione 10.0 sono state apportate oltre 2800 modifiche da parte di 211 sviluppatori.
Miglioramenti chiave aggiunti in QEMU 10.0:
- Nel driver virtio-scsi, che fornisce un controller SCSI virtuale (SCSI Host Bus Adapter) per macchine virtuali, è stato aggiunto il supporto per un sistema di code multilivello (multiqueue), che consente di separare le code per diversi dispositivi block per garantire l'accesso multithreading su sistemi multi-core (le diverse code di un singolo dispositivo possono essere gestite da thread di I/O distinti). Rispetto al driver del dispositivo block virtuale (virtio-blk), il controller SCSI virtuale è leggermente inferiore in termini di prestazioni, ma consente di utilizzare più di 28 dischi.
- In VFIO (Virtual Function I/O) è stato migliorato il supporto per il passaggio dell'IGD (Integrated Graphics Device) per GPU integrate utilizzate nelle generazioni di processori Intel 11 (Rocket Lake) e 12 (Alder Lake). È stato aggiunto il supporto per GPU ATI più vecchie (x550). È stato implementato il supporto di base per PCI PM (Power Management).
- La documentazione del protocollo QMP (QEMU Machine Protocol) è stata significativamente rielaborata e ampliata, consentendo alle applicazioni di gestire QEMU.
- È stata aggiunta una nuova modalità di Live migration "cpr-transfer" (CheckPoint and Restart), che consente di spostare un sistema guest in una nuova istanza di QEMU avviata sulla stessa host. Questa modalità minimizza il tempo di sospensione poiché la memoria del sistema guest viene riflessa nello spazio di indirizzamento virtuale del nuovo QEMU senza copiare il contenuto.
- Aggiunti i dispositivi grafici ‘apple-gfx-pci’ e ‘apple-gfx-mmio’, che utilizzano il framework ParavirtualizedGraphics fornito in macOS per l'accelerazione hardware della grafica nei sistemi guest. Il primo driver è destinato all'uso su dispositivi x86-64, mentre il secondo è per ARM64.
- L'emulatore dell'architettura x86 ha implementato il supporto per i modelli di processori Intel Xeon Clearwater Forest e Sierra Forest v2. Accellerata l'emulazione delle istruzioni per la manipolazione dei dati stringa.
- L'emulatore dell'architettura ARM ha implementato il supporto per le schede NPCM8445 Evaluation e i.MX 8M Plus EVK. Aggiunta l'emulazione delle estensioni FEAT_AFP, FEAT_RPRES e FEAT_XS, nonché dei timer fisici e virtuali EL2. Dichiarato obsoleto il supporto per CPU Arm PXA2xx e l'emulazione delle istruzioni iwMMXt.
- L'emulatore dell'architettura RISC-V ha implementato l'emulazione delle schede Microblaze V, CPU Ascalon e CPU RV64 Xiangshan Nanhu. Aggiunto il supporto per le estensioni dell'architettura del set di istruzioni ‘svukte’, ‘ssstateen’, ‘smrnmi’, ‘smdbltrp’/'ssdbltrp’, ‘supm’, ‘sspm’, nonché i tag di traduzione IOMMU e dei dispositivi riscv-iommu-sys.
- Nell'emulatore dell'architettura HPPA è stata realizzata l'emulazione delle schede Diva GSP BMC. Aggiornato il firmware SeaBIOS-hppa fino alla versione 18. Aumentata la velocità di traduzione. Migliorato il codice per il reset della CPU virtuale. Nei sistemi a 64 bit è stata realizzata l'emulazione delle configurazioni con dimensioni della memoria fino a 256 GB.
- Nell'emulatore dell'architettura LoongArch è stato aggiunto il supporto per il collegamento a caldo della CPU. Implementato l'IPI (inter-processor interrupt) paravirtualizzato. Garantito il monitoraggio del tempo di attesa per la fornitura delle risorse dall'ipervisore. KVMAggiunto il supporto per il routing virtuale delle interruzioni esterne (extioi).
- Nell'emulatore dell'architettura s390x aggiunto il supporto per la generazione 17 delle CPU mainframe e implementato il supporto per virtio-mem. Per migliorare le prestazioni, è stata aggiunta la possibilità di interagire con i dispositivi PCI bypassando l'IOMMU.
Fonte: opennet.ru
