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.
Inițial, proiectul a fost 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 dezvoltării, s-a adăugat suport pentru emularea completă a 14 arhitecturi hardware, numărul dispozitivelor hardware emulate depășind 400. La pregătirea versiunii 5.0, au fost efectuate peste 2800 de modificări de către 232 de dezvoltatori.
Principalele , adăugate în QEMU 5.0:
- Posibilitatea de a face trecerea unei părți a sistemului de fișiere gazdă în sistemul de operare invitat prin intermediul . Sistemul invitat poate montá un director marcat pentru export pe partea sistemului gazdă, ceea ce simplifică considerabil organizarea partajării directoarelor în sistemele de virtualizare. Spre deosebire de utilizarea sistemelor de fișiere de rețea, cum ar fi NFS și virtio-9P, virtiofs permite obținerea unei performanțe aproape de cea a unui sistem de fișiere local;
- migrarea live a datelor proceselor externe care folosesc bus-ul QEMU D-Bus;
- Posibilitatea de a utiliza pentru a asigura funcționarea memoriei RAM principale a sistemului invitat. Backendul este specificat prin opțiunea „-machine memory-backend”;
- Un nou filtrul „compress”, care poate fi utilizat pentru a crea copii de rezervă comprimate ale imaginilor;
- Comanda „qemu-img measure” poate lucra acum cu imagini LUKS, iar comanda „qemu-img convert” a fost adăugată opțiunea „—target-is-zero” pentru a permite omisiunea inițializării imaginii țintă;
- S-a adăugat suport experimental pentru procesul qemu-storage-daemon, care oferă acces la nivelul blocului QEMU și comenzile QMP, inclusiv executarea sarcinilor cu dispozitivele de blocare și serverul NBD încorporat, fără a necesita pornirea unei mașini virtuale complete;
- Emulatorul arhitecturii ARM a adăugat capacitatea de a emula CPU Cortex-M7 și a asigurat suportul pentru plăcile tacoma-bmc, Netduino Plus 2 și Orangepi PC. În mașinile emulate 'virt' s-au adăugat suport pentru dispozitivele vTPM și virtio-iommu. A fost declarat învechit utilizarea sistemelor gazdă AArch32 pentru a lansa medii invitate KVM. A fost implementat suportul pentru emularea următoarelor caracteristici arhitecturale:
- ARMv8.1: VHE, VMID16, PAN, PMU
- ARMv8.2: UAO, DCPoP, ATS1E1, TTCNP
- ARMv8.3: RCPC, CCIDX
- ARMv8.4: PMU, RCPC
- Emulatorul arhitecturii HPPA a adăugat suport pentru consola grafică utilizând dispozitivul grafic HP Artist;
- Emulatorul arhitecturii MIPS a adăugat suport pentru instrucțiunea GINVT (Global Invalidation TLB);
- În emulatorul arhitecturii PowerPC pentru mașinile ‘powernv’ a fost adăugată emularea mijloacelor de accelerare hardware KVM pentru rularea sistemelor gazdă.
KVM cu generatorul de cod clasic TCG (Tiny Code Generator). Pentru emularea memoriei persistente a fost adăugată suport pentru NVDIMM reflectate în fișier. Pentru mașinile ‘pseries’ a fost eliminată necesitatea repornirii pentru a sincroniza funcționarea controlerelor de întrerupere XIVE/XICS în modul «ic-mode=dual»; - În emulatorul arhitecturii RISC-V pentru plăcile ‘virt’ și ‘sifive_u’ a fost implementat suport pentru driverele tip syscon în Linux pentru gestionarea alimentării și repornirii. Pentru placa ‘virt’ a fost adăugat suport pentru Goldfish RTC. A fost adăugată o implementare experimentală a extensiilor hipervizorului;
- În emulatorul arhitecturii s390 a fost adăugat suport pentru AIS (Adapter Interrupt Suppression) în modul KVM.
Sursa: opennet.ro
