QEMU

Screenshot der Software:
QEMU
Softwarebeschreibung:
Version: 2.12.0 Aktualisiert
Upload-Datum: 22 Jun 18
Entwickler: Fabrice Bellard
Lizenz: Frei
Popularität: 51

Rating: nan/5 (Total Votes: 0)

QEMU ist eine quelloffene und sehr schnelle Virtualisierungssoftware, die sich auf dynamische Übersetzung konzentriert, um eine vernünftige Leistung zu erzielen und gleichzeitig leicht auf neue Host-CPUs (Prozessoren) portiert werden kann.


Ein leistungsfähiger Maschinenemulator und Virtualisierung

Es ist auch als ein Maschinenemulator bekannt, der entwickelt wurde, um ein vollständiges System einschließlich eines Prozessors und seiner Peripheriegeräte zu emulieren. Der Emulationsteil unterstützt Betriebssysteme und Programme, die für eine einzelne Hardwareplattform erstellt wurden, aber auf einem anderen Computer mit einer anderen Architektur ausgeführt werden.

Wenn andererseits die Anwendung als ein Virtualisierer verwendet wird, kann sie fast native Leistungen erzielen, indem der Gastcode direkt auf dem Host-Prozessor abläuft. Es unterstützt den Xen-Hypervisor und das KVM-Kernelmodul (Kernel Virtual Machine).


Unterstützt die Virtualisierung zahlreicher Hardware-Plattformen

Wenn KVM bevorzugt wird, kann die Anwendung x86- (32-Bit-), s390-, PowerPC-, ARM-, m68k-, MIPS-, CRIS-, Microblaze-, MIPSEL- oder32- und SPARC-Maschinen virtualisieren. Es kann die Windows XP-, FreeDOS- und SunOS-Systeme sowie Virtio, USB-Root-Hubs, Netzwerk-, Eingabe-, Video- und Speichergeräte emulieren.

Nach VirtualBox und VMware ist QEMU die drittgrößte Virtualisierungssoftware für Linux-Plattformen, aber die erste und mächtigste für das Open-Source-Ökosystem. Sein Hauptmerkmal ist die Fähigkeit, als native virtuelle Maschine auf 64-Bit- oder 32-Bit-Architekturen oder als reiner Emulator zu laufen.


Unterstützte Betriebssysteme

Es handelt sich um eine Befehlszeilensoftware, die auf Linux-basierten Betriebssystemen sowie Microsoft Windows und verschiedenen UNIX-Varianten ausgeführt wird. Ein Quellarchiv wird im dedizierten Download-Bereich bereitgestellt, so dass Benutzer das Programm in jeder Linux-Distribution sowie auf OpenBSD-, Solaris-, AIX-, MinGW- und Cygwin-Systemen konfigurieren, kompilieren und installieren können.


Endeffekt

Unabhängig davon, ob Sie Software testen, verschiedene Betriebssysteme ausprobieren oder nur Anwendungen ausführen möchten, die nicht auf Ihrer Plattform unterstützt werden, bietet QEMU Benutzern eine der schnellsten Virtualisierungs- und Emulator-Maschinen.

Was ist neu in dieser Version:

  • Systememulation:
  • Inkompatible Änderungen:
  • Die Anzahl der zulässigen PCI-Host-Bridges für die pSeries-Maschine wurde von 256 auf 31 reduziert (mehr kann durch manuelle Einrichtung von MMIO-Fenstern konfiguriert werden).
  • Die Unterstützung für tftp: // in der Blockebene wurde entfernt, da dies für Dateien, die größer als 256 KB sind, für immer unterbrochen wurde.
  • Zukünftige inkompatible Änderungen:
  • Drei Optionen verwenden unterschiedliche Namen in der Befehlszeile und in der Konfigurationsdatei. Insbesondere:
  • Die & rdquo; acpi & rdquo; Der Konfigurationsdateiabschnitt stimmt mit der Befehlszeilenoption "acpitable";
  • überein
  • Die "boot-opts" Der Konfigurationsdateiabschnitt entspricht der Befehlszeilenoption "boot";
  • Die & quot; smp-opts & quot; Der Konfigurationsdateiabschnitt stimmt mit der Befehlszeilenoption & quot; smp & quot;.
  • überein
  • -readconfig standardisiert den Namen für die Befehlszeilenoption.
  • Das Verhalten der automatischen Berechnung der SMP-Topologie, wenn einige SMP-Topologieoptionen für -smp weggelassen werden (Sockets, Kerne, Threads), wird sich in Zukunft ändern. Wenn Gast-ABI während der Verwendung der SMP-Topologieoptionen bei Upgrades beibehalten werden muss, sollten Benutzer entweder alle Optionen explizit festlegen (Sockets, Kerne, Threads) oder alle davon auslassen.
  • Geräte "allwinner-a10", "pc87312", "ssi-sd", wird mit expliziten Eigenschaften anstatt implizit konfiguriert. Dies wird sich wahrscheinlich nicht auf die Benutzer auswirken.
  • Der QMP-Befehl blockdev-add ist noch in Arbeit. Es unterstützt nicht alle Blocktreiber, es fehlt ein passender blockdev-del und mehr. Es könnte sich inkompatibel ändern.
  • Für x86, Spezifizieren eines CPUID-Features mit beiden & quot; + feature / -feature & quot; und & quot; Merkmal = ein / aus & quot; wird eine Warnung verursachen. Das aktuelle Verhalten für diese Kombination ("+ feature / -feature" gewinnt gegenüber "feature = on / off") wird so geändert, dass "+ feature" und & quot; -Funktion & quot; sind Synonyme für & quot; feature = on & quot; und & quot; Merkmal = aus & quot; respektive).
  • ARM:
  • Verbesserungen am Aspeed-Board.
  • Unterstützung für HLT-Semihosting-Traps im AArch32-Modus (sowohl ARM als auch Thumb).
  • Die ACPI-Tabellen für die & quot; virt & quot; Maschinentyp unterstützt ITS.
  • Das Cadence GEM-Gerät unterstützt nun mehrere Prioritätswarteschlangen über die Eigenschaft num-priority-queues.
  • Die STM32F2xx-Karte (Netduino 2) enthält jetzt ADC- und SPI-Geräte.
  • MIPS:
  • Unterstützung für 24KEc CPUs.
  • PowerPC:
  • Unterstützung für POWER9 CPUs.
  • Verbesserungen für das neue & quot; powernv & quot; Plattform.
  • pSeries:
  • PCI-Host-Bridges können NUMA-Knoten zugeordnet werden.
  • Unterstützung für mehr als 1 TiB des Gastspeichers.
  • Unterstützung für mehr als 64 GiB MMIO-Fenster in einer PCI-Host-Bridge.
  • Unterstützung für das & quot; -Prom-env & quot; Parameter
  • s390:
  • Unterstützung für CPU-Modelle.
  • Unterstützung für virtio-ccw Revision 2.
  • x86:
  • Unterstützung für mehrere neue CPUID-Funktionen im Zusammenhang mit AVX-512-Befehlssatzerweiterungen.
  • Die emulierte IOAPIC (die von TCG verwendet wird, und mit KVM, wenn die Option "-machine kernel_irqchip" den Wert "off" oder "split" hat) nimmt jetzt standardmäßig die Version 0x20 an, die eine direkte Ende- Unterbrechungsnachrichten.
  • Unterstützung für den erweiterten Interrupt-Modus (EIM) im Gerät intel_iommu. EIM erfordert KVM (Linux v4.7 oder neuer, für x2APIC-Unterstützung) und "-machine kernel-irqchip = split"; Es wird automatisch aktiviert, wenn die Neuzuweisung von Interrupts aktiviert ist (& quot; -machine kernel-irqchip = split -device intel_iommu, intremap = on & quot;).
  • Unterstützung von bis zu 288 CPUs mit den Q35-Maschinentypen. 256 oder mehr CPUs werden nur unterstützt, wenn IOMMU und EIM aktiviert sind.
  • Xen:
  • Unterstützung für das Entfernen der SCSI-Festplatte.
  • Unterstützung für SUSE xenlinux-kompatibles Gerät entfernen.
  • Geräteemulation und -zuweisung:
  • QEMU enthält jetzt ein generisches Loader-Pseudogerät, mit dem Sie beim Start mehrere Bilder oder Werte in den Speicher laden können. Dieses Gerät ist in docs / generic-loader.txt dokumentiert.
  • ACPI:
  • Unterstützung für das Hotplugging von NVDIMM-Geräten (_FIT)
  • Netzwerkgeräte:
  • Unterstützung für Fehlertoleranz basierend auf grobkörnigem Lock-Stepping (COLO).
  • PCI / PCIe:
  • Das Beispiel-EDU-Gerät unterstützt jetzt MSI.
  • Die PCI Express Guidelines-Dokumentation wurde für Hinweise zur Topologie und PCI zu PCIe hinzugefügt.
  • virtio:
  • Neues Gerät vhost-vsock.
  • Anfängliche Unterstützung für die einwandfreie Behandlung von Gastfehlern (d. h. QEMU sollte nicht bei Gastfehlern beendet werden).
  • Unterstützung für neues virtio-crypto-Gerät.
  • Xen:
  • Unterstützung für die Erteilungsversion.
  • Crypto-Subsystem:
  • Unterstützung für mehr Hash-Algorithmen für PBKDF.
  • Unterstützung für den CTR-Modus.
  • GUI:
  • SPICE kann reines OpenGL-Rendering verwenden, wenn & quot; gl = on & quot; ist angegeben.
  • Monitor:
  • Migration:
  • Unterstützung für Fehlertoleranz basierend auf grobkörnigem Lock-Stepping (COLO).
  • Netzwerk:
  • Geräte und Werkzeuge blockieren:
  • Weitere QMP-Befehle unterstützen Knotenname (blockstream, block-commit, blockdev-backup, blockdev-mirror, blockdev-snapshot-delete-internes-sync, blockdev-snapshot-internes-sync, change-backing-file , Laufwerk-Backup, Laufwerk-Spiegel, Nbd-Server-Add).
  • Das Ereignis BLOCK_IO_ERROR enthält jetzt den Knotennamen.
  • Weitere QMP-Befehle akzeptieren Gerätemodellnamen (block_set_io_throttle, blockdev-change-medium, eject, x-blockdev-remove-medium, x-blockdev-insert-medium, blockdev-open-tray, blockdev-close-tray)
  • Das DEVICE_TRAY_MOVED-Ereignis enthält jetzt die Geräte-ID.
  • Die Beschränkung gilt jetzt nur für das Gastgerät und nicht zum Blockieren von Jobs oder des NBD-Servers.
  • drive-backup und blockdev-backup unterstützen das Schreiben von Backups im komprimierten Format.
  • Das LUKS-Format kann jetzt die PBKDF-Iterationszahl konfigurieren.
  • block-stream unterstützt das Streaming von einer Sicherungsdatei zu einer anderen Sicherungsdatei.
  • Unterstützung für die Replikation, für die Fehlertoleranz für grobkörnige Lock-Stepping (COLO).
  • Neu & quot; dd & quot; subcomamand von qemu-img.
  • Der DMG-Treiber kann in einen separaten Treiber kompiliert werden, um QEMUs Abhängigkeit von libbz2 optional zu machen.
  • Unterstützung für iSER in QEMUs iSCSI-Initiator über iser: // URI.
  • Der NBD-Client und -Server unterstützt die Erweiterung NBD_CMD_WRITE_ZEROES.
  • Rohbilder unterstützen & quot; Offset & quot; und & quot; Größe & quot; Optionen, um nur auf einen Teil der Datei oder des Geräts zuzugreifen.
  • Verfolgung:
  • Neues Tracing-Backend "syslog".
  • Unterstützung für mehrere & quot; -d Ablaufverfolgung: PATTERN & quot; Befehlszeilenargumente.
  • CLI-Optionen:
  • Benutzermodusemulation
  • Entfernte Zielunterstützung
  • Das Ziel unicore32-linux-user hat für diese Architektur einen anderen Systemaufruf ABI von mainline Linux implementiert. Unterstützung dafür wurde gelöscht.
  • Neue Funktionalität:
  • Zusätzliche Unterstützung für mehr Systemaufrufe, einschließlich preadv, pwritev, syslog.
  • Größere Skalierbarkeitsverbesserungen für Multithread-Programme (ARM, SPARC, x86).
  • QEMU kann nun Fence- und Cmpxchg-Operationen verstehen und generieren.
  • TCG:
  • Neue TCG-Grundelemente wurden hinzugefügt, um Architektur-Synchronisationsanweisungen (z. B. Atomics, LL / SC, LOCK-Präfixe) sicher zu modellieren. arm-, aarch64-, alpha- und x86-ziele verwenden diese primitiven jetzt für Multithread-Linux-Benutzerprogramme. TCG-Zielbetreuer werden ermutigt, ihre Front-Ends zu portieren, um die neuen Einrichtungen zu nutzen.
  • Die TCG-Backends geben jetzt bei der Ausführung von Multi-Thread-Programmen entsprechende Barrier-Anweisungen für Frontend-Barrieren aus. Das Emulieren einer stark geordneten Architektur (z. B. x86) auf einer schwach geordneten Architektur (z. B. ARM oder POWER) funktioniert jedoch noch nicht.
  • tb_flush () ist schließlich Thread-sicher, was bedeutet, dass Multithread-Programme weniger wahrscheinlich abstürzen, wenn der Übersetzungspuffer zurückgesetzt wird
  • Sperrkonflikt in der Haupt-CPU-Laufschleife wurde reduziert, um die Leistung für Multithread-Code zu verbessern
  • mehrere Rassen wurden identifiziert und behoben
  • Viele der TCG-Arbeiten fusionierten in diesem Zyklus mit den Voraussetzungen für die Unterstützung der Multi-Threaded-System-Emulation (MTTCG). Während erwartet wird, dass die volle MTTCG-Unterstützung im nächsten Entwicklungszyklus zusammengeführt wird, werden Multi-Thread-Linux-Benutzerprogramme bereits von dieser Arbeit profitieren.

Was ist neu in der Version:

  • Systememulation:
  • Inkompatible Änderungen:
  • Die Anzahl der zulässigen PCI-Host-Bridges für die pSeries-Maschine wurde von 256 auf 31 reduziert (mehr kann durch manuelle Einrichtung von MMIO-Fenstern konfiguriert werden).
  • Die Unterstützung für tftp: // in der Blockebene wurde entfernt, da dies für Dateien, die größer als 256 KB sind, für immer unterbrochen wurde.
  • Zukünftige inkompatible Änderungen:
  • Drei Optionen verwenden unterschiedliche Namen in der Befehlszeile und in der Konfigurationsdatei. Insbesondere:
  • Der Konfigurationsabschnitt "acpi" stimmt mit der Befehlszeilenoption "acpitable";
  • überein
  • Der Konfigurationsabschnitt "boot-opts" stimmt mit der Befehlszeilenoption "boot";
  • überein
  • Der Konfigurationsabschnitt "smp-opts" stimmt mit der Befehlszeilenoption "smp" überein.
  • -readconfig standardisiert den Namen für die Befehlszeilenoption.
  • Das Verhalten der automatischen Berechnung der SMP-Topologie, wenn einige SMP-Topologieoptionen für -smp weggelassen werden (Sockets, Kerne, Threads), wird sich in Zukunft ändern. Wenn Gast-ABI während der Verwendung der SMP-Topologieoptionen bei Upgrades beibehalten werden muss, sollten Benutzer entweder alle Optionen explizit festlegen (Sockets, Kerne, Threads) oder alle davon auslassen.
  • Die Geräte "allwinner-a10", "pc87312", "ssi-sd" werden mit expliziten Eigenschaften anstelle von implizit konfiguriert. Dies wird sich wahrscheinlich nicht auf die Benutzer auswirken.
  • Der QMP-Befehl blockdev-add ist noch in Arbeit. Es unterstützt nicht alle Blocktreiber, es fehlt ein passender blockdev-del und mehr. Es könnte sich inkompatibel ändern.
  • Bei x86 verursacht die Angabe einer CPUID-Funktion mit "+ feature / -feature" und "feature = on / off" eine Warnung. Das aktuelle Verhalten für diese Kombination ("+ feature / -feature" gewinnt gegenüber "feature = on / off") wird so geändert, dass "+ feature" und "-feature" Synonyme für "feature = on" und "feature" sind = aus "jeweils).
  • ARM:
  • Verbesserungen am Aspeed-Board.
  • Unterstützung für HLT-Semihosting-Traps im AArch32-Modus (sowohl ARM als auch Thumb).
  • Die ACPI-Tabellen für den Maschinentyp "virt" unterstützen ITS.
  • Das Cadence GEM-Gerät unterstützt nun mehrere Prioritätswarteschlangen über die Eigenschaft num-priority-queues.
  • Die STM32F2xx-Karte (Netduino 2) enthält jetzt ADC- und SPI-Geräte.
  • MIPS:
  • Unterstützung für 24KEc CPUs.
  • PowerPC:
  • Unterstützung für POWER9 CPUs.
  • Verbesserungen für die neue "powernv" -Plattform.
  • pSeries:
  • PCI-Host-Bridges können NUMA-Knoten zugeordnet werden.
  • Unterstützung für mehr als 1 TiB des Gastspeichers.
  • Unterstützung für mehr als 64 GiB MMIO-Fenster in einer PCI-Host-Bridge.
  • Unterstützung für den Parameter "-prom-env"
  • s390:
  • Unterstützung für CPU-Modelle.
  • Unterstützung für virtio-ccw Revision 2.
  • x86:
  • Unterstützung für mehrere neue CPUID-Funktionen im Zusammenhang mit AVX-512-Befehlssatzerweiterungen.
  • Die emulierte IOAPIC (die von TCG verwendet wird, und mit KVM, wenn die Option "-machine kernel_irqchip" den Wert "off" oder "split" hat) hat jetzt standardmäßig die Version 0x20, die gerichtete Interrupt-Nachrichten unterstützt.
  • Unterstützung für den erweiterten Interrupt-Modus (EIM) im Gerät intel_iommu. EIM erfordert KVM (Linux v4.7 oder neuer, für x2APIC-Unterstützung) und "-machine kernel-irqchip = split"; Es wird automatisch aktiviert, wenn die Neuzuordnung von Interrupts aktiviert ist ("-machine kernel-irqchip = split -device intel_iommu, intremap = on").
  • Unterstützung von bis zu 288 CPUs mit den Q35-Maschinentypen. 256 oder mehr CPUs werden nur unterstützt, wenn IOMMU und EIM aktiviert sind.
  • Xen:
  • Unterstützung für das Entfernen der SCSI-Festplatte.
  • Unterstützung für SUSE xenlinux-kompatibles Gerät entfernen.
  • Geräteemulation und -zuweisung:
  • QEMU enthält jetzt ein generisches Loader-Pseudogerät, mit dem Sie beim Start mehrere Bilder oder Werte in den Speicher laden können. Dieses Gerät ist in docs / generic-loader.txt dokumentiert.
  • ACPI:
  • Unterstützung für das Hotplugging von NVDIMM-Geräten (_FIT)
  • Netzwerkgeräte:
  • Unterstützung für Fehlertoleranz basierend auf grobkörnigem Lock-Stepping (COLO).
  • PCI / PCIe:
  • Das Beispiel-EDU-Gerät unterstützt jetzt MSI.
  • Die PCI Express Guidelines-Dokumentation wurde für Hinweise zur Topologie und PCI zu PCIe hinzugefügt.
  • virtio:
  • Neues Gerät vhost-vsock.
  • Anfängliche Unterstützung für die einwandfreie Behandlung von Gastfehlern (d. h. QEMU sollte nicht bei Gastfehlern beendet werden).
  • Unterstützung für neues virtio-crypto-Gerät.
  • Xen:
  • Unterstützung für die Erteilungsversion.
  • Crypto-Subsystem:
  • Unterstützung für mehr Hash-Algorithmen für PBKDF.
  • Unterstützung für den CTR-Modus.
  • GUI:
  • SPICE kann reines OpenGL-Rendering verwenden, wenn "gl = on" angegeben ist.
  • Monitor:
  • Migration:
  • Unterstützung für Fehlertoleranz basierend auf grobkörnigem Lock-Stepping (COLO).
  • Netzwerk:
  • Geräte und Werkzeuge blockieren:
  • Weitere QMP-Befehle unterstützen Knotenname (blockstream, block-commit, blockdev-backup, blockdev-mirror, blockdev-snapshot-delete-internes-sync, blockdev-snapshot-internes-sync, change-backing-file , Laufwerk-Backup, Laufwerk-Spiegel, Nbd-Server-Add).
  • Das Ereignis BLOCK_IO_ERROR enthält jetzt den Knotennamen.
  • Weitere QMP-Befehle akzeptieren Gerätemodellnamen (block_set_io_throttle, blockdev-change-medium, eject, x-blockdev-remove-medium, x-blockdev-insert-medium, blockdev-open-tray, blockdev-close-tray)
  • Das DEVICE_TRAY_MOVED-Ereignis enthält jetzt die Geräte-ID.
  • Die Beschränkung gilt jetzt nur für das Gastgerät und nicht zum Blockieren von Jobs oder des NBD-Servers.
  • drive-backup und blockdev-backup unterstützen das Schreiben von Backups im komprimierten Format.
  • Das LUKS-Format kann jetzt die PBKDF-Iterationszahl konfigurieren.
  • block-stream unterstützt das Streaming von einer Sicherungsdatei zu einer anderen Sicherungsdatei.
  • Unterstützung für die Replikation, für die Fehlertoleranz für grobkörnige Lock-Stepping (COLO).
  • Neuer "dd" Subcomand von qemu-img.
  • Der DMG-Treiber kann in einen separaten Treiber kompiliert werden, um QEMUs Abhängigkeit von libbz2 optional zu machen.
  • Unterstützung für iSER in QEMUs iSCSI-Initiator über iser: // URI.
  • Der NBD-Client und -Server unterstützt die Erweiterung NBD_CMD_WRITE_ZEROES.
  • Rohbilder unterstützen die Optionen "Offset" und "Größe", um nur auf einen Teil der Datei oder des Geräts zuzugreifen.
  • Verfolgung:
  • Neues Tracing-Backend "syslog".
  • Unterstützung für mehrere Befehlszeilenargumente "-d trace: PATTERN".
  • CLI-Optionen:
  • Benutzermodusemulation
  • Entfernte Zielunterstützung
  • Das Ziel unicore32-linux-user hat für diese Architektur einen anderen Systemaufruf ABI von mainline Linux implementiert. Unterstützung dafür wurde gelöscht.
  • Neue Funktionalität:
  • Zusätzliche Unterstützung für mehr Systemaufrufe, einschließlich preadv, pwritev, syslog.
  • Größere Skalierbarkeitsverbesserungen für Multithread-Programme (ARM, SPARC, x86).
  • QEMU kann nun Fence- und Cmpxchg-Operationen verstehen und generieren.
  • TCG:
  • Neue TCG-Grundelemente wurden hinzugefügt, um Architektur-Synchronisationsanweisungen (z. B. Atomics, LL / SC, LOCK-Präfixe) sicher zu modellieren. arm-, aarch64-, alpha- und x86-ziele verwenden diese primitiven jetzt für Multithread-Linux-Benutzerprogramme. TCG-Zielbetreuer werden ermutigt, ihre Front-Ends zu portieren, um die neuen Einrichtungen zu nutzen.
  • Die TCG-Backends geben jetzt bei der Ausführung von Multi-Thread-Programmen entsprechende Barrier-Anweisungen für Frontend-Barrieren aus. Das Emulieren einer stark geordneten Architektur (z. B. x86) auf einer schwach geordneten Architektur (z. B. ARM oder POWER) funktioniert jedoch noch nicht.
  • tb_flush () ist schließlich Thread-sicher, was bedeutet, dass Multithread-Programme weniger wahrscheinlich abstürzen, wenn der Übersetzungspuffer zurückgesetzt wird
  • Sperrkonflikt in der Haupt-CPU-Laufschleife wurde reduziert, um die Leistung für Multithread-Code zu verbessern
  • mehrere Rassen wurden identifiziert und behoben
  • Viele der TCG-Arbeiten fusionierten in diesem Zyklus mit den Voraussetzungen für die Unterstützung der Multi-Threaded-System-Emulation (MTTCG). Während erwartet wird, dass die volle MTTCG-Unterstützung im nächsten Entwicklungszyklus zusammengeführt wird, werden Multi-Thread-Linux-Benutzerprogramme bereits von dieser Arbeit profitieren.

Was ist neu in Version 2.9.0:

  • Systememulation:
  • Inkompatible Änderungen:
  • Die Anzahl der zulässigen PCI-Host-Bridges für die pSeries-Maschine wurde von 256 auf 31 reduziert (mehr kann durch manuelle Einrichtung von MMIO-Fenstern konfiguriert werden).
  • Die Unterstützung für tftp: // in der Blockebene wurde entfernt, da dies für Dateien, die größer als 256 KB sind, für immer unterbrochen wurde.
  • Zukünftige inkompatible Änderungen:
  • Drei Optionen verwenden unterschiedliche Namen in der Befehlszeile und in der Konfigurationsdatei. Insbesondere:
  • Der Konfigurationsabschnitt "acpi" stimmt mit der Befehlszeilenoption "acpitable";
  • überein
  • Der Konfigurationsabschnitt "boot-opts" stimmt mit der Befehlszeilenoption "boot";
  • überein
  • Der Konfigurationsabschnitt "smp-opts" stimmt mit der Befehlszeilenoption "smp" überein.
  • -readconfig standardisiert den Namen für die Befehlszeilenoption.
  • Das Verhalten der automatischen Berechnung der SMP-Topologie, wenn einige SMP-Topologieoptionen für -smp weggelassen werden (Sockets, Kerne, Threads), wird sich in Zukunft ändern. Wenn Gast-ABI während der Verwendung der SMP-Topologieoptionen bei Upgrades beibehalten werden muss, sollten Benutzer entweder alle Optionen explizit festlegen (Sockets, Kerne, Threads) oder alle davon auslassen.
  • Die Geräte "allwinner-a10", "pc87312", "ssi-sd" werden mit expliziten Eigenschaften anstelle von implizit konfiguriert. Dies wird sich wahrscheinlich nicht auf die Benutzer auswirken.
  • Der QMP-Befehl blockdev-add ist noch in Arbeit. Es unterstützt nicht alle Blocktreiber, es fehlt ein passender blockdev-del und mehr. Es könnte sich inkompatibel ändern.
  • Bei x86 verursacht die Angabe einer CPUID-Funktion mit "+ feature / -feature" und "feature = on / off" eine Warnung. Das aktuelle Verhalten für diese Kombination ("+ feature / -feature" gewinnt gegenüber "feature = on / off") wird so geändert, dass "+ feature" und "-feature" Synonyme für "feature = on" und "feature" sind = aus "jeweils).
  • ARM:
  • Verbesserungen am Aspeed-Board.
  • Unterstützung für HLT-Semihosting-Traps im AArch32-Modus (sowohl ARM als auch Thumb).
  • Die ACPI-Tabellen für den Maschinentyp "virt" unterstützen ITS.
  • Das Cadence GEM-Gerät unterstützt nun mehrere Prioritätswarteschlangen über die Eigenschaft num-priority-queues.
  • Die STM32F2xx-Karte (Netduino 2) enthält jetzt ADC- und SPI-Geräte.
  • MIPS:
  • Unterstützung für 24KEc CPUs.
  • PowerPC:
  • Unterstützung für POWER9 CPUs.
  • Verbesserungen für die neue "powernv" -Plattform.
  • pSeries:
  • PCI-Host-Bridges können NUMA-Knoten zugeordnet werden.
  • Unterstützung für mehr als 1 TiB des Gastspeichers.
  • Unterstützung für mehr als 64 GiB MMIO-Fenster in einer PCI-Host-Bridge.
  • Unterstützung für den Parameter "-prom-env"
  • s390:
  • Unterstützung für CPU-Modelle.
  • Unterstützung für virtio-ccw Revision 2.
  • x86:
  • Unterstützung für mehrere neue CPUID-Funktionen im Zusammenhang mit AVX-512-Befehlssatzerweiterungen.
  • Die emulierte IOAPIC (die von TCG verwendet wird, und mit KVM, wenn die Option "-machine kernel_irqchip" den Wert "off" oder "split" hat) hat jetzt standardmäßig die Version 0x20, die gerichtete Interrupt-Nachrichten unterstützt.
  • Unterstützung für den erweiterten Interrupt-Modus (EIM) im Gerät intel_iommu. EIM erfordert KVM (Linux v4.7 oder neuer, für x2APIC-Unterstützung) und "-machine kernel-irqchip = split"; Es wird automatisch aktiviert, wenn die Neuzuordnung von Interrupts aktiviert ist ("-machine kernel-irqchip = split -device intel_iommu, intremap = on").
  • Unterstützung von bis zu 288 CPUs mit den Q35-Maschinentypen. 256 oder mehr CPUs werden nur unterstützt, wenn IOMMU und EIM aktiviert sind.
  • Xen:
  • Unterstützung für das Entfernen der SCSI-Festplatte.
  • Unterstützung für SUSE xenlinux-kompatibles Gerät entfernen.
  • Geräteemulation und -zuweisung:
  • QEMU enthält jetzt ein generisches Loader-Pseudogerät, mit dem Sie beim Start mehrere Bilder oder Werte in den Speicher laden können. Dieses Gerät ist in docs / generic-loader.txt dokumentiert.
  • ACPI:
  • Unterstützung für das Hotplugging von NVDIMM-Geräten (_FIT)
  • Netzwerkgeräte:
  • Unterstützung für Fehlertoleranz basierend auf grobkörnigem Lock-Stepping (COLO).
  • PCI / PCIe:
  • Das Beispiel-EDU-Gerät unterstützt jetzt MSI.
  • Die PCI Express Guidelines-Dokumentation wurde für Hinweise zur Topologie und PCI zu PCIe hinzugefügt.
  • virtio:
  • Neues Gerät vhost-vsock.
  • Anfängliche Unterstützung für die einwandfreie Behandlung von Gastfehlern (d. h. QEMU sollte nicht bei Gastfehlern beendet werden).
  • Unterstützung für neues virtio-crypto-Gerät.
  • Xen:
  • Unterstützung für die Erteilungsversion.
  • Crypto-Subsystem:
  • Unterstützung für mehr Hash-Algorithmen für PBKDF.
  • Unterstützung für den CTR-Modus.
  • GUI:
  • SPICE kann reines OpenGL-Rendering verwenden, wenn "gl = on" angegeben ist.
  • Monitor:
  • Migration:
  • Unterstützung für Fehlertoleranz basierend auf grobkörnigem Lock-Stepping (COLO).
  • Netzwerk:
  • Geräte und Werkzeuge blockieren:
  • Weitere QMP-Befehle unterstützen Knotenname (blockstream, block-commit, blockdev-backup, blockdev-mirror, blockdev-snapshot-delete-internes-sync, blockdev-snapshot-internes-sync, change-backing-file , Laufwerk-Backup, Laufwerk-Spiegel, Nbd-Server-Add).
  • Das Ereignis BLOCK_IO_ERROR enthält jetzt den Knotennamen.
  • Weitere QMP-Befehle akzeptieren Gerätemodellnamen (block_set_io_throttle, blockdev-change-medium, eject, x-blockdev-remove-medium, x-blockdev-insert-medium, blockdev-open-tray, blockdev-close-tray)
  • Das DEVICE_TRAY_MOVED-Ereignis enthält jetzt die Geräte-ID.
  • Die Beschränkung gilt jetzt nur für das Gastgerät und nicht zum Blockieren von Jobs oder des NBD-Servers.
  • drive-backup und blockdev-backup unterstützen das Schreiben von Backups im komprimierten Format.
  • Das LUKS-Format kann jetzt die PBKDF-Iterationszahl konfigurieren.
  • block-stream unterstützt das Streaming von einer Sicherungsdatei zu einer anderen Sicherungsdatei.
  • Unterstützung für die Replikation, für die Fehlertoleranz für grobkörnige Lock-Stepping (COLO).
  • Neuer "dd" Subcomand von qemu-img.
  • Der DMG-Treiber kann in einen separaten Treiber kompiliert werden, um QEMUs Abhängigkeit von libbz2 optional zu machen.
  • Unterstützung für iSER in QEMUs iSCSI-Initiator über iser: // URI.
  • Der NBD-Client und -Server unterstützt die Erweiterung NBD_CMD_WRITE_ZEROES.
  • Rohbilder unterstützen die Optionen "Offset" und "Größe", um nur auf einen Teil der Datei oder des Geräts zuzugreifen.
  • Verfolgung:
  • Neues Tracing-Backend "syslog".
  • Unterstützung für mehrere Befehlszeilenargumente "-d trace: PATTERN".
  • CLI-Optionen:
  • Benutzermodusemulation
  • Entfernte Zielunterstützung
  • Das Ziel unicore32-linux-user hat für diese Architektur einen anderen Systemaufruf ABI von mainline Linux implementiert. Unterstützung dafür wurde gelöscht.
  • Neue Funktionalität:
  • Zusätzliche Unterstützung für mehr Systemaufrufe, einschließlich preadv, pwritev, syslog.
  • Größere Skalierbarkeitsverbesserungen für Multithread-Programme (ARM, SPARC, x86).
  • QEMU kann nun Fence- und Cmpxchg-Operationen verstehen und generieren.
  • TCG:
  • Neue TCG-Grundelemente wurden hinzugefügt, um Architektur-Synchronisationsanweisungen (z. B. Atomics, LL / SC, LOCK-Präfixe) sicher zu modellieren. arm-, aarch64-, alpha- und x86-ziele verwenden diese primitiven jetzt für Multithread-Linux-Benutzerprogramme. TCG-Zielbetreuer werden ermutigt, ihre Front-Ends zu portieren, um die neuen Einrichtungen zu nutzen.
  • Die TCG-Backends geben jetzt bei der Ausführung von Multithread-Programmen entsprechende Barrierenanweisungen für Frontend-Barrieren aus. Das Emulieren einer stark geordneten Architektur (z. B. x86) auf einer schwach geordneten Architektur (z. B. ARM oder POWER) funktioniert jedoch noch nicht.
  • tb_flush () ist schließlich Thread-sicher, was bedeutet, dass Multithread-Programme weniger wahrscheinlich abstürzen, wenn der Übersetzungspuffer zurückgesetzt wird
  • Sperrkonflikt in der Haupt-CPU-Laufschleife wurde reduziert, um die Leistung für Multithread-Code zu verbessern
  • mehrere Rassen wurden identifiziert und behoben
  • Viele der TCG-Arbeiten fusionierten in diesem Zyklus mit den Voraussetzungen für die Unterstützung der Multi-Threaded-System-Emulation (MTTCG). Während erwartet wird, dass die volle MTTCG-Unterstützung im nächsten Entwicklungszyklus zusammengeführt wird, werden Multi-Thread-Linux-Benutzerprogramme bereits von dieser Arbeit profitieren.

Andere Software von Entwickler Fabrice Bellard

FFmpeg
FFmpeg

17 Aug 18

KQEMU
KQEMU

2 Jun 15

Kommentare zu QEMU

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!