rilascio del progetto . Come emulatore, QEMU permette 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à virtualizzazione, le prestazioni di esecuzione del codice in un ambiente isolato si avvicinano a quelle di un sistema nativo grazie all'esecuzione diretta delle istruzioni sulla CPU e all'uso dell'ipervisore Xen o del modulo KVM.
Il progetto è stato originariamente 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, è stato aggiunto il supporto per l'emulazione completa di 14 architetture hardware, con oltre 400 dispositivi hardware emulati. Nella preparazione della versione 5.0 sono state apportate oltre 2800 modifiche da 232 sviluppatori.
Le chiave , aggiunte in QEMU 5.0:
- La possibilità di passare una parte del filesystem dell'ambiente host al sistema guest tramite . Il sistema guest può montare una directory contrassegnata per l'esportazione dal lato del sistema host, il che semplifica notevolmente l'organizzazione dell'accesso condiviso alle directory nei sistemi di virtualizzazione. A differenza dell'uso di filesystem di rete, come NFS e virtio-9P, virtiofs consente di ottenere prestazioni simili a quelle di un filesystem locale;
- live-migrazione dei dati dei processi esterni che utilizzano il bus QEMU D-Bus;
- Possibilità di utilizzare per garantire il funzionamento della memoria operativa principale del sistema ospite. Il backend è impostato tramite l'opzione «-machine memory-backend»;
- Nuovo filtro «compress», che può essere utilizzato per creare backup compressi delle immagini;
- Il comando «qemu-img measure» ora può lavorare con immagini LUKS e nel comando «qemu-img convert» è stata aggiunta l'opzione «—target-is-zero» per saltare l'azzeramento dell'immagine di destinazione;
- Aggiunto il supporto sperimentale per il processo qemu-storage-daemon, che fornisce accesso al livello di blocco di QEMU e ai comandi QMP, inclusa l'esecuzione di operazioni con dispositivi di blocco e un server NBD integrato, senza la necessità di avviare una macchina virtuale completa;
- Nell'emulatore dell'architettura ARM è stata aggiunta la possibilità di emulare la CPU Cortex-M7 e sono stati garantiti il supporto per le schede tacoma-bmc, Netduino Plus 2 e Orangepi PC. Nelle macchine emulate ‘virt’ è stato aggiunto il supporto per i dispositivi vTPM e virtio-iommu. È stata dichiarata obsoleta la possibilità di utilizzare sistemi host AArch32 per avviare ambienti ospiti KVM. È stato implementato il supporto per l'emulazione delle seguenti funzionalità delle architetture:
- ARMv8.1: VHE, VMID16, PAN, PMU
- ARMv8.2: UAO, DCPoP, ATS1E1, TTCNP
- ARMv8.3: RCPC, CCIDX
- ARMv8.4: PMU, RCPC
- Nell'emulatore dell'architettura HPPA è stato aggiunto il supporto per la console grafica utilizzando il dispositivo grafico HP Artist;
- Nell'emulatore dell'architettura MIPS è stato aggiunto il supporto per l'istruzione GINVT (Global Invalidation TLB);
- Nell'emulatore dell'architettura PowerPC per le macchine ‘powernv’ è stata aggiunta l'emulazione delle funzionalità di accelerazione hardware KVM per l'esecuzione di sistemi ospiti
KVM con il generatore di codice classico TCG (Tiny Code Generator). Per l'emulazione della memoria permanente è stato implementato il supporto per i NVDIMM riflessi su file. Per le macchine ‘pseries’ è stata rimossa la necessità di riavviare per sincronizzare il funzionamento dei controller di interruzione XIVE/XICS in modalità «ic-mode=dual»; - Nell'emulatore dell'architettura RISC-V per le schede ‘virt’ e ‘sifive_u’ è stato implementato il supporto per i driver syscon standard in Linux per la gestione dell'alimentazione e del riavvio. Per la scheda ‘virt’ è stato aggiunto il supporto per il Goldfish RTC. È stata aggiunta un'implementazione sperimentale delle estensioni dell'iper-vizore;
- Nell'emulatore dell'architettura s390 è stato aggiunto il supporto per AIS (Adapter Interrupt Suppression) durante il funzionamento in modalità KVM.
Fonte: opennet.ru
