Veröffentlichung des QEMU 4.1-Emulators

Eingereicht von Projektfreigabe QEMU 4.1. Als Emulator ermöglicht Ihnen QEMU, ein für eine Hardwareplattform kompiliertes 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 des KVM-Moduls der des nativen Systems 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 4.1 wurden mehr als 2000 Änderungen von 276 Entwicklern vorgenommen.

Taste Verbesserungenin QEMU 4.1 hinzugefügt:

  • Dem x86-Architektur-Emulator wurde Unterstützung für die CPU-Modelle Hygon Dhyana und Intel SnowRidge hinzugefügt. Emulation der RDRAND-Erweiterung (Hardware-Pseudozufallszahlengenerator) hinzugefügt. Flaggen hinzugefügt
    md-clear und mds-no zur Steuerung des Angriffsschutzes MDS (Microarchitectural Data Sampling) auf Intel-Prozessoren. Es wurde die Möglichkeit hinzugefügt, Topologien integrierter Schaltkreise mithilfe des Flags „-smp ...,dies=“ zu bestimmen. Die Versionierung wurde für alle x86-CPU-Modelle implementiert;

  • Der SSH-Blocktreiber wurde aus der Verwendung entfernt libssh2 auf libssh;
  • Der virtio-gpu-Treiber (im Rahmen des Projekts entwickelte virtuelle GPU). Virgil) Unterstützung für das Verschieben von 2D-/3D-Rendering-Vorgängen in einen externen vhost-user-Prozess (z. B. vhost-user-gpu) hinzugefügt;
  • Der ARM-Architektur-Emulator hat Unterstützung für die ARMv8.5-RNG-Erweiterung zum Generieren von Pseudozufallszahlen hinzugefügt. Die Unterstützung der FPU-Emulation wurde für Chips der Cortex-M-Familie implementiert und Probleme mit der FPU-Emulation für Cortex-R5F wurden behoben. Es wurde ein neues System zum Festlegen von Build-Optionen vorgeschlagen, das im Kconfig-Stil entworfen wurde. Für SoC Exynos4210 wurde Unterstützung für PL330 DMA-Controller hinzugefügt;
  • Der MIPS-Architektur-Emulator hat die Unterstützung für MSA ASE-Anweisungen bei Verwendung der Big-Endian-Bytereihenfolge verbessert und die Handhabung von Divisionen durch Null-Fällen an Referenzhardware angepasst. Die Leistung der Emulation von MSA-Anweisungen für Ganzzahlberechnungen und Permutationsoperationen wurde erhöht;
  • Der PowerPC-Architektur-Emulator unterstützt jetzt die Weiterleitung an NVIDIA V100/NVLink2-GPUs mithilfe von VFIO. Für pseries wurde eine Beschleunigung der XIVE-Interrupt-Controller-Emulation implementiert und Unterstützung für Hot-Plugging von PCI-Brücken hinzugefügt. Es wurden Optimierungen an der Emulation von Vektoranweisungen (Altivec/VSX) vorgenommen;
  • Dem RISC-V-Architektur-Emulator wurde ein neues Hardwaremodell hinzugefügt – „Spike“. Unterstützung für ISA 1.11.0 hinzugefügt. Die 32-Bit-Systemaufruf-ABI wurde verbessert, die Behandlung ungültiger Anweisungen wurde verbessert und der integrierte Debugger wurde verbessert. Unterstützung für CPU-Topologie im Gerätebaum hinzugefügt;
  • Der s390-Architektur-Emulator hat Unterstützung für die Emulation aller Vektoranweisungen der „Vector Facility“-Gruppe hinzugefügt und zusätzliche Elemente zur Unterstützung von Gen15-Systemen hinzugefügt (einschließlich zusätzlicher Unterstützung für die AP Queue Interruption Facility für vfio-ap). BIOS-Unterstützung für das Booten von ECKD DASD implementiert, das über vfio-ccw an das Gastsystem gebunden ist;
  • Im SPARC-Architektur-Emulator für sun4m-Systeme wurden Probleme mit der Verwendung des „-vga none“-Flags für OpenBIOS behoben;
  • Der Prozessoremulator der Tensilica Xtensa-Familie umfasst Optionen für MPU (Memory Protection Unit) und exklusiven Zugriff;
  • Dem Befehl „qemu-img Convert“ wurde die Option „-salvage“ hinzugefügt, um den Absturz des Bildkonvertierungsprozesses bei E/A-Fehlern zu verhindern (kann beispielsweise zum Wiederherstellen teilweise beschädigter qcow2-Dateien verwendet werden). In einer Mannschaft
    „qemu-img rebase“ funktioniert, wenn noch keine Sicherungsdatei für die Eingabedatei erstellt wurde;

  • Es wurde die Möglichkeit hinzugefügt, mithilfe der „Semihosting“-Technologie organisierte Ausgaben (ermöglicht dem emulierten Gerät, stdout, stderr und stdin zum Erstellen von Dateien auf der Hostseite zu verwenden) an das Chardev-Backend umzuleiten („-semihosting-config enable=on,target=native ,chardev=[ ID]");
  • Unterstützung für das seSparse-Subformat im schreibgeschützten Modus im VMDK-Blocktreiber hinzugefügt;
  • Unterstützung für den SiFive GPIO-Controller im GPIO-Emulationstreiber hinzugefügt.

Source: opennet.ru

Kommentar hinzufügen