Veröffentlichung des QEMU 7.2-Emulators

Die Veröffentlichung des QEMU 7.2-Projekts wird vorgestellt. Als Emulator ermöglicht Ihnen QEMU, ein für eine Hardwareplattform erstelltes Programm auf einem System mit einer völlig anderen Architektur auszuführen, beispielsweise eine ARM-Anwendung auf einem x86-kompatiblen PC auszuführen. Im Virtualisierungsmodus in QEMU kommt die Leistung der Codeausführung in einer isolierten Umgebung aufgrund der direkten Ausführung von Anweisungen auf der CPU und der Verwendung des Xen-Hypervisors oder KVM-Moduls der eines Hardwaresystems nahe.

Das Projekt wurde ursprünglich von Fabrice Bellard ins Leben gerufen, um die Ausführung von für die x86-Plattform erstellten ausführbaren Linux-Dateien auf Nicht-x86-Architekturen zu ermöglichen. Im Laufe der Jahre der Entwicklung wurde die vollständige Emulationsunterstützung für 14 Hardwarearchitekturen hinzugefügt, die Anzahl der emulierten Hardwaregeräte hat 400 überschritten. In Vorbereitung auf Version 7.2 wurden mehr als 1800 Änderungen von 205 Entwicklern vorgenommen.

Wichtige Verbesserungen, die in QEMU 7.2 hinzugefügt wurden:

  • Unterstützung für AVX-, AVX86-, F2C-, FMA16- und VAES-Anweisungen zum x3-Architektur-Emulator im klassischen TCG-Codegenerator hinzugefügt sowie Leistungsoptimierungen im Zusammenhang mit der Verwendung von SSE-Anweisungen. Unterstützung für den KVM-Exit-Tracking-Mechanismus („notify vmexit“) hinzugefügt, der es ermöglicht, Fehler in der CPU zu umgehen, die zu einem Hängen führen können.
  • Der ARM-Emulator unterstützt CPU Cortex-A35 und Prozessorerweiterungen ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (Hardware-Steuerung des Zugriffsflags und des „Dirty“). Bundesstaat) und E0PD (Verhindern des EL0-Zugriffs auf freigegebene Adresskarten).
  • Der LoongArch-Emulator bietet Unterstützung für fw_cfg DMA, Speicher-Hot-Plugging und TPM-Geräteemulation (Trusted Platform Module).
  • Der OpenRISC-Architektur-Emulator implementiert die „virt“-Plattform für Gerätetests und den Einsatz in kontinuierlichen Integrationssystemen. Unterstützung für die Multithread-Ausführung des klassischen TCG-Codegenerators (Tiny Code Generator) implementiert.
  • Der RISC-V-Architektur-Emulator in den emulierten „virten“ Maschinen verfügt jetzt über die Möglichkeit, Firmware von pflash im S-Modus zu booten. Verbesserte Arbeit mit dem Gerätebaum.
  • Der 390x-Architektur-Emulator bietet Unterstützung für die MSA5-Erweiterung (Message-Security-Assist Extension 5 mit PRNO-Anweisung zum Generieren von Pseudozufallszahlen), KIMD/KLM-Anweisungen (eine Implementierung von SHA-512) und erweiterte zPCI-Interpretation für Gäste basierend auf der KVM-Hypervisor.
  • Backends für die Arbeit mit Speicher bieten eine Vorabzuweisung von Speicher unter Berücksichtigung der NUMA-Architektur.
  • Verbesserte Überprüfung von LUKS-verschlüsselten Blockgeräte-Headern, Hinzufügung der Möglichkeit, LUKS-Images unter macOS zu erstellen.
  • Im 9pfs-Backend, das die Verwendung des Plan 9-Netzwerkdateisystems für den Zugriff von einer virtuellen Maschine auf eine andere ermöglicht, wurde auf die Verwendung des GHashTable-Hashs in der Kennungstabelle umgestellt, was in einigen Situationen zu einer Leistungssteigerung um das 6- bis 12-fache führte .
  • Neuer Netdev-Backends-Stream und Dgram hinzugefügt.
  • Dem ARM-basierten Gastagenten wurde Unterstützung für FreeBSD hinzugefügt.
  • GUI-Builds für macOS bieten die Möglichkeit, Cocoa- und SDL/GTK-basierte Schnittstellen in einer einzigen ausführbaren Datei einzubinden.
  • Das integrierte Submodul „slirp“ wurde entfernt. Stattdessen wird empfohlen, die Systembibliothek libslirp zu verwenden.
  • Aufgrund mangelnder Testmöglichkeiten wurde die Unterstützung für Hostsysteme mit 32-Bit-MIPS-Prozessoren, die die Bytereihenfolge „Big Endian“ verwenden, eingestellt.

Source: opennet.ru

Kommentar hinzufügen