Utgivelse av QEMU 4.1-emulatoren

Introdusert prosjektutgivelse QEMU 4.1. Som emulator lar QEMU deg kjøre et program kompilert for én maskinvareplattform på et system med en helt annen arkitektur, for eksempel kjøre en ARM-applikasjon på en x86-kompatibel PC. I virtualiseringsmodus i QEMU er ytelsen til kodekjøring i et isolert miljø nær det opprinnelige systemet på grunn av direkte utførelse av instruksjoner på CPU og bruk av Xen hypervisor eller KVM-modul.

Prosjektet ble opprinnelig opprettet av Fabrice Bellard for å la Linux-kjørbare filer bygget for x86-plattformen kjøre på ikke-x86-arkitekturer. I løpet av årene med utvikling har full emuleringsstøtte blitt lagt til for 14 maskinvarearkitekturer, antallet emulerte maskinvareenheter har oversteget 400. Som forberedelse til versjon 4.1 er det gjort mer enn 2000 endringer fra 276 utviklere.

Nøkkel forbedringerlagt til i QEMU 4.1:

  • Støtte for Hygon Dhyana og Intel SnowRidge CPU-modeller er lagt til x86-arkitekturemulatoren. Lagt til emulering av RDRAND-utvidelsen (maskinvare pseudo-tilfeldig tallgenerator). Lagt til flagg
    md-clear og mds-no for å kontrollere angrepsbeskyttelse MDS (Microarchitectural Data Sampling) på Intel-prosessorer. Lagt til muligheten til å bestemme integrerte kretstopologier ved å bruke flagget "-smp ...,dies=". Versjonsstyring er implementert for alle x86 CPU-modeller;

  • SSH-blokkdriveren er flyttet fra bruk libssh2libsh;
  • Virtio-gpu-driveren (virtuell GPU utviklet som en del av prosjektet Virgil) lagt til støtte for å flytte 2D/3D-gjengivelsesoperasjoner til en ekstern vhost-brukerprosess (for eksempel vhost-user-gpu);
  • ARM-arkitekturemulatoren har lagt til støtte for ARMv8.5-RNG-utvidelsen for å generere pseudo-tilfeldige tall. Støtte for FPU-emulering er implementert for Cortex-M-familiebrikker og problemer med FPU-emulering for Cortex-R5F er løst. Et nytt system for innstilling av byggealternativer, designet i Kconfig-stil, har blitt foreslått. For SoC Exynos4210 er støtte for PL330 DMA-kontrollere lagt til;
  • MIPS-arkitekturemulatoren har forbedret støtte for MSA ASE-instruksjoner ved bruk av big-endian byte-rekkefølge og justert håndteringen av divisjon med null tilfeller med referansemaskinvare. Ytelsen for emulering av MSA-instruksjoner for heltallsberegninger og permutasjonsoperasjoner er økt;
  • PowerPC-arkitekturemulatoren støtter nå videresending til NVIDIA V100/NVLink2 GPUer ved hjelp av VFIO. For pseries er akselerasjon av XIVE avbruddskontroller-emulering implementert og støtte for hot plugging av PCI-broer er lagt til. Optimaliseringer er gjort for emulering av vektorinstruksjoner (Altivec/VSX);
  • En ny maskinvaremodell er lagt til RISC-V-arkitekturemulatoren - "spike". Lagt til støtte for ISA 1.11.0. 32-biters systemkall ABI har blitt forbedret, ugyldig instruksjonshåndtering er forbedret, og den innebygde debuggeren er forbedret. Lagt til støtte for CPU-topologi i enhetstreet;
  • s390-arkitekturemulatoren har lagt til støtte for å emulere alle vektorinstruksjoner fra "Vector Facility"-gruppen og lagt til tilleggselementer for å støtte gen15-systemer (inkludert ekstra støtte for AP Queue Interruption Facility for vfio-ap). Implementert BIOS-støtte for oppstart fra ECKD DASD bundet til gjestesystemet via vfio-ccw;
  • I SPARC-arkitekturemulatoren for sun4m-systemer er problemer med å bruke "-vga none"-flagget for OpenBIOS løst;
  • Tensilica Xtensa-familieprosessoremulatoren inkluderer alternativer for MPU (minnebeskyttelsesenhet) og eksklusiv tilgang;
  • Alternativet "-salvage" er lagt til kommandoen "qemu-img convert" for å deaktivere krasj i bildekonverteringsprosessen i tilfelle I/O-feil (kan for eksempel brukes til å gjenopprette delvis skadede qcow2-filer). På et lag
    "qemu-img rebase" fungerer når en sikkerhetskopifil ennå ikke er opprettet for inndatafilen;

  • Lagt til muligheten til å omdirigere utdata organisert ved hjelp av "semihosting"-teknologien (lar den emulerte enheten bruke stdout, stderr og stdin for å lage filer på vertssiden) til chardev-backend ("-semihosting-config enable=on,target=native ,chardev=[ID]");
  • Lagt til støtte for seSparse-underformatet i skrivebeskyttet modus i VMDK-blokkdriveren;
  • Lagt til støtte for SiFive GPIO-kontrolleren i GPIO-emuleringsdriveren.

Kilde: opennet.ru

Legg til en kommentar