Esitatud on QEMU 6.2 projekti väljaanne. Emulaatorina võimaldab QEMU käivitada programmi, mis on kompileeritud ühe riistvaraplatvormi jaoks, täiesti erineva arhitektuuriga süsteemis, näiteks käivitada ARM-i rakendus x86-ühilduval PC-l. Virtualiseerimise režiimis on QEMU koodi täitmise tulemuslikkus isoleeritud keskkonnas lähedane riistvarasüsteemile, kuna see täidab instruktsioone otse CPU-l ja kasutab Xen-i hüperviisorit või KVM-i moodulit.
Alguses loodi projekt Fabrice Bellardi poolt (Fabrice Bellard) eesmärgiga võimaldada x86 platvormile kompileeritud Linuxi täitmisfailide käivitamist arhitektuuridel, mis erinevad x86-st. Aastate jooksul on lisatud täieliku emulatsiooni tugi 14 riistvaraarhitektuurile, emuleeritud riistvaraseadmete arv on ületanud 400. Versiooni 6.2 ettevalmistamisel viidi läbi rohkem kui 2300 muudatust 189 arendaja poolt.
QEMU 6.2-sse lisatud peamised täiustused:
- Virtio-mem mehhanismi, mis võimaldab mälu kuumühendust ja -lahutust, virtuaalmasinate, lisati täielik tugi külalissüsteemide mälu dumpidele, keskkonna migreerimise eel- ja järelkopia operatsioonidele (pre-copy/post-copy) ja külalissüsteemi taustal tehtud snapshot'ide loomisele.
- QMP-s (QEMU Machine Protocol) rakendati DEVICE_UNPLUG_GUEST_ERROR vigade töötlemine, mis tekivad külalissüsteemi poolel riistvara kuumühenduse operatsioonide ebaõnnestumise korral.
- Laadimisargumentide süntaksit, mida töödeldakse klassikalise koodi genereerija TCG (Tiny Code Generator) pluginades, on laiendatud. Pluginasse «cache» on lisatud tugi mitme tuuma süsteemidele.
- X86 arhitektuuri emulaatoris on rakendatud Intel Snowridge-v4 CPU mudeli tugi. Lisatud on juurdepääsu tugi Intel SGX (Software Guard eXtensions) enclavedele külalissüsteemidest, kasutades seadmeid /dev/sgx_vepc host-süsteemi küljes ja QEMU-s bäkendit «memory-backend-epc». AMD SEV (Secure Encrypted Virtualization) tehnoloogia abil kaitstud külalissüsteemide jaoks on lisatud võimalus verifitseeritav otse (ilma loaderita) laadida tuuma (kasutades parameetri ‘kernel-hashes=on’ seadistamist ‘sev-guest’ konfigureerimisel).
- ARM emulaatoris Apple Silicon kiipide võõrustussüsteemides on rakendatud riistvarakihistuse mehhanismi „hvf“ tugi AArch64 arhitektuuri põhiste külg- süsteemide käivitamisel. Lisatud tugi Fujitsu A64FX protsessorite emuleerimiseks. Rakendatud on uus emuleeritud masinate tüüp „kudo-mbc“. Virt masinate puhul on lisatud tugi ITS (Interrupt Translation Service) emuleerimiseks ja võimalus kasutada rohkem kui 123 CPU emuleerimisrežiimis. Emuleeritud masinate „xlnx-zcu102“ ja „xlnx-versal-virt“ puhul on lisatud BBRAM ja eFUSE seadmete tugi. Cortex-M55 kiibil põhinevates süsteemides on mobiilse MVE protsessorite laienduste profiili tugi.
- PowerPC arhitektuuri emulaatoris on lisatud esmane tugi CPU POWER10 DD2.0 mudelile. Emuleeritud „powernv“ masinate puhul on paremini toetatud POWER10 arhitektuur ning „pseries“ masinatele on lisatud FORM2 PAPR NUMA kirjeldused.
- RISC-V arhitektuuri emulaatoris on lisatud Zb[abcs] käskude komplekti laienduste tugi. Kõikide emuleeritud masinate puhul on lubatud kasutada „host-user“ ja „numa mem“ valikute rakendamist. Lisatud on SiFive PWM (pulsiprolongatsioonimuundur).
- 68k arhitektuuri emulaatoris on parendatud Apple'i ettepaneku põhjal NuBus ühiku tugi, sealhulgas võimalus laadida ROM pilte ja toitaineid katkestuste slotidest.
- qemu-nbd plokkseadmestiku puhul on vaikimisi rakendatud kirjutamise operatsioonide vahemälu režiim („writeback“ asemel „writethrough“), et saavutada qemu-img käitumise vastavus. Lisatud on valik „—selinux-label“, et määrata SELinux Unix-socket'itele.
Allikas: opennet.ru
