QEMU 9.0 projekti väljaanne. QEMU emulaatorina võimaldab käivitada programmi, mis on loodud ühe riistvaraplatvormi jaoks, erineva arhitektuuriga süsteemis, näiteks rakenduse käivitamine ARM-il x86 ühilduval PC-l. Virtuaalsetes tingimustes on QEMU koodi täitmise jõudlus isoleeritud keskkonnas lähedane riistvarasüsteemile tänu otse CPU-l käitatavatele käskudele ja Xen hypervisori või Linuxi KVM mooduli või NetBSD NVMM mooduli kasutamisele.
Alguses loodi projekt Fabrice Bellard'i (Fabrice Bellard) poolt eesmärgiga võimaldada x86 platvormil loodud Linuxi täitmisfailide käivitamist arhitektuuridel, mis erinevad x86-st. Arenduse käigus on lisatud täiemulatsioonitoe tugi 14 riistvaraarhitektuurile, emuleeritud riistvaraseadmete arv ületas 400. QEMU 9.0 ettevalmistamise ajal tehti rohkem kui 2700 muudatust 220 arendajalt.
QEMU 9.0-sse lisatud peamised täiustused:
- Virtio-blk draiverisse, mis pakub virtuaalset plokiseadet virtuaalmasinad, lisatud on tugi mitmetasandilistele järjekordadele (multiqueue), mis võimaldavad jagada järjekorrad erinevatele plokk-seadmestikele, et tagada mitme kiirusel juurdepääs mitme tuumaga süsteemides (erinevad järjekorrad ühe ketta jaoks võivad olla töödeldud erinevate sisend-/väljundvoogude poolt).
- USB-salvestusseadmestikus on lisatud tugi omadustele 'backend_defaults', 'logical_block_size', 'physical_block_size', 'min_io_size', 'opt_io_size' ja 'discard_granularity'.
- GDB kaugtöötluseks mõeldud gdbstub raamatukogusse on lisatud tugi fork-follow režiimile, siginfo:read operatsioonile ja süsteemi kutsungite püüdmisele kasutaja ruumis.
- Mälu eeljaotamise taustad on kohandatud töötama mitme lõime režiimis ja saavad nüüd samaaegselt töödelda päringuid mitmest lõimest.
- Virtuaalsete masinate migreerimise tööriistadesse on lisatud 'mapped-ram' režiim, mis suurendab virtuaalsete masinate snapshot'ide loomise tõhusust. Parandatud on nullmälu lehe tuvastamist, mis on võimaldanud oluliselt kiirendada mitteaktiivsete virtuaalsete masinate migreerimist, kui süsteem toetab multifd. VFIO (Virtual Function I/O) põhistel migreerimisel on rakendatud olukorrast taastumise (checkpoint-restart) tugi.
- ESP SCSI (am53c974/dc390) seadmestiku teostus on ümber kirjutatud.
- Lisatud tugi SM4 krüpteerimisalgoritmile ning võimaldatud selle kasutamine blokiseadmiku 'luks' draiveris.
- Draiverisse 'luks' on lisatud tugi LUKS-i pealkirjade salvestatud failide loomisele ja kasutamisele.
- ARM arhitektuuri emulaatoris on rakendatud toe L475E-IOT01A IoT, mp3-an536 (MPS3 AN536 firmware'iga) ja raspi4b (Raspberry Pi 4 Model B) tarkvarale. Lisatud on toed ECV (Enhanced Counter Virtualization), NV (Nested Virtualization) ja NV2 (Enhanced Nested Virtualization) protsessorite laienduste emuleerimiseks. Emulaatorite võimalusi on laiendatud Freescale i.MX6, Allwinner R40, Bananapi, Raspberry Pi, npcm7xx ja virt platvormide puhul.
- RISC-V arhitektuuri emulaatorisse on lisatud tugi käsu komplekti laiendustele Zacas, amocas, RVA22, Zaamo, Zalrsc ja Ztso. V virtuaalmasinatel RISC-V toetab SMBIOS-i. SRAT, SLIT, AIA ja PLIC toetavad ACPI-d. On uuendatud RHCT tabelite tuge.
- HPPA arhitektuuri emulaatoris, versioonis 16, on uuendatud SeaBIOS-hppa püsivara. Mälu maksimaalne suurus on suurenenud 3 GB-lt 3840 MB-le. Lisatud on toetus valikule «—nodefaults».
- LoongArch arhitektuuri emulaatoris on lisatud KVM kiirusel kiirenduse tugi ning realiseeritud on vektorite laienduste tugi käsu komplektis LSX/LASX.
- s390x arhitektuuri emulaatorisse on lisatud CVDG, CVB, CVBY ja CVBG käskude tugi. Parandatud on LAE (Load Address Extended) emulatsiooni.
- 68k arhitektuuri emulaatorisse on lisatud seade nubus-virtio-mmio, mis võimaldab pääseda virtio seadmetele masinates q800.
- On tagatud kompileerimine lipuga ‘-fzero-call-used-regs’, mis kaitseb teabe lekke eest funktsioonidest ning vähendab ROP-gadgetide (Return-Oriented Programming) ehitamiseks sobivate plokkide arvu exploitides. Samuti on lisatud kompileerimine lipuga ‘-ftrivial-auto-var-init=zero’ kõigi virnas hoitavate muutujate automaatseks initsialiseerimiseks nullväärtusega.
- QEMU ja KVM käitamiseks on nüüd vajalik vähemalt Linuxi tuuma versioon 4.4. ARM-hostide puhul plaanitakse see tulevikus tõsta versioonini 4.19. Toetamine 32-bitiste Windows operatsioonisüsteemide kasutamiseks hostide OS-ina on lõpetatud.
- Lisatud on tugi OpenBSD 7.4-le.
Allikas: opennet.ru
