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.
Opprinnelig ble prosjektet opprettet av Fabrice Bellard for å muliggjøre kjøring av Linux-kjørbare filer bygget for x86-plattformen på arkitekturer som er forskjellige fra x86. I løpet av årene med utvikling har støtte for full emulering blitt lagt til for 14 maskinarkitekturer, og antall emulerte maskinvareenheter har oversteget 400. For versjon 4.2 ble det gjort mer enn 2200 endringer av 198 utviklere.
Nøkkelfunksjoner , lagt til i QEMU 4.2:
- I den klassiske kodegeneratoren TCG (Tiny Code Generator) er det implementert støtte for plugin-moduler for overvåking av prosessorinstruksjoner og minneadresser;
- I blokkdevice-driveren (Network Block Device) har man sikret mer effektiv behandling av kopieringsforespørsel ved lesing (copy-on-read). Koden til NBD-serveren er optimalisert for kopiering av sparsomme bilder (med tomrom). Generelle forbedringer er gjort i implementeringen av NBD-klienten og serveren;
- Ytelsen til LUKS-diskkryptering ved bruk av AES-XTS-algoritmen er forbedret;
- I vfio-pci er det lagt til støtte for egenskapen «failover_pair_id» for å forenkle migrering av VFIO-enheter;
- I virtio-mmio er det lagt til støtte for standardsystemet virtio-compatible 2 og den spesifikasjonen som er definert i virtio 1.1 for pakkerte virtuelle køer () for utveksling av data med virtuelle inn-/utdata-enheter i batch-modus;
- I emuleringssystemet for x86-arkitektur er en ny type emulerte maskiner kalt «microvm» lagt til, som bruker virtio-mmio i stedet for PCI for å optimalisere ytelsen. Muligheten for å slå VMX på og av via flaggene «-cpu» er implementert. Støtte for emulering av AVX512 BFloat16-utvidelser er også lagt til. Støtte for nye CPU-modeller som Denverton (server-SoC basert på Atom), Snowridge og Dhyana er tilgjengelig. Støtte for macOS Hypervisor Framework («-accel hvf») er stabilisert;
- I emuleringssystemet for ARM-arkitektur er støtte for emulering av SoC Aspeed AST2600 («ast2600-evb») lagt til. Støtte for Semihosting 2.0-teknologi med utvidelser som STDOUT_STDERR/EXIT_EXTENDED er lagt til, som gjør det mulig for emulerte enheter å bruke stdout, stderr og stdin for å opprette filer på vertsiden. I KVM er det lagt til mulighet for å bruke mer enn 256 CPU-er og støtte for SIMD-instruksjoner SVE er sikret. I virtuelle maskiner av typen «» er støtte for varmtplugg av minne implementert. Ytelsen til emulering ved bruk av TCG-kodegenerator er forbedret.
- I emulatore av arkitekturen PowerPC er det nå mulig å emulere POWER9-instruksjonene mffsce, mffscrn og mffscrni. I de emulerte maskinene 'powernv' er det lagt til støtte for de systemenhetene Homer og OCC SRAM;
- I emulatore av arkitekturen RISC-V er det lagt til alternativet '-initrd' og muligheten til å se den fullstendige tilstanden til arkitekturen i debuggeren;
- I emulatore av arkitekturen s390 er det implementert støtte for instruksjoner IEP (Instruction Execution Protection);
- I emulatore av arkitekturen 68k er det lagt til mulighet for å emulere Macintosh Quadro 800 og klassiske systemer som NeXTcube;
- I emulatore av arkitekturen xtensa er det lagt til en ny type emulerte maskiner 'virt' og implementert støtte for ABI call0 for emulering i brukerrommet.
Kilde: opennet.ru
