QEMU je emulator procesora temeljen na dinamičkom binarnom prevođenju
Najavljeno je pokretanje nove verzije projekta QEMU 7.2, verzija u kojoj dodao razna poboljšanja podrške različitim emulatorima, od kojih je najistaknutiji implementacija 'virt'-a u OpenRISC-u, kao i poboljšanja za ARM i više. Ova nova izdana verzija QEMU 7.1 sadrži više od 1800 obveza od 205 autora
Za one koji su novi u QEMU-u, trebali biste znati da vam omogućuje pokretanje programa izgrađenog za jednu hardversku platformu na sustavu s potpuno različitom arhitekturom, na primjer pokretanje ARM aplikacije na računalu kompatibilnom s x86.
U virtualizacijskom načinu rada u QEMU, izvedba izvršavanja koda u izoliranom okruženju slična je onoj hardverskog sustava zbog izravnog izvršavanja instrukcija na CPU-u i upotrebe Xen hipervizora ili KVM modula.
Glavne novine QEMU-a 7.2
U ovoj novoj verziji koja je predstavljena za QEMU 7.2 istaknuto je daDodana podrška za AVX, AVX2, F16C, FMA3 i VAES upute na emulator x86 arhitekture u klasičnom TCG generatoru koda, kao i optimizacije performansi vezane uz korištenje SSE instrukcija.
Još jedna od promjena koja se ističe je da sada ARM emulator podržava Cortex-A35 CPU i ETS procesorske ekstenzije (Poboljšana sinkronizacija prijevoda), PMUv3p5 (strMU ekstenzije 3.5), GTG (Granula prijevoda za goste 4KB, 16KB, 64KB), HAFDBS i E0PD (EL0 Sprečavanje pristupa mapama dijeljenih adresa).
Osim toga, emulator arhitekture OpenRISC implementira 'virt' platformu za testiranje uređaja i korištenje u sustavima kontinuirane integracije. Implementirana podrška za višenitnu izvedbu klasičnog generatora koda TCG (Tiny Code Generator).
Arhitektonski emulator RISC-V na emuliranim 'virt' strojevima sada ima mogućnost pokretanja firmware-a s pflash-a u S modu, dok emulator LoongArch dodaje podršku za fw_cfg DMA, vruće uključivanje memorije i TPM (Trusted Platform Module) emulaciju uređaja.
Emulator arhitekture 390x pruža podršku za MSA5 ekstenziju (Message-Security-Assist Extension 5 s PRNO instrukcijom za generiranje pseudoslučajnih brojeva), KIMD/KLM instrukcije (implementacija SHA-512) i proširenu interpretaciju zPCI za goste na temelju KVM hipervizor.
Dodana je podrška za mehanizam praćenja izlaza KVM-a ("obavijesti vmexit") kako bi se spriječile CPU pogreške koje mogu uzrokovati rušenje.
Od ostale promjene koji se ističu u ovoj novoj verziji:
- Pozadina za rad s memorijom omogućuje predraspodjelu memorije, uzimajući u obzir NUMA arhitekturu.
- Poboljšan rad sa stablom uređaja
- Poboljšana provjera zaglavlja uređaja LUKS cipherblock, dodana mogućnost stvaranja LUKS slika na macOS-u.
- U pozadini 9pfs, koja omogućuje korištenje mrežnog datotečnog sustava Plan 9 za pristup s jednog virtualnog računala na drugo, promijenjeno je korištenje hasha GHashTable na tablici identifikatora, što je u nekim situacijama dovelo do povećanja performansi od 6 do 12 puta.
- Dodane su nove netdev i dgram pozadine.
- Podrška za FreeBSD dodana je u ARM gostujući agent.
- GUI međuverzije za macOS pružaju mogućnost uključivanja sučelja temeljenih na Cocoa i SDL/GTK u jednoj izvršnoj datoteci.
- Uklonjen je ugrađeni podmodul slirp, preporučuje se korištenje knjižnice sustava libslirp umjesto njega.
- Zbog nedostatka mogućnosti testiranja, podrška za 32-bitne MIPS hostove koji koriste Big Endian poredak bajtova je zastarjela.
- Binarne datoteke qemu-i386 i qemu-x86_64 sada su zadane na 'max' CPU modelu umjesto 'qemu32' / 'qemu64'
- Podrška za spremanje/vraćanje SSE registara u signalne okvire u qemu-i386 (kada je FXSR postavljen na CPUID)
- Podrška za spremanje/vraćanje XSAVE stanja na signalne okvire (kada je XSAVE postavljen na CPUID)
Konačno ako vas zanima više o tome o promjenama i novitetima koji su predstavljeni u ovoj novoj verziji QEMU 7.2 možete pogledati detalje i više u sljedeći link.