Predstavljeno je izdanje projekta QEMU 7.2. Kao emulator, QEMU vam omogućava da pokrenete program kompajliran za jednu hardversku platformu na sistemu sa potpuno drugom arhitekturom, na primjer, pokrenete ARM aplikaciju na x86 kompatibilnom PC-u. U režimu virtuelizacije u QEMU, performanse izvršenja koda u izolovanom okruženju su bliske performansama hardverskog sistema zbog direktnog izvršavanja instrukcija na CPU-u i upotrebe Xen hipervizora ili KVM modula.
Projekat je prvobitno kreirao Fabrice Bellard kako bi omogućio pokretanje izvršnih datoteka kompajliranih za x86 platformu. Linux na arhitekturama koje nisu x86. Tokom godina razvoja, podrška za potpunu emulaciju dodana je za 14 hardverskih arhitektura, a broj emuliranih hardverskih uređaja premašio je 400. U pripremi verzije 7.2 napravljeno je više od 1800 promjena od strane 205 programera.
Ključna poboljšanja dodana u QEMU 7.2:
- Emulator x86 arhitekture u klasičnom TCG generatoru koda je ažuriran kako bi podržavao AVX, AVX2, F16C, FMA3 i VAES instrukcije, a implementirane su i optimizacije performansi vezane za korištenje SSE instrukcija. KVM Dodata je podrška za mehanizam za praćenje izlaza iz virtuelnih mašina ("obavijesti vmexit"), koji vam omogućava da zaobiđete greške CPU-a koje mogu dovesti do zastoja.
- ARM emulator podržava Cortex-A35 CPU i procesorske ekstenzije ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (hardverska kontrola stanja pristupa) i "prljavo" i E0PD (sprečavanje pristupa EL0 particioniranim adresnim mapama).
- LoongArch emulator dodaje podršku za fw_cfg DMA, hot-plug memoriju i TPM (Trusted Platform Module) emulaciju uređaja.
- Emulator OpenRISC arhitekture implementira 'virt' platformu za testiranje uređaja i njihovo korištenje u sistemima kontinuirane integracije. Implementirana je podrška za višenitno izvršavanje klasičnog TCG (Tiny Code Generator) generatora koda.
- Emulator RISC-V arhitekture u 'virt' emuliranim mašinama ima mogućnost učitavanja firmvera sa pflash-a u S-modu. Poboljšan rad sa stablom uređaja.
- 390x emulator pruža podršku za MSA5 (Message-Security-Assist Extension 5 sa PRNO instrukcijom za generiranje pseudo-slučajnih brojeva), KIMD/KLM instrukcije (implementacija SHA-512) i proširenu zPCI interpretaciju za gostujuće sisteme bazirane na KVM hipervizoru .
- Backendovi za rad sa memorijom omogućavaju pre-alokaciju memorije uzimajući u obzir NUMA arhitekturu.
- Poboljšana verifikacija LUKS šifriranih zaglavlja blokovskih uređaja, dodana je mogućnost kreiranja LUKS slika u macOS.
- 9pfs backend, koji omogućava korištenje sistema Plan 9 mrežnih datoteka za pristup jednoj virtuelnoj mašini drugoj, prešao je na korištenje GHashTable heša u tablici identifikatora, što je u nekim situacijama dovelo do povećanja performansi od 6-12 puta.
- Dodan novi netdev backend stream i dgram.
- FreeBSD podrška je dodata agentu za ARM-bazirane goste.
- U GUI sklopovima za macOS Omogućena je mogućnost uključivanja interfejsa zasnovanih na Cocoa i SDL/GTK u jednu izvršnu datoteku.
- Ugrađeni podmodul “slirp” je uklonjen, umjesto toga se preporučuje korištenje sistemske biblioteke libslirp.
- Zbog nedostatka mogućnosti testiranja, podrška za host sisteme sa 32-bitnim MIPS procesorima koji koriste Big Endian poredak bajtova je zastarjela.
izvor: opennet.ru
