A fost lansată versiunea proiectului QEMU 6.2. Ca emulator, QEMU permite rularea unui program compilat pentru o platformă hardware pe un sistem cu o arhitectură complet diferită, de exemplu, să execute o aplicație pentru ARM pe un PC compatibil x86. În modul de virtualizare, performanța executării codului într-un mediu izolat se apropie de cea a unui sistem hardware prin executarea directă a instrucțiunilor pe CPU și implicarea hypervisor-ului Xen sau a modulului KVM.
Proiectul a fost inițial creat de Fabrice Bellard cu scopul de a permite rularea fișierelor executabile Linux compilate pentru platforma x86 pe arhitecturi diferite de x86. De-a lungul anilor de dezvoltare, a fost adăugată suportul pentru o emulare completă pentru 14 arhitecturi hardware, iar numărul dispozitivilor hardware emulate a depășit 400. În pregătirea versiunii 6.2, au fost realizate peste 2300 de modificări de către 189 de dezvoltatori.
Îmbunătățiri cheie adăugate în QEMU 6.2:
- În mecanismul virtio-mem, care permite conectarea și deconectarea la cald a memoriei, mașini virtuale, a fost adăugată suportul complet pentru dump-uri de memorie ale sistemelor gazdă, operațiuni de copiere înainte și după migrarea mediului (pre-copy/post-copy) și crearea de snapshot-uri ale sistemului gazdă în fundal.
- În QMP (QEMU Machine Protocol) a fost implementată gestionarea erorilor DEVICE_UNPLUG_GUEST_ERROR, care apar pe partea sistemului gazdă în caz de eșecuri în timpul operațiunilor de conectare la cald a echipamentului.
- Sintaxa argumentelor de boot a fost extinsă, fiind procesată în plug-in-urile generatorului de cod clasic TCG (Tiny Code Generator). Plug-in-ul 'cache' a fost extins cu suport pentru sisteme multicore.
- În emulatorul arhitecturii x86 a fost implementat suportul pentru modelul CPU Intel Snowridge-v4. A fost adăugat suportul pentru accesarea enclavelor Intel SGX (Software Guard eXtensions) din sistemele gazdă, folosind dispozitivul /dev/sgx_vepc pe partea sistemului gazdă și backend-ul 'memory-backend-epc' în QEMU. Pentru sistemele gazdă protejate prin tehnologia AMD SEV (Secure Encrypted Virtualization), a fost adăugată posibilitatea de a porni direct (fără utilizarea unui bootloader) a nucleului (se activează prin setarea parametru ‘kernel-hashes=on’ în ‘sev-guest’).
- În emulatorul ARM pe sisteme gazdă cu cip Apple Silicon, a fost implementat suportul pentru mecanismul de accelerare hardware „hvf” la rularea sistemelor de operare bazate pe arhitectura AArch64. A fost adăugat suport pentru emularea modelului de procesoare Fujitsu A64FX. A fost realizat un nou tip de mașini emulatoare „kudo-mbc”. Pentru mașinile ‘virt’ a fost adăugat suport pentru emularea ITS (Interrupt Translation Service) și posibilitatea de a utiliza peste 123 CPU în modul de emulare. Pentru mașinile emulatoare „xlnx-zcu102” și „xlnx-versal-virt” a fost adăugat suport pentru dispozitive BBRAM și eFUSE. Pentru sistemele bazate pe cipul Cortex-M55, a fost oferit suport pentru profilul mobil al extensiilor de procesor MVE.
- În emulatorul arhitecturii PowerPC a fost adăugat suport inițial pentru modelul CPU POWER10 DD2.0. Pentru mașinile emulatoare „powernv” a fost îmbunătățit suportul pentru arhitectura POWER10, iar pentru mașinile ‘pseries’ au fost adăugate descrieri FORM2 PAPR NUMA.
- În emulatorul arhitecturii RISC-V a fost adăugat suport pentru extensiile setului de instrucțiuni Zb[abcs]. Pentru toate mașinile emulatoare a fost permisă utilizarea opțiunilor „host-user” și „numa mem”. A fost adăugat suport pentru SiFive PWM (modulator de lățime a impulsului).
- În emulatorul arhitecturii 68k a fost îmbunătățit suportul pentru magistrala NuBus propusă de Apple, inclusiv posibilitatea de a încărca imagini de firmware și suport pentru sloturi de întrerupere.
- În dispozitivul de blocare qemu-nbd, modul de memorie cache pentru operațiile de scriere („writeback” în loc de „writethrough”) este activat implicit pentru a corespunde comportamentului qemu-img. A fost adăugată opțiunea „—selinux-label” pentru a seta etichete SELinux pentru socketurile Unix.
Sursa: opennet.ro
