Veröffentlichung des QEMU 6.1-Emulators

Die Veröffentlichung des QEMU 6.1-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 Möglichkeit zu bieten, ausführbare Linux-Dateien, die für die x86-Plattform kompiliert wurden, auf Nicht-x86-Architekturen auszuführen. Im Laufe der Jahre der Entwicklung wurde Unterstützung für die vollständige Emulation für 14 Hardwarearchitekturen hinzugefügt, die Anzahl der emulierten Hardwaregeräte überstieg 400. Bei der Vorbereitung von Version 6.1 wurden mehr als 3000 Änderungen von 221 Entwicklern vorgenommen.

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

  • Der Befehl „blockdev-reopen“ wurde zu QMP (QEMU Machine Protocol) hinzugefügt, um die Einstellungen eines bereits erstellten Blockgeräts zu ändern.
  • Gnutls wird als vorrangiger Kryptotreiber verwendet, der in puncto Leistung anderen Treibern voraus ist. Der libgcrypt-basierte Treiber, der zuvor standardmäßig angeboten wurde, wurde in die Reihe der Optionen verschoben, und der Brennnessel-basierte Treiber bleibt als Fallback-Option übrig, die in Abwesenheit von GnuTLS und Libgcrypt verwendet wird.
  • Unterstützung für PMBus- und I2C-Multiplexer (pca2, pca9546) zum I9548C-Emulator hinzugefügt.
  • Standardmäßig ist die Unterstützung für Plugins für den klassischen Codegenerator TCG (Tiny Code Generator) aktiviert. Neue Plugins execlog (Ausführungsprotokoll) und Cache-Modellierung (Simulation des Verhaltens des L1-Cache in der CPU) hinzugefügt.
  • Der ARM-Emulator hat Unterstützung für Boards hinzugefügt, die auf den Chips Aspeed (rainier-bmc, quanta-q7l1), npcm7xx (quanta-gbs-bmc) und Cortex-M3 (stm32vldiscovery) basieren. Unterstützung für Hardware-Verschlüsselung und Hashing-Engines hinzugefügt, die in Aspeed-Chips bereitgestellt werden. Unterstützung für die Emulation von SVE2-Anweisungen (einschließlich bfloat16), Matrixmultiplikationsoperatoren und Translation-Associative Buffer (TLB)-Flush-Anweisungen hinzugefügt.
  • Im PowerPC-Architektur-Emulator für emulierte Pseries-Maschinen wurde Unterstützung für die Fehlererkennung beim Hot-Plugging von Geräten in neuen Gastumgebungen hinzugefügt, die Begrenzung der Anzahl der CPUs wurde erhöht und die Emulation einiger spezifischer Anweisungen für POWER10-Prozessoren wurde implementiert . Unterstützung für Boards hinzugefügt, die auf Genesi/bPlan Pegasos II (pegasos2)-Chips basieren.
  • Der RISC-V-Emulator unterstützt die OpenTitan-Plattform und die virtuelle GPU virtio-vga (basierend auf virgl).
  • Der s390-Emulator bietet Unterstützung für CPU- und Vektorerweiterungen der 16. Generation.
  • Dem x86-Emulator wurde Unterstützung für neue Intel-CPU-Modelle hinzugefügt (Skylake-Client-v4, Skylake-Server-v5, Cascadelake-Server-v5, Cooperlake-v2, Icelake-Client-v3, Icelake-Server-v5, Denverton- v3, Snowridge-v3, Dhyana-v2), die die XSAVES-Anweisung implementieren. Der Q35 (ICH9)-Chipsatz-Emulator unterstützt Hot-Plugging von PCI-Geräten. Verbesserte Emulation von Virtualisierungserweiterungen, die in AMD-Prozessoren bereitgestellt werden. Option bus-lock-ratelimit hinzugefügt, um die Intensität der Busblockierung durch das Gastsystem zu begrenzen.
  • Unterstützung für die Verwendung als Beschleuniger für den vom NetBSD-Projekt entwickelten NVMM-Hypervisor hinzugefügt.
  • In der GUI ist die Unterstützung der Passwortauthentifizierung bei Verwendung des VNC-Protokolls jetzt nur beim Erstellen mit einem externen kryptografischen Backend (Gnutls, libgcrypt oder Nettle) aktiviert.

Source: opennet.ru

Kommentar hinzufügen