Rilascio dell'emulatore QEMU 4.1

Introdotto rilascio del progetto QEMU 4.1. 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 ARM su un PC compatibile con x86. Nella modalità di virtualizzazione in QEMU, le prestazioni di esecuzione del codice in un ambiente isolato sono vicine al sistema nativo grazie all'esecuzione diretta delle istruzioni sulla CPU e all'uso dell'hypervisor Xen o del modulo KVM.

Il progetto è stato originariamente creato da Fabrice Bellard per consentire agli eseguibili Linux creati per la piattaforma x86 di funzionare su architetture non x86. Nel corso degli anni di sviluppo, è stato aggiunto il supporto completo dell'emulazione per 14 architetture hardware, il numero di dispositivi hardware emulati ha superato i 400. In preparazione alla versione 4.1, sono state apportate più di 2000 modifiche da 276 sviluppatori.

Chiave miglioramentiaggiunto in QEMU 4.1:

  • Il supporto per i modelli di CPU Hygon Dhyana e Intel SnowRidge è stato aggiunto all'emulatore dell'architettura x86. Aggiunta l'emulazione dell'estensione RDRAND (generatore hardware di numeri pseudocasuali). Aggiunti flag
    md-clear e mds-no per controllare la protezione dagli attacchi MDS (Microarchitectural Data Sampling) su processori Intel. Aggiunta la possibilità di determinare topologie di circuiti integrati utilizzando il flag “-smp ...,dies=". Il controllo delle versioni è stato implementato per tutti i modelli di CPU x86;

  • Il driver del blocco SSH è stato spostato dall'utilizzo libsh2 su libsh;
  • Il driver virtio-gpu (GPU virtuale sviluppata come parte del progetto Virgil) aggiunto il supporto per spostare le operazioni di rendering 2D/3D su un processo vhost-user esterno (ad esempio, vhost-user-gpu);
  • L'emulatore dell'architettura ARM ha aggiunto il supporto per l'estensione ARMv8.5-RNG per la generazione di numeri pseudo-casuali. Il supporto per l'emulazione FPU è stato implementato per i chip della famiglia Cortex-M e i problemi con l'emulazione FPU per Cortex-R5F sono stati risolti. È stato proposto un nuovo sistema per impostare le opzioni di compilazione, progettato in stile Kconfig. Per il SoC Exynos4210 è stato aggiunto il supporto ai controller DMA PL330;
  • L'emulatore dell'architettura MIPS ha migliorato il supporto per le istruzioni MSA ASE quando si utilizza l'ordine dei byte big-endian e ha allineato la gestione della divisione per zero casi con l'hardware di riferimento. Sono state aumentate le prestazioni di emulazione delle istruzioni MSA per calcoli interi e operazioni di permutazione;
  • L'emulatore dell'architettura PowerPC ora supporta l'inoltro alle GPU NVIDIA V100/NVLink2 utilizzando VFIO. Per la serie p, è stata implementata l'accelerazione dell'emulazione del controller di interruzione XIVE ed è stato aggiunto il supporto per l'hot plug dei bridge PCI. Sono state apportate ottimizzazioni all'emulazione delle istruzioni vettoriali (Altivec/VSX);
  • Un nuovo modello hardware è stato aggiunto all'emulatore dell'architettura RISC-V: "spike". Aggiunto il supporto per ISA 1.11.0. La chiamata di sistema ABI a 32 bit è stata migliorata, la gestione delle istruzioni non valide è stata migliorata e il debugger integrato è stato migliorato. Aggiunto supporto per la topologia della CPU nell'albero dei dispositivi;
  • L'emulatore di architettura s390 ha aggiunto il supporto per l'emulazione di tutte le istruzioni vettoriali del gruppo "Vector Facility" e ha aggiunto elementi aggiuntivi per supportare i sistemi gen15 (incluso il supporto aggiunto per AP Queue Interruption Facility per vfio-ap). Implementato supporto BIOS per l'avvio da ECKD DASD associato al sistema guest tramite vfio-ccw;
  • Nell'emulatore dell'architettura SPARC per i sistemi sun4m, sono stati risolti i problemi relativi all'utilizzo del flag “-vga none” per OpenBIOS;
  • L'emulatore di processore della famiglia Tensilica Xtensa include opzioni per MPU (unità di protezione della memoria) e accesso esclusivo;
  • Aggiunta l'opzione “-salvage” al comando “qemu-img convert” per disabilitare il crash del processo di conversione delle immagini in caso di errori I/O (può essere utilizzata ad esempio per ripristinare file qcow2 parzialmente danneggiati). In una squadra
    "qemu-img rebase" funziona quando non è stato ancora creato un file di supporto per il file di input;

  • Aggiunta la possibilità di reindirizzare l'output organizzato utilizzando la tecnologia "semihosting" (consente al dispositivo emulato di utilizzare stdout, stderr e stdin per creare file sul lato host) al backend chardev ("-semihosting-config abilita=on,target=native ,chardev=[ID]");
  • Aggiunto il supporto per il sottoformato seSparse in modalità di sola lettura nel driver del blocco VMDK;
  • Aggiunto il supporto per il controller GPIO SiFive nel driver di emulazione GPIO.

Fonte: opennet.ru

Aggiungi un commento