Rilascio dell'emulatore QEMU 9.0.0

È stata rilasciata la versione del progetto QEMU 9.0. Come emulatore, QEMU consente di eseguire un programma compilato per una piattaforma hardware su un sistema con architettura completamente diversa, per esempio, eseguire un'applicazione per ARM su un PC compatibile con x86. In modalità virtualizzazione, le prestazioni di esecuzione del codice in un ambiente isolato sono vicine a quelle di un sistema hardware grazie all'esecuzione diretta delle istruzioni sulla CPU e all'impiego di un hypervisor come Xen o del modulo KVM in Linux, o del modulo NVMM in NetBSD.

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, e il numero di dispositivi hardware emulati ha superato 400. Per la versione 9.0 sono stati apportati oltre 2700 cambiamenti da parte di 220 sviluppatori.

Miglioramenti chiave aggiunti in QEMU 9.0:

  • Nel driver virtio-blk, che fornisce un dispositivo di blocco virtuale per macchine virtuali, è stato aggiunto il supporto per un sistema di code multilivello (multiqueue), che consente di separare le code per diversi dispositivi di blocco per garantire accesso multithreading su sistemi multicore (code diverse di un disco possono essere gestite da diversi thread di input/output).
  • Nel dispositivo di blocco usb-storage è stato aggiunto il supporto per le proprietà ‘backend_defaults’, ‘logical_block_size’, ‘physical_block_size’, ‘min_io_size’, ‘opt_io_size’ e ‘discard_granularity’.
  • Nella libreria gdbstub, destinata al debugging remoto in GDB utilizzando il protocollo RSP (Remote Serial Protocol), è stato aggiunto il supporto per la modalità fork-follow, l'operazione siginfo:read e l’intercettazione delle chiamate di sistema nello spazio utente.
  • I backend per la preassegnazione della memoria (preallocation) sono stati adattati per funzionare in modalità multithreading e ora possono elaborare contemporaneamente le richieste provenienti da più thread.
  • Negli strumenti per la migrazione delle macchine virtuali è stata aggiunta la modalità ‘mapped-ram’, che migliora l'efficienza nella creazione di snapshot delle macchine virtuali. È stata migliorata l’identificazione della pagina di memoria zero, permettendo di accelerare significativamente la migrazione di macchine virtuali inattive se il sistema supporta multifd. Durante la migrazione basata su VFIO (Virtual Function I/O) è stato implementato il supporto per il riavvio da uno stato salvato (checkpoint-restart).
  • Implementazione rivista del dispositivo ESP SCSI (am53c974/dc390).
  • Aggiunta la supporto per l'algoritmo di crittografia SM4 e resa possibile la sua utilizzazione nel driver del dispositivo a blocchi ‘luks’.
  • Nel driver ‘luks’ è stato aggiunto il supporto per la creazione e l'utilizzo di file con intestazioni salvate LUKS.
  • Nell'emulatore dell'architettura ARM è stato implementato il supporto per le schede L475E-IOT01A IoT, mp3-an536 (MPS3 con firmware AN536) e raspi4b (Raspberry Pi 4 Model B). Aggiunto il supporto per l'emulazione delle estensioni della CPU ECV (Enhanced Counter Virtualization), NV (Nested Virtualization) e NV2 (Enhanced Nested Virtualization). È stata ampliata la funzionalità degli emulatori delle schede Freescale i.MX6, Allwinner R40, Bananapi, Raspberry Pi, npcm7xx e virt.
  • Nell'emulatore dell'architettura RISC-V è stato aggiunto il supporto per le estensioni dell'architettura del set di istruzioni Zacas, amocas, RVA22, Zaamo, Zalrsc e Ztso. macchine virtuali RISC-V ha ottenuto il supporto SMBIOS. Per SRAT, SLIT, AIA e PLIC è stato implementato il supporto ACPI. Aggiornato il supporto per le tabelle RHCT.
  • Nell'emulatore dell'architettura HPPA fino alla versione 16 è stato aggiornato il firmware SeaBIOS-hppa. La dimensione massima della memoria è stata aumentata da 3 GB a 3840 MB. Aggiunto il supporto per l'opzione ‘—nodefaults’.
  • Nell'emulatore dell'architettura LoongArch è stato implementato il supporto per l'accelerazione KVM e sono state aggiunte le estensioni vettoriali del set di istruzioni LSX/LASX.
  • Nell'emulatore dell'architettura s390x è stato aggiunto il supporto per le istruzioni CVDG, CVB, CVBY e CVBG. Migliorata l'emulazione LAE (Load Address Extended).
  • Nell'emulatore dell'architettura 68k è stato aggiunto il dispositivo nubus-virtio-mmio, che consente l'accesso ai dispositivi virtio dalle macchine q800.
  • Consentita la compilazione con l'opzione ‘-fzero-call-used-regs’, che protegge dalle perdite di informazioni nelle funzioni e riduce il numero di blocchi idonei per costruire gadget ROP (Return-Oriented Programming) negli exploit. È stata inoltre aggiunta la compilazione con l'opzione ‘-ftrivial-auto-var-init=zero’ per l'inizializzazione automatica a zero di tutte le variabili memorizzate nello stack.
  • Per eseguire QEMU con KVM ora è richiesto almeno il kernel Linux 4.4. Per gli host ARM, in futuro si prevede di sollevare questa soglia alla versione 4.19. È stata interrotta la supporto all'utilizzo di Windows a 32 bit come sistema operativo host.
  • Aggiunto il supporto per OpenBSD 7.4.

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