lansarea proiectului . Ca emulator, QEMU permite rularea unei aplicații compilate pentru o platformă hardware pe un sistem cu o arhitectură complet diferită, de exemplu, executarea unei aplicații pentru ARM pe un PC compatibil x86. În modul de virtualizare, performanța executării codului într-un mediu izolat este apropiată de cea a unui sistem nativ datorită executării directe a instrucțiunilor pe CPU și folosirii hipervizorului 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ă suport pentru emularea completă a 14 arhitecturi hardware, iar numărul dispozitivelor hardware emulate a depășit 400. În pregătirea versiunii 5.1 au fost efectuate peste 2500 de modificări de către 235 de dezvoltatori.
Principalele , adăugate în QEMU 5.1:
- A fost adăugată suport pentru emularea CPU-urilor pe baza arhitecturii . A fost implementat suportul pentru plăcile Arduino Duemilanove (ATmega168), Arduino Mega 2560 (ATmega2560),
Arduino Mega (ATmega1280) și Arduino UNO (ATmega328P). - Emulatorul arhitecturii ARM a adăugat posibilitatea de deconectare la cald a memoriei (hot-unplug), precum și conectarea la cald a memoriei nvdimm pentru sistemele guest cu ACPI. A fost implementat suportul pentru extensiile ARMv8.2 și . A fost asigurat suportul pentru placa sonorapass-bmc.
- Emulatorul arhitecturii MIPS a adăugat suport pentru CPU-uri Loongson 3A (R1 și R4). Performanța emulării instrucțiunilor FPU și MSA a fost îmbunătățită.
- Emulatorul arhitecturii RISC-V a adăugat suport pentru CPU-uri SiFive E34 și Ibex. A fost implementat suportul pentru plăcile HiFive1 revB și OpenTitan. Pentru mașinile Spike a fost oferit suport pentru mai mult de un CPU.
- Emulatorul arhitecturii PowerPC a adăugat suport pentru recuperarea erorilor în sistemele guest prin intermediul FWNMI.
- Pentru arhitectura s390 a fost adăugat suport KVM pentru virtualizarea protejată (modul de execuție sigur).
- În emulatorul arhitecturii x86, au fost reduse costurile de virtualizare pentru sistemele guest neadaptate cu Windows, prin furnizarea unei tabele a dispozitivelor emulate ACPI WAET (Windows ACPI Emulated Device Table). Suportul pentru accelerare pentru macOS.
- În driverul de blocuri a fost adăugat suport pentru dispozitive virtuale de stocare cu blocuri logice și fizice de 2MB.
- A fost adăugată posibilitatea de a transmite în QEMU parole și chei pentru criptare prin keyring-ul nucleului Linux utilizând obiecte de nou tip „secret-keyring”.
- Pentru formatul qcow2 a fost implementat suportul pentru algoritmul de compresie zstd.
- În utilitarul qemu-img a fost adăugată o nouă comandă ‘bitmap’ pentru manipularea bitmap-urilor persistente în fișierele qcow2. De asemenea, qemu-img a implementat gestionarea cheilor LUKS (keyslot) și a oferit funcționalități suplimentare pentru comenzile „map” (—start-offset, —max-length) și „convert” (—bitmaps), iar comanda „measure” a fost extinsă pentru a include informații despre dimensiunea bitmap-urilor persistente în fișierele qcow2.
- În driverul NVMe a fost adăugată suport pentru zonele persistente de memorie (Persistent Memory Region), introduse în specificația NVMe 1.4.
- În virtio pentru sistemele gazdă cu generator clasic de cod TCG (Tiny Code Generator) a fost implementată posibilitatea de a utiliza procese , inclusiv virtiofsd. În vhost-user a fost adăugat extinderea VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS, permițând înregistrarea a mai mult de 8 sloturi de RAM.
Sursa: opennet.ro
