Rilascio dell'emulatore QEMU 7.1

Viene presentato il rilascio del progetto QEMU 7.1. Come emulatore, QEMU consente di eseguire un programma creato 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 dell'esecuzione del codice in un ambiente isolato sono simili a quelle di un sistema hardware a causa dell'esecuzione diretta delle istruzioni sulla CPU e dell'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 7.1, sono state apportate più di 2800 modifiche da 238 sviluppatori.

Principali miglioramenti aggiunti in QEMU 7.1:

  • Sulla piattaforma Linux è implementata l'opzione zero-copy-send, che consente di organizzare il trasferimento delle pagine di memoria durante la migrazione live senza buffering intermedio.
  • QMP (QEMU Machine Protocol) ha aggiunto la possibilità di utilizzare il comando block-export-add per esportare immagini NBD con dati di pagina nello stato "sporco". Sono stati aggiunti anche nuovi comandi "query-stats" e "query-stats-schema" per interrogare le statistiche da vari sottosistemi QEMU.
  • L'agente guest ha migliorato il supporto per la piattaforma Solaris e ha aggiunto i nuovi comandi "guest-get-diskstats" e "guest-get-cpustats" per visualizzare lo stato del disco e della CPU. Aggiunto l'output delle informazioni da NVMe SMART al comando "guest-get-disks" e l'output delle informazioni sul tipo di bus NVMe al comando "guest-get-fsinfo".
  • Aggiunto un nuovo emulatore LoongArch con supporto per la variante a 64 bit dell'architettura del set di istruzioni LoongArch (LA64). L'emulatore supporta i processori Loongson 3 5000 e i northbridge Loongson 7A1000.
  • L'emulatore ARM implementa nuovi tipi di macchine emulate: SoC Aspeed AST1030, Qaulcomm e AST2600/AST1030 (fby35). Aggiunto il supporto per l'emulazione delle CPU Cortex-A76 e Neoverse-N1, nonché le estensioni del processore SME (Scalable Matrix Extensions), RAS (Reliability, Availability, Serviceability) e comandi per bloccare le perdite dalla cache interna durante l'esecuzione speculativa delle istruzioni sul PROCESSORE. Per le macchine 'virt' è stata implementata l'emulazione del controller di interruzione GICv4.
  • Nell'emulatore di architettura x86 per KVM è stato aggiunto il supporto alla virtualizzazione del meccanismo di tracciamento LBR (Last Branch Record).
  • L'emulatore dell'architettura HPPA offre un nuovo firmware basato su SeaBIOS v6, che supporta l'uso di una tastiera PS/2 nel menu di avvio. Emulazione della porta seriale migliorata. Aggiunti ulteriori caratteri della console STI.
  • L'emulatore dell'architettura MIPS per le schede Nios2 (-machine 10m50-ghrd) implementa l'emulazione di un Vectored Interrupt Controller e di un set shadow di registri. Gestione delle eccezioni migliorata.
  • L'emulatore dell'architettura OpenRISC per la macchina "or1k-sim" ha aggiunto la possibilità di utilizzare fino a 4 dispositivi UART 16550A.
  • L'emulatore dell'architettura RISC-V ha aggiunto il supporto per le nuove estensioni del set di istruzioni (ISA) definite nella specifica 1.12.0, nonché il supporto aggiunto per l'estensione Sdtrig e un supporto migliorato per le istruzioni vettoriali. Funzionalità di debug migliorate. Il supporto TPM (Trusted Platform Module) è stato aggiunto alla macchina emulata "virt" e il supporto Ibex SPI è stato aggiunto alla macchina "OpenTitan".
  • L'emulatore dell'architettura 390x fornisce supporto per le estensioni VEF 2 (Vector-Enhancements Facility 2). Il BIOS s390-ccw offre la possibilità di eseguire l'avvio da dischi con dimensioni di settore diverse da 512 byte.
  • L'emulatore dell'architettura Xtensa ha aggiunto il supporto per i kernel lx106 e i codici oggetto per il test della cache.

Fonte: opennet.ru

Aggiungi un commento