uvedenie projektu . Ako emulátor QEMU umožňuje spustiť program zostavený pre jednu hardvérovú platformu na systéme s úplne odlišnou architektúrou, napríklad vykonať aplikáciu pre ARM na PC kompatibilnom s x86. V móde virtualizácie QEMU je výkon vykonávania kódu v izolovanom prostredí blízky k nativnému systému vďaka priamemu vykonávaniu inštrukcií na CPU a využitiu hypervízora Xen alebo modulu KVM.
Pôvodne projekt vytvoril Fabrice Bellard s cieľom umožniť spúšťanie programov skompilovaných pre platformu x86 na architektúrach odlišných od x86. Počas rokov vývoja bola pridaná podpora úplnej emulácie pre 14 hardvérových architektúr a počet emulovaných hardvérových zariadení presiahol 400. Pri príprave verzie 4.0 bolo vykonaných viac ako 3100 zmien od 220 vývojárov.
Kľúčové , pridané do QEMU 4.0:
- Emulátor architektúry ARM bol vylepšený o podporu rozšírení inštrukcií ARMv8+: SB, PredInv, HPD, LOR, FHM, AA32HPD,
PAuth, JSConv, CondM, FRINT a BTI. Pridaná podpora emulácie platforiem „Musca“ a „MPS2“. Zlepšená emulácia ARM PMU (Power Management Unit). Do platformy bola pridaná možnosť používania viac ako 255 GB RAM a podpora obrazov u-boot s typom „noload“; - V emulátore architektúry x86 v engine urýchlenia virtualizácie (Intel Hardware Accelerated Execution) bola pridaná podpora hostiteľov kompatibilných s POSIX, ako sú Linux a NetBSD (predtým bola podporovaná iba platforma Darwin). V emulátore čipovej sady Q35 (ICH9) pre hlavné porty PCIe je teraz voliteľne možné deklarovať maximálnu rýchlosť (16GT/s) a počet línií pripojenia (x32), definovaných v špecifikácii PCIe 4.0 (pre zabezpečenie spätnej kompatibility s staršími typmi strojov je QEMU prednastavené na 2.5GT/s a x1). Bolo umožnené načítanie obrazov Xen PVH s voľbou „-kernel“;
- V emulátore architektúry MIPS bola pridaná podpora viacerých vláken emulácie pomocou klasického generátora kódu TCG (Tiny Code Generator). Pridaná podpora emulácie CPU I7200 (nanoMIPS32 ISA) a I6500 (MIPS64R6 ISA), možnosť spracovania požiadaviek typu CPU pomocou protokolu QMP (QEMU Management Protocol), pridaná podpora konfiguračných registrov SAARI a SAAR. Zlepšená práca virtuálnych strojov typu Fulong 2E. Aktualizovaná implementácia Interthread Communication Unit;
- V emulátore architektúry PowerPC bolo pridané podpora emulácie ovládača prerušenia XIVE, rozšírená podpora POWER9, pre P series bola pridaná možnosť horúceho pripojenia hlavných mostov PCI (PHB, PCI host bridge). Predvolená ochrana pred útokmi Spectre a Meltdown;
- V emulátore architektúry RISC-V bola pridaná podpora emulácie PCI a USB. V zabudovanom debuggery (gdbserver) bola implementovaná podpora zadávania zoznamov registrov do XML súborov. Pridaná podpora mstatus-polí TSR, TW a TVM;
- Do emulátora architektúry s390 bola pridaná podpora pre model CPU z14 GA 2, ako aj podpora emulácie rozšírení inštrukcií pre výpočty s pohyblivou desatinnou čiarkou a vektorové operácie. Do vfio-ap bola pridaná možnosť horúceho pripojenia zariadení;
- V emulátore procesorov rodiny Tensilica Xtensa bola vylepšená podpora SMP pre Linux a pridaná podpora rozšírenia FLIX (Flexible length instructions extension);
- Do grafického rozhrania bola pridaná možnosť ‘-display spice-app’ na konfiguráciu a spustenie variantu klienta vzdialeného prístupu Spice s dizajnom podobným GTK rozhraniu QEMU;
- Do implementácie VNC servera bola pridaná podpora riadenia prístupu pomocou možností tls-authz/sasl-authz;
- V QMP (QEMU Management Protocol) bola pridaná podpora centralizovaného/vonkajšieho (Out-of-band) vykonávania príkazov a implementované ďalšie príkazy na prácu s blokovými zariadeniami;
- Do VFIO bola pridaná implementácia rozhrania EDID pre podporované mdev (Intel vGPU), čo umožňuje meniť rozlíšenie obrazovky pomocou možností xres a yres;
- Pre Xen bolo pridané nové zariadenie ‘xen-disk’, ktoré si samo môže vytvoriť diskový backend pre Xen PV (bez obratu na xenstore). Zlepšený výkon diskového backendu Xen PV a pridaná možnosť zmeny veľkosti disku;
- V sieťových blokových zariadeniach boli rozšírené diagnostické a trasovacie možnosti, vylepšená kompatibilita klienta s problémovými implementáciami servera NBD. Do qemu-nbd boli pridané možnosti ‘—bitmap’, ‘—list’ a ‘—tls-authz’;
- Do emulovaného zariadenia IDE/via bola pridaná podpora pre režim PCI IDE;
- Bola pridaná podpora pre použitie algoritmu lzfse na kompresiu obrazov dmg. Pre formát qcow2 bola pridaná podpora pripojenia externých súborov s údajmi. Operácie rozbalenia qcow2 boli presunuté do samostatného vlákna. V obrazových súboroch vmdk bola pridaná podpora pre operáciu ‘blockdev-create’;
- Do blokového zariadenia virtio-blk bola pridaná podpora operácií DISCARD (oznámenie o uvoľnení blokov) a WRITE_ZEROES (nulovanie rozsahu logických blokov);
- V zariadení pvrdma bola implementovaná podpora RDMA Management Datagram services (MAD);
- Zavedené , narušujúce spätnú kompatibilitu. Napríklad, namiesto voľby „handle“ v „-fsdev“ a „-virtfs“ by sa mali použiť voľby „local“ alebo „proxy“. Odstránené voľby „-virtioconsole“ (nahradená voľbou „-device virtconsole“), „-no-frame“, „-clock“, „-enable-hax“ (nahradená voľbou „-accel hax“). Odstránené zariadenie „ivshmem“ (mali by sa použiť „ivshmem-doorbell“ alebo „ivshmem-plain“). Podpora zostavenia s SDL1.2 bola ukončená (je potrebné používať SDL2).
Zdroj: opennet.ru
