QEMU 7.2 -projektin julkaisu esitellään. Emulaattorina QEMU mahdollistaa yhdelle laitteistoalustalle rakennetun ohjelman suorittamisen järjestelmässä, jossa on täysin erilainen arkkitehtuuri, esimerkiksi ARM-sovellusta x86-yhteensopivalla PC:llä. QEMU:n virtualisointitilassa koodin suoritus eristetyssä ympäristössä on lähellä laitteistojärjestelmää, koska käskyt suoritetaan suoraan suorittimessa ja Xen-hypervisor- tai KVM-moduulia käytetään.
Projektin loi alun perin Fabrice Bellard salliakseen x86-alustalle rakennettujen Linux-suoritustiedostojen ajamisen muissa kuin x86-arkkitehtuureissa. Vuosien kehitystyön aikana täysi emulointituki on lisätty 14 laitteistoarkkitehtuurille, emuloitujen laitteistojen määrä on ylittänyt 400. Version 7.2 valmistelemiseksi on tehty yli 1800 muutosta 205 kehittäjältä.
QEMU 7.2:ssa lisätyt tärkeimmät parannukset:
- Klassisen TCG-koodigeneraattorin x86-emulaattori on lisännyt tuen AVX-, AVX2-, F16C-, FMA3- ja VAES-käskyille sekä SSE-käskyjen käyttöön liittyviä suorituskyvyn optimointeja. KVM:lle on lisätty tuki virtuaalikoneen poistumisten seurantamekanismille ("notify vmexit"), jonka avulla voit ohittaa suorittimen virheet, jotka voivat johtaa jumiutumiseen.
- ARM-emulaattori tukee Cortex-A35-suoritin- ja prosessorilaajennuksia ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (pääsylippujen laitteistoohjaus) ja "likainen" tila. ja E0PD (estää EL0:n pääsyn osioituihin osoitekarttoihin).
- LoongArch-emulaattori lisää tuen fw_cfg DMA:lle, hot-plug-muistille ja TPM (Trusted Platform Module) -laiteemulaatiolle.
- OpenRISC-arkkitehtuuriemulaattori toteuttaa 'virt'-alustan laitteiden testaamiseen ja niiden käyttämiseen jatkuvassa integraatiojärjestelmissä. Tuki klassisen TCG (Tiny Code Generator) -koodigeneraattorin monisäikeiselle suoritukselle on otettu käyttöön.
- Virt-emuloitujen koneiden RISC-V-arkkitehtuurin emulaattori pystyy lataamaan laiteohjelmiston pflashista S-tilassa. Parannettu työskentely laitepuun kanssa.
- 390x-emulaattori tukee MSA5:tä (Message-Security-Assist Extension 5 PRNO-käskyllä pseudosatunnaislukujen luomiseen), KIMD/KLM-käskyjä (SHA-512:n toteutus) ja laajennettua zPCI-tulkintaa vierasjärjestelmille, jotka perustuvat KVM-hypervisoriin. .
- Muistin kanssa työskentelyn taustaohjelmat tarjoavat muistin ennakkovarauksen ottaen huomioon NUMA-arkkitehtuurin.
- LUKS-salattujen lohkolaitteiden otsikkotarkistusta on tehostettu, ja kyky luoda LUKS-kuvia macOS:ssä on lisätty.
- 9pfs-taustajärjestelmä, joka mahdollistaa Plan 9 -verkkotiedostojärjestelmän käytön virtuaalikoneen toiseen pääsyyn, siirtyi käyttämään GHashTable-tiivistettä tunnistetaulukossa, mikä joissakin tilanteissa johti 6-12-kertaiseen suorituskyvyn kasvuun.
- Lisätty uudet netdev-taustaohjelmien stream ja dgram.
- FreeBSD-tuki on lisätty ARM-pohjaisten vieraiden agenttiin.
- MacOS:n GUI-versiot tarjoavat mahdollisuuden sisällyttää Cocoaan ja SDL/GTK:hen perustuvat rajapinnat yhteen suoritettavaan tiedostoon.
- Sisäänrakennettu alimoduuli “slirp” on poistettu, sen sijaan on suositeltavaa käyttää libslirp-järjestelmäkirjastoa.
- Testauskyvyn puutteen vuoksi tuki isäntäjärjestelmille, joissa on 32-bittiset MIPS-prosessorit, jotka käyttävät Big Endian -tavujärjestystä, on poistettu käytöstä.
Lähde: opennet.ru