Rilascio dell'emulatore QEMU 4.1

Presentato rilascio del progetto QEMU 4.1. 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.

Inizialmente, il progetto è stato 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 l'emulazione completa di 14 architetture hardware, il numero di dispositivi hardware emulati ha superato 400. Nella preparazione della versione 4.1 sono state apportate oltre 2000 modifiche da 276 sviluppatori.

Le chiave miglioramenti, aggiunti in QEMU 4.1:

  • Nell'emulatore dell'architettura x86 è stato aggiunto il supporto per i modelli CPU Hygon Dhyana e Intel SnowRidge. È stata aggiunta l'emulazione dell'estensione RDRAND (generatore hardware di numeri pseudo-casuali). Sono stati aggiunti i flag
    md-clear e mds-no per gestire la protezione dagli attacchi MDS (Microarchitectural Data Sampling) sui processori Intel. È stata aggiunta la possibilità di determinare le topologie dei circuiti integrati utilizzando il flag "-smp …,dies=“. È stata implementata la versioning per tutti i modelli CPU x86;
  • Il driver a blocchi SSH è stato convertito dall'utilizzo di libssh2 in libssh;
  • Nel driver virtio-gpu (GPU virtuale sviluppata nell'ambito del progetto Virgil) è stato aggiunto il supporto per l'uscita delle operazioni di rendering 2D/3D a un processo esterno vhost-user (ad esempio, vhost-user-gpu);
  • Nell'emulatore dell'architettura ARM è stato aggiunto il supporto per l'estensione ARMv8.5-RNG per la generazione di numeri pseudo-casuali. È stato implementato il supporto per l'emulazione della FPU per i chip della famiglia Cortex-M e sono stati risolti problemi con l'emulazione della FPU per Cortex-R5F. È stato proposto un nuovo sistema di configurazione delle opzioni di build, formato secondo lo stile Kconfig. Per il SoC Exynos4210 è stato aggiunto il supporto per i controller DMA PL330;
  • Nell'emulatore dell'architettura MIPS è stato migliorato il supporto per le istruzioni MSA ASE utilizzando l'ordine dei byte big-endian ed è stata allineata la gestione dei casi di divisione per zero con l'hardware di riferimento. È stata aumentata la velocità di emulazione delle istruzioni MSA per calcoli interi e operazioni di permutazione;
  • Nell'emulatore dell'architettura PowerPC è stata aggiunta la supporto per il passaggio al GPU NVIDIA V100/NVLink2 tramite VFIO. Per pseries è stata implementata l'accelerazione dell'emulazione del controller delle interruzioni XIVE ed è stato aggiunto il supporto per il collegamento a caldo degli hub PCI. Sono state apportate ottimizzazioni nell'emulazione delle istruzioni vettoriali (Altivec/VSX);
  • Nel emulatore dell'architettura RISC-V è stato aggiunto un nuovo modello hardware — "spike". È stato aggiunto il supporto per l'ISA 1.11.0. Migliorato l'ABI a 32 bit per le chiamate di sistema, ampliata la gestione delle istruzioni non valide e migliorato il debugger integrato. È stato aggiunto il supporto per la topologia della CPU nel device tree;
  • Nell'emulatore dell'architettura s390 è stato aggiunto il supporto per l'emulazione di tutte le istruzioni vettoriali del gruppo "Vector Facility" ed è stato aggiunto ulteriore supporto per i sistemi gen15 (incluso il supporto per l'AP Queue Interruption Facility per vfio-ap). È stato implementato il supporto per il BIOS per il caricamento da ECKD DASD, collegato al sistema ospite tramite vfio-ccw;
  • Nell'emulatore dell'architettura SPARC per i sistemi sun4m sono stati risolti i problemi riguardanti l'uso del flag "-vga none" per OpenBIOS;
  • Nell'emulatore dei processori della famiglia Tensilica Xtensa sono state implementate opzioni per l'MPU (unità di protezione della memoria) e accesso esclusivo;
  • Nel comando "qemu-img convert" è stata aggiunta l'opzione "—salvage" per disabilitare l'arresto anomalo del processo di conversione dell'immagine in caso di errori di input/output (ad esempio, può essere utilizzata per recuperare file qcow2 parzialmente danneggiati). Nel comando
    "qemu-img rebase" è garantito il funzionamento quando per il file di input non è ancora stato creato un file di base (backing);
  • È stata 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 enable=on,target=native,chardev=[ID]");
  • Nel driver blocco VMDK è stato aggiunto il supporto per il sottotipo seSparse in modalità sola lettura;
  • Nel driver di emulazione GPIO è stato aggiunto il supporto per il controllore GPIO SiFive.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster