Udgivelse af QEMU 7.2-emulatoren

Udgivelsen af ​​QEMU 7.2-projektet præsenteres. Som emulator giver QEMU dig mulighed for at køre et program bygget til én hardwareplatform på et system med en helt anden arkitektur, for eksempel køre en ARM-applikation på en x86-kompatibel pc. I virtualiseringstilstanden i QEMU er ydeevnen af ​​kodeeksekvering i et isoleret miljø tæt på et hardwaresystem på grund af den direkte udførelse af instruktioner på CPU'en og brugen af ​​Xen hypervisor eller KVM-modulet.

Projektet blev oprindeligt skabt af Fabrice Bellard for at tillade Linux-eksekverbare filer bygget til x86-platformen til at køre på ikke-x86-arkitekturer. Gennem årenes udvikling er der blevet tilføjet fuld emuleringsunderstøttelse for 14 hardwarearkitekturer, antallet af emulerede hardwareenheder har oversteget 400. Som forberedelse til version 7.2 er der foretaget mere end 1800 ændringer fra 205 udviklere.

Vigtigste forbedringer tilføjet i QEMU 7.2:

  • x86-emulatoren i den klassiske TCG-kodegenerator har tilføjet understøttelse af AVX-, AVX2-, F16C-, FMA3- og VAES-instruktioner, samt ydeevneoptimeringer relateret til brugen af ​​SSE-instruktioner. For KVM er der tilføjet understøttelse af en mekanisme til sporing af virtuelle maskiners udgange ("notify vmexit"), som giver dig mulighed for at omgå fejl i CPU'en, der kan føre til hængende.
  • ARM-emulatoren understøtter Cortex-A35 CPU og processorudvidelser ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (hardwarekontrol af adgangsflag og "beskidt" tilstand) og E0PD (forhindrer EL0-adgang til opdelte adressekort).
  • LoongArch-emulatoren tilføjer understøttelse af fw_cfg DMA, hot-plug-hukommelse og TPM (Trusted Platform Module) enhedsemulering.
  • OpenRISC-arkitekturemulatoren implementerer 'virt'-platformen til at teste enheder og bruge dem i kontinuerlige integrationssystemer. Understøttelse af multi-threaded udførelse af den klassiske TCG (Tiny Code Generator) kodegenerator er blevet implementeret.
  • Emulatoren af ​​RISC-V-arkitekturen i de 'virt'-emulerede maskiner har evnen til at indlæse firmware fra pflash i S-mode. Forbedret arbejde med enhedstræ.
  • 390x-emulatoren understøtter MSA5 (Message-Security-Assist Extension 5 med PRNO-instruktionen til generering af pseudo-tilfældige tal), KIMD/KLM-instruktioner (implementering af SHA-512) og udvidet zPCI-fortolkning til gæstesystemer baseret på KVM-hypervisoren .
  • Backends til at arbejde med hukommelse giver forhåndstildeling af hukommelse under hensyntagen til NUMA-arkitekturen.
  • Header-kontrollen af ​​LUKS-krypterede blokenheder er blevet styrket, og muligheden for at oprette LUKS-billeder på macOS er blevet tilføjet.
  • 9pfs-backend, som tillader brugen af ​​Plan 9-netværksfilsystemet til at få adgang til en virtuel maskine til en anden, skiftede til at bruge GHashTable-hashen i identifikationstabellen, hvilket i nogle situationer førte til en 6-12 gange øget ydeevne.
  • Tilføjet nye netdev-backends stream og dgram.
  • FreeBSD-support er blevet tilføjet til agenten for ARM-baserede gæster.
  • GUI builds til macOS giver mulighed for at inkludere grænseflader baseret på Cocoa og SDL/GTK i én eksekverbar fil.
  • Det indbyggede undermodul "slirp" er blevet fjernet, i stedet anbefales det at bruge libslirp systembiblioteket.
  • På grund af manglende testkapacitet er understøttelse af værtssystemer med 32-bit MIPS-processorer, der bruger Big Endian byte-rækkefølge, blevet forældet.

Kilde: opennet.ru

Tilføj en kommentar