projekti väljaanne . QEMU emulaatorina võimaldab see käitada ühe riistvara platvormile koostatud programme täiesti erineva arhitektuuriga süsteemis, näiteks käitada ARM-i rakendust x86-ühilduval arvutil. Virtuaalreaalsuse režiimis on QEMU koodide täitmise jõudlus isoleeritud keskkonnas peaaegu võrreldav natiivse süsteemiga, tänu protsessoril instruktsioonide otse täitmisele ja hüperviseeri Xen või KVM mooduli kasutamisele.
Alguses loodi projekt Fabrice Bellardi poolt, et võimaldada x86 platvormile compileeritud Linuxi käivitatavate failide käivitamist muudelt arhitektuuridelt. Aastate jooksul on lisandunud täieliku emulatsiooni tugi 14 riistvaraarhitektuurile ning emuleeritud riistvaraseadmete arv ületab 400. Versiooni 4.0 ettevalmistamisel tehti üle 3100 muudatuse 220 arendajalt.
Peamised , mis lisati QEMU 4.0:
- ARM arhitektuuri emulaatorisse on lisatud ARMv8+ käsu laienduste tugi: SB, PredInv, HPD, LOR, FHM, AA32HPD,
PAuth, JSConv, CondM, FRINT ja BTI. Lisae tuuakse „Musca“ ja „MPS2“ plaatide emulatsiooni tugi. Parandatud on ARM PMU (Power Management Unit) emulatsiooni. Platvormile on lisatud tugi üle 255 GB RAM-i ja „noload“ tüübiga u-boot piltide kasutamiseks; - x86 arhitektuuri emulaatoris on virtuaalialumise kiirusel (Intel Hardware Accelerated Execution) on lisatud tugi POSIX-ühilduvate hostide, nagu Linux ja NetBSD, jaoks (varem toetas ainult Darwin platvormi). Q35 (ICH9) kiibistikusimulaatoris võivad nüüd peamiste PCIe portide jaoks vabatahtlikult olla deklareeritud maksimaalne kiirus (16GT/s) ja ühenduste arv (x32), nagu on määratletud PCIe 4.0 spetsifikatsioonis (tagamaks ühilduvus vanade tüüpi masinate puhul on QEMU vaikimisi seadistatud 2.5GT/s ja x1). On tagatud Xen PVH piltide laadimise võimalus koos valikuga «-kernel»;
- MIPS arhitektuuri simulaatoris on lisatud toimetuse mitme lõime simuleerimise tugi, kasutades klassikalist koodi generaatorit TCG (Tiny Code Generator). Samuti on lisatud tugi CPU I7200 (nanoMIPS32 ISA) ja I6500 (MIPS64R6 ISA) simuleerimiseks, CPU-päringute töötlemise võimalus QMP (QEMU Management Protocol) protokolli abil ning on lisatud SAARI ja SAAR konfigureerimise registrite tugi. Fulong 2E tüüpi virtuaalmasinate toimivust on parendatud. Interthread Communication Unit'i teostust on uuendatud;
- PowerPC arhitektuuri emulaatorisse on lisatud XIVE katkestuskontrolleri emuleerimise toetus, laiendatud POWER9 toetust ning P seeria jaoks on lisatud PCI peamiste jätkude kuumühendamise võimalus (PHB, PCI host bridge). Vaikimisi on aktiivne kaitse Spectre ja Meltdown rünnakute eest;
- RISC-V arhitektuuri emulaatorisse on lisatud PCI ja USB emuleerimise toetus. Sisseehitatud silumise serveris (gdbserver) on ellu viidud registerloendite määramise tugi XML-failides. Lisatud on mstatus-funktsioonide TSR, TW ja TVM tugi;
- s390 arhitektuuri emulaatorisse on lisatud CPU mudeli z14 GA 2 tugi ning emuleerimise tugi ujuvkomaga arvutuste ja vektorite operatsioonide jaoks. vfio-ap-s on lisatud seadmete kuumühendamise võimalus;
- Tensilica Xtensa protsessorite emulaatorisse on parandatud SMP toe toetust Linuxile ning lisatud FLIX (Flexible length instructions extension) toe tugi;
- Graafilisse liidesesse on lisatud valik ‘-display spice-app’, et kohandada ja käivitada Spice kaugjuhtimist klienti GTK-liidese sarnase vorminguga QEMU jaoks;
- VNC-serveri teostusse on lisatud ligipääsu haldamise toetus tls-authz/sasl-authz valikute kaudu;
- QMP-s (QEMU Management Protocol) on lisatud toetused tsentraliseeritud/väline (Out-of-band) käskude täitmine ja rakendatud täiendavad käsklused blokeeriseadmetega töötamiseks;
- VFIO-s on lisatud EDID interfääri rakendamine toetatud mdev (Intel vGPU) jaoks, võimaldades ekraani eraldusvõime muutmist, kasutades valikuid xres ja yres;
- Xeni jaoks on lisatud uus seade 'xen-disk', mis suudab iseseisvalt luua diskibackendi Xen PV-le (ilma xenstore'i kasutamiseta). Parandatud on Xen PV diskibackendi jõudlust ja lisatud võimalus ketta suuruse muutmiseks;
- Võrgu blokeerimise seadmetes on laiendatud diagnostika ja jälgimise võimalusi, parandatud kliendi ühilduvust probleemsete NBD serveri implementatsioonidega. qemu-nbd-s on lisatud valikud '—bitmap', '—list' ja '—tls-authz';
- Emuleeritud IDE/via seadmesse on lisatud PCI IDE režiimi tugi;
- Lisatud on toetus lzfse algoritmi kasutamiseks dmg piltide tihendamiseks. qcow2 formaadi jaoks on lisatud toetus väliste andmefailide ühendamiseks. qcow2 lahtipakkimise toimingud on viidud eraldi lõime. vmdk piltidesse on lisatud 'blockdev-create' toimingu tugi;
- Virtio-blk seadmestusse on lisatud DISCARD (blokkide vabastamise teavitamine) ja WRITE_ZEROES (loogiliste blokkide vahemiku nullimise) toimingute tugi;
- PVrdma seadmes on rakendatud RDMA juhtimisdaktiliste teenuste (MAD) tugi;
- Muudetud , mis rikub tagasipöördumise ühilduvust. Näiteks tuleb "-fsdev" ja "-virtfs" valiku "handle" asemel kasutada valikuid "local" või "proxy". Eemaldatud on valikud "-virtioconsole" (asendatud "-device virtconsole"), "-no-frame", "-clock", "-enable-hax" (asendatud "-accel hax"). Seade "ivshmem" on eemaldatud (kasutada tuleb "ivshmem-doorbell" või "ivshmem-plain"). Toetuse lõpetamine SDL1.2 kogumisse (kasutada tuleb SDL2).
Allikas: opennet.ru
