rilascio del progetto . 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 x86. In modalità di virtualizzazione, le prestazioni di esecuzione del codice in un ambiente isolato sono vicine a quelle di un sistema nativo grazie all'esecuzione diretta delle istruzioni sulla CPU e all'utilizzo dell'iper-visore Xen o del modulo KVM.
Il progetto è stato originariamente creato da Fabrice Bellard con l'obiettivo di eseguire file eseguibili Linux compilati per piattaforme x86 su architetture diverse da x86. Nel corso degli anni, è stata aggiunta la piena emulazione per 14 architetture hardware, con oltre 400 dispositivi emulati. Per la versione 5.1 sono state apportate oltre 2500 modifiche da 235 sviluppatori.
Chiave , aggiunte in QEMU 5.1:
- È stata aggiunta la supporto per l'emulazione della CPU basata sull'architettura . È stata implementata la supporto per le schede Arduino Duemilanove (ATmega168), Arduino Mega 2560 (ATmega2560),
Arduino Mega (ATmega1280) e Arduino UNO (ATmega328P). - Nell'emulatore ARM è stata aggiunta la possibilità di disconnettere la memoria a caldo (hot-unplug), così come il collegamento a caldo della memoria nvdimm per sistemi guest con ACPI. È stata implementata la supporto per le estensioni ARMv8.2 e . È stata garantita la supporto per la scheda sonorapass-bmc.
- Nell'emulatore MIPS è stata aggiunta la supporto per le CPU Loongson 3A (R1 e R4). Le prestazioni dell'emulazione delle istruzioni FPU e MSA sono state migliorate.
- Nell'emulatore RISC-V è stata aggiunta la supporto per le CPU SiFive E34 e Ibex. È stata implementata la supporto per le schede HiFive1 revB e OpenTitan. Per le macchine Spike, è stata fornita la supporto per più di una CPU.
- Nell'emulatore PowerPC è stata introdotta la supporto per il ripristino degli errori nei sistemi guest tramite FWNMI.
- Per l'architettura s390 è stata aggiunta la supporto KVM per la virtualizzazione sicura (modalità di esecuzione sicura).
- Nell'emulatore x86 sono state ridotte le spese generali per la virtualizzazione di sistemi guest non adattati con Windows, fornendo una tabella di dispositivi emulati ACPI WAET (Windows ACPI Emulated Device Table). È stato migliorato il supporto per l'accelerazione per macOS.
- Nel driver dei dispositivi a blocchi è stata aggiunta la supporto per dispositivi di archiviazione virtuale con blocchi logici e fisici di dimensione 2MB.
- È stata aggiunta la possibilità di passare a QEMU password e chiavi di crittografia tramite keyring del kernel Linux utilizzando nuovi oggetti di tipo "secret-keyring".
- Per il formato qcow2 è stata implementata la supporto per l'algoritmo di compressione zstd.
- Nell'utility qemu-img è stato aggiunto un nuovo comando 'bitmap' per manipolare bitmap persistenti nei file qcow2. In qemu-img è stata anche implementata la gestione delle chiavi LUKS (keyslot) e sono state proposte ulteriori opzioni per i comandi 'map' (—start-offset, —max-length) e 'convert' (—bitmaps). Nel comando 'measure' è stato aggiunto l'output delle informazioni sulla dimensione delle bitmap persistenti nei file qcow2.
- Nel driver NVMe è stata aggiunta la supporto per le regioni di memoria persistente (Persistent Memory Region), introdotte nella specifica NVMe 1.4.
- Nel virtio per i sistemi guest con generatore di codice classico TCG (Tiny Code Generator) è stata implementata la possibilità di utilizzare processi , inclusi virtiofsd. In vhost-user è stata aggiunta l'estensione VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS, che consente di registrare più di 8 slot di RAM.
Fonte: opennet.ru
