QEMU 7.2 projekti väljalaskmine on toimunud. QEMU emulaator võimaldab käivitada programme, mis on loodud ühe riistvaraplatvormi jaoks, täiesti erineva arhitektuuriga süsteemis, näiteks käivitada ARM-i rakenduse x86-ühilduvas PC-s. Virtualiseerimise režiimis on QEMU isoleeritud keskkonnas koodi täitmise jõudlus lähedane riistvara süsteemile, kuna direktiividega teostatakse instruktsioone CPU-l ning kasutatakse hüperviisorit Xen või KVM moodulit.
Alguses loodi projekt Fabrice Bellardi poolt eesmärgiga võimaldada x86 platvormile loodud Linuxi täidetavate failide käivitamist arhitektuuridel, mis erinevad x86-st. Aastate jooksul on arendusse lisatud täielik emulatsiooni tugi 14 erinevale riistvaraarhitektuurile ja emuleeritud riistvaraseadmete arv on ületanud 400. Versiooni 7.2 ettevalmistamisel tehti üle 1800 muutuse 205 arendaja poolt.
QEMU 7.2 lisatud peamised täiustused:
- x86 arhitektuuri emulaatoris on klassikalises TCG koodigeneraatoris lisatud AVX, AVX2, F16C, FMA3 ja VAES instruktsioonide tugi, ning teostatud jõudluse optimeerimine, mis on seotud SSE instruktsioonide kasutusega. Selleks KVM on lisatud mehhanismi toe jälgimise tugi („notify vmexit”), mis võimaldab mööda minna CPU vigu, mis võivad põhjustada hangumist.
- ARM-i emulaatoris on rakendatud CPU Cortex-A35 tugi ja protsessorite laienduste ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU laiendused 3.5), GTG (Külastaja tõlke granulaarsus 4KB, 16KB, 64KB), HAFDBS (riistvara abi juurdepääsulippude ja „dirty” oleku juhtimiseks) ja E0PD (EL0 juurdepääsu ennetamine jagatud aadressikaartidele).
- LoongArch emulaatoris on lisatud fw_cfg DMA toe, kuumplug-in mälu ja TPM (Trusted Platform Module) seadmete emulatsioon.
- OpenRISC arhitektuuri emulaatoris on rakendatud 'virt' platvorm seadmete testimiseks ja pideva integratsiooni süsteemides kasutamiseks. On rakendatud klassikalise TCG koodigeneraatori mitme lõime toetamine.
- RISC-V arhitektuuri emulaatoris on 'virt' emuleeritud masinates võimalik laadida pflash firmware S-režiimist (S-mode). Seadmestiku puuga töötamine on paranenud.
- 390x arhitektuuri emulaator toetab MSA5 laiendust (Message-Security-Assist Extension 5 koos PRNO käsuga pseudojuhuslike arvude genereerimiseks), KIMD/KLM käske (SHA-512 rakendamine) ja laiendatud zPCI tõlgendust KVM hüperviisoril põhinevates virtuaalsüsteemides.
- Mälu töötlemiseks tagatakse eelnevalt eraldatud mälu, arvestades NUMA arhitektuuri.
- Tugevdatud šifreeritud plokkseadmete LUKS päiste kontrolli, lisatud võimalus luua LUKS-pilte macOS-is.
- 9pfs tagab võimaluse kasutada Plan 9 võrgu failisüsteemi, et üks virtuaalmasin saaks ligipääsu teisele, ning on läinud üle GHashTable hash'i kasutamisele identifikaatorite tabelis, mis mõnes olukorras on parandanud jõudlust 6–12 korda.
- Lisatud uued netdev-bäkendid stream ja dgram.
- ARM arhitektuuri põhistel külalisüsteemide agentidesse on lisatud FreeBSD toetus.
- macOS-i GUI kogudes on tagatud Cocoa ja SDL/GTK liideste ühinemine ühte täitmisfaili.
- Sisseehitatud subsüsteem "slirp" on eemaldatud, mille asemel soovitatakse kasutada süsteemi raamatukogu libslirp.
- Seoses testimise võimaluse puudumisega on kuulutatud aegunud 32-bitiste MIPS-protsessoritega host-süsteemide toetus, mis kasutavad "Big endian" baitide järjekorda.
Allikas: opennet.ru
