Rilascio dell'emulatore QEMU 4.0

Formato rilascio del progetto QEMU 4.0. 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.0, sono state apportate più di 3100 modifiche da 220 sviluppatori.

Chiave miglioramentiaggiunto in QEMU 4.0:

  • All'emulatore dell'architettura ARM è stato aggiunto il supporto per le estensioni delle istruzioni ARMv8+: SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT e ITV. Aggiunto supporto per l'emulazione delle schede Musca e MPS2. Emulazione ARM PMU (Power Management Unit) migliorata. Alla piattaforma virt aggiunta la possibilità di utilizzare più di 255 GB di RAM e supporto per immagini u-boot di tipo “noload”;

  • Nell'emulatore dell'architettura x86 nel motore di accelerazione della virtualizzazione HAX (Intel Hardware Accelerated Execution) ha aggiunto il supporto per host conformi a POSIX come Linux e NetBSD (in precedenza era supportata solo la piattaforma Darwin). Nell'emulatore del chipset Q35 (ICH9) per le principali porte PCIe, la velocità massima (16GT/s) e il numero di linee di connessione (x32) definiti nella specifica PCIe 4.0 possono ora essere dichiarati opzionalmente (per garantire la compatibilità, 2.5GT è installato per impostazione predefinita per i tipi precedenti di macchine QEMU /s e x1). È possibile caricare immagini Xen PVH con l'opzione “-kernel”;
  • L'emulatore dell'architettura MIPS ha aggiunto il supporto per l'emulazione multi-thread utilizzando il classico generatore di codice TCG (Tiny Code Generator). Aggiunto anche il supporto per l'emulazione di CPU I7200 (nanoMIPS32 ISA) e I6500 (MIPS64R6 ISA), la capacità di elaborare richieste di tipo CPU utilizzando QMP (QEMU Management Protocol), aggiunto il supporto per i registri di configurazione SAARI e SAAR. Prestazioni migliorate delle macchine virtuali con il tipo Fulong 2E. Implementazione aggiornata dell'unità di comunicazione interthread;
  • Nell'emulatore dell'architettura PowerPC è stato aggiunto il supporto per l'emulazione del controller di interruzione XIVE, il supporto per POWER9 è stato ampliato e per la serie P è stata aggiunta la possibilità di collegare a caldo bridge host PCI (PHB, PCI host bridge). La protezione contro gli attacchi Spectre e Meltdown è abilitata per impostazione predefinita;
  • Il supporto per l'emulazione PCI e USB è stato aggiunto all'emulatore dell'architettura RISC-V. Il server di debug integrato (gdbserver) ora supporta la specifica di elenchi di registri nei file XML. Aggiunto supporto per i campi mstatus TSR, TW e TVM;
  • L'emulatore dell'architettura s390 ha aggiunto il supporto per il modello di CPU z14 GA 2, nonché il supporto per l'emulazione delle estensioni delle istruzioni per operazioni in virgola mobile e vettoriali. La possibilità di collegare i dispositivi a caldo è stata aggiunta a vfio-ap;
  • L'emulatore di processore della famiglia Tensilica Xtensa ha migliorato il supporto SMP per Linux e aggiunto il supporto per FLIX (estensione delle istruzioni di lunghezza flessibile);
  • All'interfaccia grafica è stata aggiunta l'opzione '-display Spice-app' per configurare e lanciare una versione del client di accesso remoto Spice con un design simile all'interfaccia QEMU GTK;
  • Aggiunto supporto per il controllo degli accessi utilizzando le opzioni tls-authz/sasl-authz all'implementazione del server VNC;
  • QMP (QEMU Management Protocol) ha aggiunto il supporto per l'esecuzione di comandi centralizzati/esterni (fuori banda) e ha implementato comandi aggiuntivi per lavorare con dispositivi a blocchi;
  • Un'implementazione dell'interfaccia EDID è stata aggiunta a VFIO per gli mdev supportati (Intel vGPU), consentendo di modificare la risoluzione dello schermo utilizzando le opzioni xres e yres;
  • È stato aggiunto un nuovo dispositivo "xen-disk" per Xen, che può creare in modo indipendente un backend del disco per Xen PV (senza accedere a xenstore). Le prestazioni del backend del disco Xen PV sono state aumentate ed è stata aggiunta la possibilità di modificare la dimensione del disco;
  • Le funzionalità di diagnostica e tracciamento sono state ampliate nei dispositivi a blocchi di rete ed è stata migliorata la compatibilità del client con le implementazioni problematiche del server NBD. Aggiunte le opzioni “--bitmap”, “--list” e “--tls-authz” a qemu-nbd;
  • Aggiunto il supporto per la modalità IDE PCI al dispositivo IDE/via emulato;
  • Aggiunto il supporto per l'utilizzo dell'algoritmo lzfse per comprimere le immagini dmg. Per il formato qcow2 è stato aggiunto il supporto per la connessione di file di dati esterni. Le operazioni di decompressione di qcow2 vengono spostate in un thread separato. Aggiunto il supporto per l'operazione “blockdev-create” nelle immagini vmdk;
  • Il dispositivo a blocchi virtio-blk ha aggiunto il supporto per le operazioni DISCARD (informando sul rilascio dei blocchi) e WRITE_ZEROES (azzerando un intervallo di blocchi logici);
  • Il dispositivo pvrdma supporta i servizi RDMA Management Datagram (MAD);
  • Ha contribuito modifiche, violando la compatibilità con le versioni precedenti. Ad esempio, invece dell'opzione "handle" in "-fsdev" e "-virtfs", dovresti usare le opzioni "local" o "proxy". Le opzioni “-virtioconsole” (sostituito con “-device virtconsole”), “-no-frame”, “-clock”, “-enable-hax” (sostituito con “-accel hax”) sono state rimosse. Dispositivo "ivshmem" rimosso (dovrebbe utilizzare "ivshmem-doorbell" e "ivshmem-plain"). Il supporto per la creazione con SDL1.2 è stato interrotto (è necessario utilizzare SDL2).

Fonte: opennet.ru

Aggiungi un commento