Vrijgave van de QEMU 7.2-emulator

De release van het QEMU 7.2-project is gepresenteerd. Als emulator kunt u met QEMU een programma uitvoeren dat is gecompileerd voor één hardwareplatform op een systeem met een geheel andere architectuur, bijvoorbeeld een ARM-applicatie uitvoeren op een x86-compatibele pc. In de virtualisatiemodus in QEMU liggen de prestaties van code-uitvoering in een geïsoleerde omgeving dicht bij die van een hardwaresysteem vanwege de directe uitvoering van instructies op de CPU en het gebruik van de Xen-hypervisor of KVM-module.

Het project is oorspronkelijk gemaakt door Fabrice Bellard om Linux-uitvoerbare bestanden die zijn gebouwd voor het x86-platform te laten draaien op niet-x86-architecturen. In de loop van de jaren van ontwikkeling is volledige emulatieondersteuning toegevoegd voor 14 hardware-architecturen, het aantal geëmuleerde hardware-apparaten is de 400 overschreden. Ter voorbereiding op versie 7.2 zijn er meer dan 1800 wijzigingen aangebracht door 205 ontwikkelaars.

Belangrijkste verbeteringen toegevoegd in QEMU 7.2:

  • De x86-emulator in de klassieke TCG-codegenerator heeft ondersteuning toegevoegd voor AVX-, AVX2-, F16C-, FMA3- en VAES-instructies, evenals prestatie-optimalisaties gerelateerd aan het gebruik van SSE-instructies. Voor KVM is ondersteuning toegevoegd voor een mechanisme voor het volgen van het afsluiten van virtuele machines ("notify vmexit"), waarmee u fouten in de CPU kunt omzeilen die tot vastlopen kunnen leiden.
  • De ARM-emulator ondersteunt Cortex-A35 CPU- en processoruitbreidingen ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (hardwarecontrole van toegangsvlag en "vuile" status) en E0PD (waardoor EL0-toegang tot gepartitioneerde adrestoewijzingen wordt voorkomen).
  • De LoongArch-emulator voegt ondersteuning toe voor fw_cfg DMA, hot-pluggable geheugen en TPM-apparaatemulatie (Trusted Platform Module).
  • De OpenRISC-architectuuremulator implementeert het 'virt'-platform voor het testen van apparaten en het gebruik ervan in continue integratiesystemen. Ondersteuning voor multi-threaded uitvoering van de klassieke TCG-codegenerator (Tiny Code Generator) is geïmplementeerd.
  • De emulator van de RISC-V-architectuur in de 'virt'-geëmuleerde machines heeft de mogelijkheid om firmware van pflash in S-modus te laden. Verbeterd werken met apparaatboom.
  • De 390x-emulator biedt ondersteuning voor MSA5 (Message-Security-Assist Extension 5 met de PRNO-instructie voor het genereren van pseudo-willekeurige getallen), KIMD/KLM-instructies (implementatie van SHA-512) en uitgebreide zPCI-interpretatie voor gastsystemen op basis van de KVM-hypervisor .
  • Backends voor het werken met geheugen bieden pre-toewijzing van geheugen, rekening houdend met de NUMA-architectuur.
  • De headercontrole van met LUKS gecodeerde blokapparaten is versterkt en de mogelijkheid om LUKS-images op macOS te maken is toegevoegd.
  • De 9pfs-backend, die het gebruik van het Plan 9-netwerkbestandssysteem mogelijk maakt om toegang te krijgen tot de ene virtuele machine naar de andere, schakelde over op het gebruik van de GHashTable-hash in de identificatietabel, wat in sommige situaties leidde tot een prestatieverbetering van 6 tot 12 keer.
  • Nieuwe netdev backends-stream en dgram toegevoegd.
  • FreeBSD-ondersteuning is toegevoegd aan de agent voor op ARM gebaseerde gasten.
  • GUI-builds voor macOS bieden de mogelijkheid om interfaces op basis van Cocoa en SDL/GTK in één uitvoerbaar bestand op te nemen.
  • De ingebouwde submodule “slirp” is verwijderd, in plaats daarvan wordt aanbevolen om de libslirp-systeembibliotheek te gebruiken.
  • Vanwege een gebrek aan testmogelijkheden is de ondersteuning voor hostsystemen met 32-bits MIPS-processors die de bytevolgorde van Big Endian gebruiken, verouderd.

Bron: opennet.ru

Voeg een reactie