QEMU 7.2 projekt on välja antud. Emulaatorina võimaldab QEMU käivitada programmi, mis on koostatud mõnele riistvaraplatvormile täiesti erineva arhitektuuriga süsteemis, näiteks käivitada ARM-i rakendust x86-ühilduvas PC-s. Virtualiseerimise režiimis on QEMU koodi täitmise jõudlus isoleeritud keskkonnas lähedane riistvarasüsteemile tänu otsetäidete täitmisele CPU-l ja Xen-hüperviisori või KVM-mooduli kasutamisele.
Projekt loodi algselt Fabrice Bellardi poolt, et võimaldada x86-platvormile koostatud Linuxi täidetavate failide käivitamist teiste arhitektuuride puhul. Aastate jooksul on lisatud täieliku emulatsiooni tugi 14 riistvaraarhitektuurile ja emuleeritud riistvaraseadmete arv on ületanud 400. Versiooni 7.2 ettevalmistamisel tehti üle 1800 muudatuse 205 arendaja poolt.
QEMU 7.2-sse lisatud peamised täiendused:
- x86 arhitektuuri emulaatoris on klassikalisest TCG koodigeneraatorist lisatud AVX, AVX2, F16C, FMA3 ja VAES juhiste tugi, samuti on optimeeritud jõudlust, mis on seotud SSE juhiste kasutamisega. Selle jaoks KVM lisatud toetus virtuaalmasina väljumise jälgimise mehhanismile («notify vmexit»), mis võimaldab vältida CPU vigu, mis võivad viia süsteemi hangumiseni.
- ARM-emulaatoris on rakendatud toetus CPU Cortex-A35 ja protsessori laienditele ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (juhtimislippude ja «dirty» oleku riistvaraline kontroll) ning E0PD (eelkontroll EL0 juurdepääsu jagatud aadressikaartidele).
- LoongArch-emulaatorisse on lisatud toetus fw_cfg DMA, mälu kuumplugimisele ja TPM (Trusted Platform Module) seadmete emuleerimisele.
- OpenRISC arhitektuuri emulaatoris on rakendatud 'virt' platvorm seadmete testimiseks ja pideva integreerimise süsteemides kasutamiseks. Toetatakse ka klassikalise koodigeneraatori TCG (Tiny Code Generator) mitme lõimekalu.
- RISC-V arhitektuuri emulaatoris virtuaalmasinates 'virt' on rakendatud võimalus laadida pflashist püsivara S-režiimis (S-mode). Parandatud on töö management device tree'iga.
- 390x arhitektuuri emulaatoris on toetatud MSA5 (Message-Security-Assist Extension 5 PRNO käsu puhul pseudojuhuslike arvu genereerimiseks), KIMD/KLM käsud (SHA-512 rakendus) ja laiendatud zPCI tõlgendus KVM hüperviisoril põhinevates külgsüsteemides.
- Mälu käsitlevates tagaplaanides on tagatud ettevarustatud mälu eraldamine NUMA arhitektuuri arvestamisega.
- LUKS krüpteeritud plokkseadmete päiste kontrolli on tugevdatud ja macOS-is on lisatud võimalus LUKS-piltide loomine.
- 9pfs tagaplaanis, mis võimaldab Plan 9 võrgu failisüsteemi kasutamist ühe virtuaalse masina pääsemiseks teisele, on ülemineku GHashTable hajuhahist identifikaatorite tabelis teinud, mis on mõnes olukorras suurendanud jõudlust 6-12 korda.
- Uued netdev-tagaplaanid stream ja dgram on lisatud.
- ARM arhitektuuril põhinevates külgsüsteemides on FreeBSD tugi lisatud.
- macOS-ile mõeldud GUI kogumites on tagatud Cocoa ja SDL/GTK-põhiste liideste kaasamine ühte täidesaatevasse faili.
- Sisseehitatud submodul "slirp" on eemaldatud, selle asemel soovitatakse kasutada süsteemiteeki libslirp.
- Kuna testimise võimaluse puudumise tõttu kuulutati 32-bitiste MIPS protsessoritega host-süsteemide toetus vananenuks, mis kasutavad 'Big endian' baitide järjestust.
Allikas: opennet.ru
