prosjektutgivelse . Som emulator lar QEMU deg å kjøre et program som er bygget for én maskinvareplattform på et system med helt annen arkitektur, for eksempel å kjøre en applikasjon for ARM på en x86-kompatibel PC. I virtualiseringsmodus er ytelsen til å kjøre kode i et isolert miljø nær den native systemytelsen takket være direkte eksekvering av instruksjoner på CPU og bruk av hypervisor Xen eller KVM-modulen.
Prosjektet ble opprinnelig opprettet av Fabrice Bellard med mål om å gjøre det mulig å kjøre Linux-kjørbare filer bygget for x86-plattformen på arkitekturer som er forskjellige fra x86. I løpet av utviklingen har det blitt lagt til støtte for full emulering for 14 maskinvarearkitekturer, og antallet emulerte maskinvarer har oversteget 400. Før versjon 4.1 ble det gjort over 2000 endringer av 276 utviklere.
Nøkkelfunksjoner , lagt til i QEMU 4.1:
- Emulatoren for x86-arkitekturen har fått støtte for Hygon Dhyana og Intel SnowRidge CPU-modeller. Emulering av RDRAND-utvidelsen (maskinvare generator for pseudotilfeldige tall) har blitt lagt til. Flaggene
md-clear og mds-no for å styre beskyttelse mot angrep (Microarchitectural Data Sampling) på Intel-prosessorer har blitt lagt til. Muligheten for å bestemme topologier av integrerte kretser ved hjelp av flagget «-smp …,dies=» er implementert. Versjonering for alle x86 CPU-modeller er implementert; - SSH-blokkdriveren ble overført fra å bruke En funksjon har blitt ;
- I virtio-gpu driveren (virtuell GPU, utviklet som en del av prosjektet ) har støtte for å delegere 2D/3D tegning til en ekstern prosess vhost-user (f.eks. vhost-user-gpu) blitt lagt til;
- I ARM-arkitektur emulatoren har støtte for ARMv8.5-RNG-utvidelsen for generering av pseudotilfeldige tall blitt lagt til. Støtte for emulering av FPU for Cortex-M-chips er implementert, og problemer med emulering av FPU for Cortex-R5F er løst. Et nytt system for innstilling av byggealternativer er foreslått, utformet i Kconfig-stil. For SoC Exynos4210 er støtte for PL330 DMA-kontrollere lagt til;
- I MIPS-arkitektur emulatoren er støtten for MSA ASE-instruksjoner forbedret ved bruk av big-endian byte-rekkefølge, og spesielle tilfeller av divisjon med null er tilpasset referanseutstyret. Ytelsen for emulering av MSA-instruksjoner for heltallsberegninger og ombyttingsoperasjoner er økt;
- I PowerPC-arkitektur emulatoren har støtte for å videresende til NVIDIA V100/GPU NVLink2 via VFIO blitt lagt til. For pseries er akselerasjon av emulering av XIVE-interruptkontroller implementert, og støtte for varmt tilkobling av PCI-broer er lagt til. Optimaliseringer i emulering av vektorinnstruksjoner (Altivec/VSX) har blitt gjort.
- En emulator for RISC-V-arkitekturen har fått en ny maskinvaremodell – «spike». Støtte for ISA 1.11.0 er lagt til. Den 32-bits ABI for systemanrop er forbedret, håndteringen av ugyldige instruksjoner er utvidet, og den innebygde debuggere er forbedret. Støtte for CPU-topologi er lagt til i device tree;
- I emulatoren for s390-arkitekturen er støtten for emulering av alle vektorinnstruksjoner i «Vector Facility»-gruppen blitt lagt til, og det er lagt til flere elementer for å støtte gen15-systemer (inkludert støtte for AP Queue Interruption Facility for vfio-ap). Støtte for BIOS for oppstart fra ECKD DASD som er tilknyttet vertssystemet via vfio-ccw er implementert;
- I emulatoren for SPARC-arkitekturen for sun4m-systemer er problemer med bruken av flagget «-vga none» for OpenBIOS blitt løst;
- I emulatoren for Tensilica Xtensa-prosessorfamilien er alternativer for MPU (memory protection unit) og eksklusiv tilgang implementert;
- I kommandoen «qemu-img convert» er alternativet «—salvage» lagt til for å deaktivere tvungen avslutning av konverteringsprosessen i tilfelle av I/O-feil (for eksempel kan det brukes til å gjenopprette delvis skadede qcow2-filer). I kommandoen
«qemu-img rebase» fungerer når det ikke er opprettet en basis (backing) fil for inndatabasen; - Muligheten for å omdirigere utdata organisert ved hjelp av «semihosting»-teknologi (som lar det emulerte enheten bruke stdout, stderr og stdin til å lage filer på vertsiden) er lagt til backend chardev («-semihosting-config enable=on,target=native,chardev=[ID]»);
- I VMDK-blokkdrivere er støtten for seSparse-subformatet i skrivebeskyttet modus blitt lagt til;
- I GPIO-emuleringsdriveren er støtten for GPIO-kontrolleren SiFive lagt til.
Kilde: opennet.ru
