Erscheinung des Emulators QEMU 4.0

Erstellt Projektveröffentlichung QEMU 4.0. Als Emulator ermöglicht QEMU das Ausführen von Programmen, die für eine Hardwareplattform kompiliert wurden, auf einem System mit völlig anderer Architektur, beispielsweise das Ausführen einer Anwendung für ARM auf einem x86-kompatiblen PC. Im Virtualisierungsmodus erreicht QEMU in einer isolierten Umgebung eine nahezu native Codeausführungsleistung durch direkte Befehlsausführung auf der CPU und die Nutzung des Hypervisors Xen oder des KVM-Moduls.

Ursprünglich wurde das Projekt von Fabrice Bellard ins Leben gerufen, um die Ausführung von Linux-Binärdateien, die für die x86-Plattform kompiliert wurden, auf Architekturen zu ermöglichen, die von x86 abweichen. Im Laufe der Jahre wurde die Unterstützung für die vollständige Emulation von 14 Hardwarearchitekturen hinzufügt, und die Anzahl der emulierten Hardwaregeräte hat 400 überschritten. Für die Version 4.0 wurden über 3100 Änderungen von 220 Entwicklern vorgenommen.

Hauptmerkmale Verbesserungen, die in QEMU 4.0 hinzugefügt wurden:

  • Im Emulator der ARM-Architektur wurde die Unterstützung für die ARMv8+-Befehlserweiterungen hinzugefügt: SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth, JSConv, CondM, FRINT und BTI. Die Emulation der „Musca“- und „MPS2“-Plattformen wurde hinzugefügt. Die Emulation des ARM PMU (Power Management Unit) wurde verbessert. In die Plattform virt wurde die Möglichkeit integriert, mehr als 255 GB RAM zu nutzen, sowie die Unterstützung von u-boot-Images des Typs „noload“;
  • Im Emulator der x86-Architektur wurde im Virtualisierungsbeschleunigungs-Engine HAX (Intel Hardware Accelerated Execution) die Unterstützung für POSIX-kompatible Hosts wie Linux und NetBSD hinzugefügt (zuvor wurde nur die Darwin-Plattform unterstützt). Im Emulator des Q35-Chipsatzes (ICH9) kann jetzt optional für die Hauptanschlüsse PCIe die maximale Geschwindigkeit (16GT/s) und die Anzahl der Verbindungen (x32), wie in der PCIe 4.0-Spezifikation festgelegt, angegeben werden (zumindest für ältere Maschinentypen wird standardmäßig 2.5GT/s und x1 gesetzt). Die Möglichkeit wurde geschaffen, Xen PVH-Images mit der Option „-kernel“ zu booten;
  • Im Emulator der MIPS-Architektur wurde die Unterstützung für die Mehrfach-Emulation unter Verwendung des klassischen Code-Generators TCG (Tiny Code Generator) hinzugefügt. Zudem wurde die Emulation der CPUs I7200 (nanoMIPS32 ISA) und I6500 (MIPS64R6 ISA) sowie die Verarbeitung von CPU-Anfragen mit dem QMP (QEMU Management Protocol) unterstützt, und es wurde Unterstützung für die Konfigurationsregister SAARI und SAAR hinzugefügt. Die Verarbeitung von virtuellen Maschinen des Typs Fulong 2E wurde verbessert. Die Implementierung der Interthread Communication Unit wurde aktualisiert;
  • Der PowerPC-Architektur-Emulator unterstützt jetzt die Emulation des Interrupt-Controllers XIVE, hat die Unterstützung für POWER9 erweitert und ermöglicht es der P-Serie, Haupt-PPCI-Brücken (PHB, PCI-Host-Brücke) im laufenden Betrieb anzuschließen. Der Schutz vor Spectre- und Meltdown-Angriffen ist standardmäßig aktiviert.
  • Im RISC-V-Architektur-Emulator wurde die Unterstützung für die Emulation von PCI und USB hinzugefügt. Der integrierte Debugger (gdbserver) unterstützt jetzt das Festlegen von Registerlisten in XML-Dateien. Die Unterstützung für die mstatus-Felder TSR, TW und TVM wurde hinzugefügt.
  • Im s390-Architektur-Emulator wurde die Unterstützung für das CPU-Modell z14 GA 2 sowie für die Emulation von Befehlserweiterungen für Gleitkommaberechnungen und Vektorbetrieb hinzugefügt. In vfio-ap wurde die Möglichkeit für den Hot-Plug von Geräten hinzugefügt.
  • Im Tensilica Xtensa-Prozessor-Emulator wurde die Unterstützung für SMP unter Linux verbessert und die Unterstützung für die FLIX-Erweiterung (Flexible Length Instructions Extension) hinzugefügt.
  • Im grafischen Interface wurde die Option ‘-display spice-app’ hinzugefügt, um eine Client-Variante des Remote-Zugriffs Spice mit einem Erscheinungsbild ähnlich dem GTK-Interface von QEMU zu konfigurieren und zu starten.
  • In die VNC-Server-Implementierung wurde die Unterstützung für die Zugriffskontrolle über die Optionen tls-authz/sasl-authz hinzugefügt.
  • Im QMP (QEMU Management Protocol) wurde die Unterstützung für die zentrale/externe (Out-of-band) Ausführung von Befehlen hinzugefügt und zusätzliche Befehle für die Arbeit mit Blockgeräten implementiert.
  • In VFIO wurde die Implementierung des EDID-Interfaces für unterstützte mdev (Intel vGPU) hinzugefügt, die es ermöglicht, die Bildschirmauflösung mithilfe der Optionen xres und yres zu ändern.
  • Für Xen wurde das neue Gerät ‘xen-disk’ hinzugefügt, das selbstständig einen Disk-Backend für Xen PV (ohne Zugriff auf xenstore) erstellen kann. Die Leistung des Xen PV-Disk-Backends wurde verbessert, und es wurde die Möglichkeit zur Änderung der Festplattengröße hinzugefügt.
  • In den Netzwerk-Blockgeräten wurden die Diagnose- und Nachverfolgungsfunktionen erweitert und die Kompatibilität des Clients mit fehlerhaften Implementierungen des NBD-Servers verbessert. In qemu-nbd wurden die Optionen ‘—bitmap’, ‘—list’ und ‘—tls-authz’ hinzugefügt.
  • In das emulierte Gerät IDE/via wurde die Unterstützung für den PCI-IDE-Modus hinzugefügt.
  • Die Unterstützung für die Verwendung des lzfse-Algorithmus zur Kompression von dmg-Abbildern wurde hinzugefügt. Für das qcow2-Format wurde die Unterstützung für das Anbinden externer Datendateien hinzugefügt. Die Vorgänge zum Entpacken von qcow2 wurden in einen separaten Thread ausgelagert. In den vmdk-Abbildern wurde die Unterstützung für die Operation ‘blockdev-create’ hinzugefügt.
  • Im Blockgerät virtio-blk wurde die Unterstützung für die Operationen DISCARD (Benachrichtigung über die Freigabe von Blöcken) und WRITE_ZEROES (Nullen eines Bereichs logischer Blöcke) hinzugefügt;
  • Im Gerät pvrdma wurde die Unterstützung für RDMA Management Datagram services (MAD) implementiert;
  • Es wurden Änderungen, die die Abwärtskompatibilität beeinträchtigen. Statt der Option „handle“ in „-fsdev“ und „-virtfs“ sollten die Optionen „local“ oder „proxy“ verwendet werden. Die Optionen „-virtioconsole“ (ersetzt durch „-device virtconsole“), „-no-frame“, „-clock“, „-enable-hax“ (ersetzt durch „-accel hax“) wurden entfernt. Das Gerät „ivshmem“ wurde entfernt (es sollten „ivshmem-doorbell“ oder „ivshmem-plain“ verwendet werden). Die Unterstützung für den Build mit SDL1.2 wurde eingestellt (es muss SDL2 verwendet werden).

Quelle: opennet.ru

60GB SSD 8Gb DDR4