Veröffentlichung des Emulators QEMU 7.2

Die Veröffentlichung des Projekts QEMU 7.2 wurde vorgestellt. Als Emulator ermöglicht QEMU das Ausführen von Programmen, die für eine Hardware-Plattform kompiliert wurden, auf einem System mit einer völlig anderen Architektur, beispielsweise das Ausführen einer Anwendung für ARM auf einem x86-kompatiblen PC. Im Virtualisierungsmodus erreicht QEMU eine nahezu hardwareähnliche Ausführungsgeschwindigkeit im isolierten Umfeld dank der direkten Ausführung von Anweisungen auf der CPU und der Nutzung des Hypervisors Xen oder des KVM-Moduls.

Das Projekt wurde ursprünglich von Fabrice Bellard ins Leben gerufen, um die Ausführung von für die x86-Plattform kompilierten Linux-Executable-Dateien auf Architekturen zu ermöglichen, die von x86 abweichen. Im Laufe der Jahre wurde die Unterstützung für eine vollständige Emulation von 14 Hardware-Architekturen hinzugefügt, und die Anzahl der emulierten Hardwaregeräte überschreitet 400. Bei der Vorbereitung der Version 7.2 wurden über 1800 Änderungen von 205 Entwicklern vorgenommen.

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

  • Im Emulator der x86-Architektur wurde die Unterstützung für AVX-, AVX2-, F16C-, FMA3- und VAES-Anweisungen im klassischen Code-Generator TCG hinzugefügt, und es wurden Performance-Optimierungen im Zusammenhang mit der Nutzung von SSE-Anweisungen durchgeführt. Für KVM wurde die Unterstützung für einen Mechanismus zur Überwachung des Austritts aus der virtuellen Maschine („notify vmexit“) hinzugefügt, der es ermöglicht, Fehler in der CPU zu umgehen, die zu einem Stillstand führen könnten.
  • Im ARM-Emulator wurde die Unterstützung für die CPU Cortex-A35 und die CPU-Erweiterungen ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (Hardware Access Flag und Dirty State Management) und E0PD (Verhinderung des Zugriffs von EL0 auf Geteilte Adressräume) implementiert.
  • Im LoongArch-Emulator wurde die Unterstützung für fw_cfg DMA, Hot-Plugging von Speicher und die Emulation von TPM-Geräten (Trusted Platform Module) hinzugefügt.
  • Im OpenRISC-Emulator wurde die Plattform 'virt' zur Durchführung von Gerätetests und zum Einsatz in Continuous-Integration-Systemen implementiert. Die Unterstützung für die Multithread-Ausführung im klassischen Code-Generator TCG (Tiny Code Generator) wurde ebenfalls bereitgestellt.
  • Im RISC-V-Emulator wurde in den emulierten Maschinen 'virt' die Möglichkeit implementiert, Firmware aus pflash im S-Modus (S-mode) zu laden. Die Arbeit mit dem Gerätbaum wurde verbessert.
  • Im 390x Architektur-Emulator wird die Unterstützung für die Erweiterung MSA5 (Message-Security-Assist Extension 5 mit der PRNO-Anweisung zur Erzeugung von Pseudo-Zufallszahlen), die Anweisungen KIMD/KLM (SHA-512-Implementierung) und die erweiterte zPCI-Interpretation für Gastssysteme auf KVM-Hypervisor-Basis sichergestellt.
  • In den Backends wurde eine vorzeitige Speicherallokation unter Berücksichtigung der NUMA-Architektur implementiert.
  • Die Überprüfung der Header von LUKS-verschlüsselten Blockgeräten wurde verstärkt, zudem wurde die Möglichkeit zur Erstellung von LUKS-Abbildern unter macOS hinzugefügt.
  • Im 9pfs-Backend, das es ermöglicht, das Netzwerkdateisystem Plan 9 für den Zugriff einer virtuellen Maschine auf eine andere zu nutzen, wurde zu einer GHashTable-Hash-Tabelle für Identifikatoren gewechselt, was in bestimmten Situationen zu einer Leistungssteigerung von 6-12 Mal führte.
  • Es wurden neue netdev-Backends stream und dgram hinzugefügt.
  • Im Agenten für Gastbetriebssysteme auf ARM-Architektur wurde die Unterstützung für FreeBSD hinzugefügt.
  • In den GUI-Bundles für macOS wurde die Möglichkeit implementiert, die Schnittstellen auf Basis von Cocoa und SDL/GTK in eine ausführbare Datei zu integrieren.
  • Das integrierte Submodul «slirp» wurde entfernt; stattdessen wird die Verwendung der Systembibliothek libslirp empfohlen.
  • Aufgrund der fehlenden Möglichkeit zur Testung wurde die Unterstützung für Host-Systeme mit 32-Bit-MIPS-Prozessoren, die das Byte-Order «Big Endian» verwenden, für veraltet erklärt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4