Veröffentlichung des QEMU 4.0-Emulators

Gebildet Projektfreigabe QEMU 4.0. 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.0 wurden mehr als 3100 Änderungen von 220 Entwicklern vorgenommen.

Taste Verbesserungenin QEMU 4.0 hinzugefügt:

  • Dem ARM-Architektur-Emulator wurde Unterstützung für ARMv8+-Befehlserweiterungen hinzugefügt: SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT und BTI. Unterstützung für die Emulation von Musca- und MPS2-Boards hinzugefügt. Verbesserte ARM-PMU-Emulation (Power Management Unit). Zur Plattform virt Möglichkeit zur Nutzung von mehr als 255 GB RAM und Unterstützung für U-Boot-Images vom Typ „noload“ hinzugefügt;

  • Im x86-Architektur-Emulator in der Virtualisierungsbeschleunigungs-Engine HAX (Intel Hardware Accelerated Execution) fügte Unterstützung für POSIX-kompatible Hosts wie Linux und NetBSD hinzu (zuvor wurde nur die Darwin-Plattform unterstützt). Im Q35-Chipsatz-Emulator (ICH9) für die wichtigsten PCIe-Ports können nun optional die in der PCIe 16-Spezifikation definierte maximale Geschwindigkeit (32GT/s) und die Anzahl der Verbindungsleitungen (x4.0) angegeben werden (aus Kompatibilitätsgründen sind es 2.5GT). standardmäßig für ältere QEMU-Maschinentypen installiert (/s und x1). Es ist möglich, Xen-PVH-Images mit der Option „-kernel“ zu laden;
  • Der MIPS-Architektur-Emulator hat Unterstützung für die Multithread-Emulation mit dem klassischen TCG-Codegenerator (Tiny Code Generator) hinzugefügt. Außerdem wurde Unterstützung für die Emulation der CPU I7200 (nanoMIPS32 ISA) und I6500 (MIPS64R6 ISA) hinzugefügt, die Möglichkeit, CPU-Typ-Anfragen mithilfe des QMP (QEMU Management Protocol) zu verarbeiten, und Unterstützung für SAARI- und SAAR-Konfigurationsregister hinzugefügt. Verbesserte Leistung virtueller Maschinen vom Typ Fulong 2E. Aktualisierte Implementierung der Interthread Communication Unit;
  • Im PowerPC-Architektur-Emulator wurde Unterstützung für die Emulation des XIVE-Interrupt-Controllers hinzugefügt, die Unterstützung für POWER9 wurde erweitert und für die P-Serie wurde die Möglichkeit zum Hotplug von PCI-Host-Bridges (PHB, PCI-Host-Bridge) hinzugefügt. Der Schutz vor Spectre- und Meltdown-Angriffen ist standardmäßig aktiviert.
  • Dem RISC-V-Architektur-Emulator wurde Unterstützung für PCI- und USB-Emulation hinzugefügt. Der integrierte Debugging-Server (gdbserver) unterstützt jetzt die Angabe von Registerlisten in XML-Dateien. Unterstützung für die mstatus-Felder TSR, TW und TVM hinzugefügt;
  • Der s390-Architektur-Emulator hat Unterstützung für das z14 GA 2-CPU-Modell sowie Unterstützung für die Emulation von Befehlserweiterungen für Gleitkomma- und Vektoroperationen hinzugefügt. vfio-ap wurde um die Möglichkeit erweitert, Geräte per Hot-Plug anzuschließen.
  • Der Prozessoremulator der Tensilica
  • Die Option „-display Spice-App“ wurde zur grafischen Oberfläche hinzugefügt, um eine Version des Spice-Fernzugriffsclients mit einem ähnlichen Design wie die QEMU GTK-Schnittstelle zu konfigurieren und zu starten.
  • Unterstützung für Zugriffskontrolle mithilfe der Optionen tls-authz/sasl-authz zur VNC-Serverimplementierung hinzugefügt;
  • QMP (QEMU Management Protocol) hat Unterstützung für die zentralisierte/externe (Out-of-Band) Befehlsausführung hinzugefügt und zusätzliche Befehle für die Arbeit mit Blockgeräten implementiert;
  • VFIO wurde eine Implementierung der EDID-Schnittstelle für unterstützte MDevs (Intel vGPUs) hinzugefügt, mit der Sie die Bildschirmauflösung mithilfe der Optionen xres und yres ändern können.
  • Für Xen wurde ein neues „xen-disk“-Gerät hinzugefügt, das unabhängig ein Festplatten-Backend für Xen PV erstellen kann (ohne auf xenstore zuzugreifen). Die Leistung des Xen PV-Festplatten-Backends wurde erhöht und die Möglichkeit zum Ändern der Festplattengröße wurde hinzugefügt;
  • Die Diagnose- und Nachverfolgungsfunktionen wurden in Netzwerkblockgeräten erweitert und die Clientkompatibilität mit problematischen NBD-Serverimplementierungen wurde verbessert. Optionen „--bitmap“, „--list“ und „--tls-authz“ zu qemu-nbd hinzugefügt;
  • Unterstützung für den PCI-IDE-Modus zum emulierten IDE/via-Gerät hinzugefügt;
  • Unterstützung für die Verwendung des lzfse-Algorithmus zum Komprimieren von DMG-Bildern hinzugefügt. Für das qcow2-Format wurde Unterstützung für die Anbindung externer Datendateien hinzugefügt. qcow2-Entpackvorgänge werden in einen separaten Thread verschoben. Unterstützung für den „blockdev-create“-Vorgang in VMDK-Images hinzugefügt;
  • Das virtio-blk-Blockgerät unterstützt jetzt die Operationen DISCARD (Informationen über die Freigabe von Blöcken) und WRITE_ZEROES (einen Bereich logischer Blöcke auf Null setzen).
  • Das pvrdma-Gerät unterstützt RDMA Management Datagram Services (MAD);
  • beigetragen Veränderungen, was eine Verletzung der Abwärtskompatibilität darstellt. Beispielsweise sollten Sie anstelle der Option „handle“ in „-fsdev“ und „-virtfs“ die Optionen „local“ oder „proxy“ verwenden. Die Optionen „-virtioconsole“ (ersetzt durch „-device virtconsole“), „-no-frame“, „-clock“, „-enable-hax“ (ersetzt durch „-accel hax“) wurden entfernt. Gerät „ivshmem“ entfernt (sollte „ivshmem-doorbell“ und „ivshmem-plain“ verwenden). Die Unterstützung für die Erstellung mit SDL1.2 wurde eingestellt (Sie müssen SDL2 verwenden).

Source: opennet.ru

Kommentar hinzufügen