QEMU

ソフトウェアのスクリーンショット:
QEMU
ソフトウェアの詳細:
バージョン: 2.12.0 更新
日付のアップロード: 22 Jun 18
開発者: Fabrice Bellard
ライセンス: 無料
人気: 51

Rating: nan/5 (Total Votes: 0)

QEMUは、オープンソースで非常に高速な仮想化ソフトウェアであり、新しいホストCPU(プロセッサ)への移植が容易である一方で、妥当なパフォーマンスを達成するための動的変換に重点を置いています。
強力なマシンエミュレータと仮想化ツール

プロセッサーとその周辺機器を含むフルシステムをエミュレートするように設計されたマシンエミュレーターとも呼ばれます。エミュレーション・パーツは、単一のハードウェア・プラットフォーム用に作成されたオペレーティング・システムとプログラムをサポートしますが、異なるアーキテクチャーを持つ別のコンピューター上で実行されます。

一方、アプリケーションをバーチャライザーとして使用する場合、ホストプロセッサ上でゲストコードをまっすぐに実行することで、ほとんどのパフォーマンスを達成することができます。 XenハイパーバイザーとKVM(カーネル仮想マシン)カーネルモジュールをサポートしています。


多数のハードウェアプラットフォームの仮想化をサポート

KVMが望ましい場合、アプリケーションはx86(32ビット)、s390、PowerPC、ARM、m68k、MIPS、CRIS、Microblaze、MIPSEL、or32、およびSPARCマシンを仮想化できます。 Windows XP、FreeDOS、SunOS、Virtio、USBルートハブ、ネットワーキング、入力、ビデオ、ストレージデバイスをエミュレートすることができます。

VirtualBoxとVMwareの後、QEMUはLinuxプラットフォーム向けに3番目に大きな仮想化ソフトウェアですが、オープンソースのエコシステムにとっては最初で最も強力なものです。その主な機能は、64ビットまたは32ビットアーキテクチャ上のネイティブ仮想マシンとして、または純粋なエミュレータとして実行できることです。


サポートされているオペレーティングシステム

これはコマンドラインソフトウェアで、Linuxベースのオペレーティングシステム、Microsoft Windows、さまざまなUNIXフレーバで動作します。ソースアーカイブは専用のダウンロードセクションに用意されているので、ユーザーは任意のLinuxディストリビューションやOpenBSD、Solaris、AIX、MinGW、Cygwinシステムでプログラムを設定、コンパイル、インストールすることができます。


結論

ソフトウェアをテストしたり、さまざまなオペレーティングシステムを試したり、プラットフォーム上でサポートされていないアプリケーションを実行したりする場合、QEMUはユーザーに最も高速な仮想化とエミュレータマシンを提供します。このリリースでは:

システムエミュレーション:
互換性のない変更:
pSeriesマシンのPCIホストブリッジの許容数は、256から31に削減されました(MMIOウィンドウを手動で設定することにより多くの設定が可能)。
ブロック層のtftp://のサポートが削除されました。これは、256KBを超えるファイルが永久に破棄されたためです。
将来互換性のない変更:
3つのオプションは、コマンドラインと設定ファイルで異なる名前を使用しています。特に:
「acpi」は、構成ファイルセクションは、コマンドラインオプション "acpitable"と一致する。
"boot-opts"ファイルは、構成ファイルセクションは、コマンドラインオプション "boot"と一致する。
「smp-opts」ファイルは、構成ファイルセクションはコマンドラインオプション "smp"と一致する。
-readconfigは、コマンドラインオプションの名前を標準化します。
-smpのいくつかのSMPトポロジオプション(ソケット、コア、スレッド)が省略された場合のSMPトポロジの自動計算の動作は将来変更されます。 SMPトポロジオプションを使用しているときにアップグレード時にゲストABIを保存する必要がある場合は、すべてのオプションを明示的に設定(ソケット、コア、スレッド)するか、またはすべてを省略するかを選択する必要があります。デバイス「allwinner-a10」、「pc87312」、「ssi-sd」、暗黙的にではなく明示的なプロパティーで構成されます。これはユーザーに影響を与える可能性は低いです。
QMPコマンドblockdev-addはまだ進行中の作業です。すべてのブロックドライバをサポートしているわけではありませんが、それには一致するblockdev-delなどがありません。互換性のないように変更される可能性があります。
x86の場合、 "+ feature / -feature"と "+ feature / -feature"の両方を持つCPUID機能を指定すると、 「フィーチャ=オン/オフ」とは、警告が表示されます。この組み合わせ(「+フィーチャ/フィーチャ」が「フィーチャ=オン/オフ」に勝つ)の現在の挙動は、「+フィーチャ/フィーチャ」が「+フィーチャ/ 「機能」とは、 " feature = on"の同義語となります。 「フィーチャ=オフ」とする。それぞれ)。
腕:
Aspeedボードの改良。
AArch32モード(ARMとThumbの両方)でのHLTセミホスティングトラップのサポート
「virt」のACPIテーブルは、マシンタイプITSをサポートします。
ケイデンスのGEMデバイスは、num-priority-queuesプロパティによって複数のプライオリティキューをサポートするようになりました。
STM32F2xxボード(Netduino 2)にADCとSPIデバイスが追加されました。
MIPS:
24KEc CPUのサポート。
PowerPC:
POWER9 CPUのサポート。新しい「powernv」の改善プラットフォーム。
pSeries:
PCIホストブリッジはNUMAノードに関連付けることができます。
1つ以上のゲストメモリのTiBをサポートします。
PCIホストブリッジ内の64 GiB以上のMMIOウィンドウをサポート
"-prom-env"のサポートパラメータ
s390:
CPUモデルのサポート。
virtio-ccwリビジョン2のサポート
x86:
AVX-512命令セット拡張に関連するいくつかの新しいCPUID機能をサポート。
エミュレートされたIOAPIC(「-machine kernel_irqchip」オプションが値「オフ」または「スプリット」を有する場合、TCGおよびKVMで使用される)は、デフォルトで、方向付けられた割り込み終了メッセージをサポートするバージョン0x20にデフォルト設定される。
intel_iommuデバイスの拡張割り込みモード(EIM)のサポート。 EIMには、KVM(x2APIC対応のLinux v4.7以降)と「-machine kernel-irqchip = split」が必要です。割り込みリマッピングが有効になっている場合(「-machine kernel-irqchip = split -device intel_iommu、intremap = on」)、自動的に有効になります。
Q35マシンタイプで最大288のCPUをサポートします。 256以上のCPUは、IOMMUおよびEIMが有効な場合にのみサポートされます。
Xen:
SCSIディスクの取り外しをサポートしています。SUSE xenlinux互換デバイスのプラグを抜くためのサポート。
デバイスエミュレーションと割り当て:
QEMUには、起動時に複数のイメージや値をメモリに読み込むことを可能にする一般的なローダー擬似デバイスが含まれています。このデバイスはdocs / generic-loader.txtに記載されています。
ACPI:
NVDIMMデバイスのホットプラグサポート(_FIT)
ネットワークデバイス:
粗粒度ロックステッピング(COLO)に基づくフォールトトレランスのサポート
PCI / PCIe:
サンプルのEDUデバイスでMSIがサポートされるようになりました。
PCI Expressガイドラインのドキュメントは、トポロジーとPCI vs PCIeに関するアドバイスとして追加されました。
virtio:
新しいデバイスvhost-vsock。
ゲストエラーを適切に処理するための初期サポート(QEMUはゲストエラーで終了しない)
新しいvirtio-cryptoデバイスのサポート
Xen:
グラントコピーのサポート。
暗号サブシステム:
PBKDFのためのより多くのハッシュアルゴリズムのサポート。
CTRモードのサポート。
GUI:
"gl = on"の場合、SPICEは純粋なOpenGLレンダリングを使用できます。指定されています。
モニター:
移行:
粗粒度ロックステッピング(COLO)に基づくフォールトトレランスのサポート
ネットワーク:
ブロックデバイスとツール:より多くのQMPコマンドは、ノード名(ブロックストリーム、ブロックコミット、ブロックデバックバックアップ、ブロックデフミラー、ブロックデバイススナップショット削除内部同期、ブロックデブスナップショット内部同期、チェンジバックファイル、バックアップ、ドライブミラー、nbd-server-add)。
BLOCK_IO_ERRORイベントにノード名が含まれるようになりました。
QMPコマンドは、デバイスモデル名(block_set_io_throttle、blockdev-change-medium、eject、x-blockdev-remove-medium、x-blockdev-insert-medium、blockdev-open-tray、blockdev-close-tray)を受け入れます。
DEVICE_TRAY_MOVEDイベントにデバイスIDが含まれるようになりました。
スロットリングはゲストデバイスのみに適用され、ジョブやNBDサーバーはブロックされません。
drive-backupおよびblockdev-backupは、圧縮形式でバックアップを書き出します。
LUKS形式でPBKDFの反復回数を設定できるようになりました。
ブロックストリームは、バッキングファイルから別のバッキングファイルへのストリーミングをサポートします。
粗粒度ロックステッピング(COLO)フォールトトレランス用のレプリケーションのサポート
新しい "dd" qemu-imgのサブコマンダー。
DMGドライバは別のドライバにコンパイルすることができ、libbz2に対するQEMUの依存性をオプションにすることができます。
iser:// URIを使用して、QEMUのiSCSIイニシエータでiSERをサポートします。NBDクライアントとサーバーは、NBD_CMD_WRITE_ZEROES拡張をサポートしています。
生の画像は、「オフセット」をサポートする。 「サイズ」および「サイズ」は、ファイルまたはデバイスの一部のみにアクセスするオプション。
トレース:
新しいトレースバックエンド「syslog」。
複数の「-dトレース:パターン」のサポートコマンドライン引数。
CLIオプション:
ユーザーモードエミュレーション
削除されたターゲットサポート
unicore32-linux-userターゲットは、このアーキテクチャのためにメインラインLinuxから異なるシステムコールABIを実装しました。それに対するサポートはなくなりました。
新しい機能:
preadv、pwritev、syslogなど、より多くのシステムコールのサポートが追加されました。
マルチスレッドプログラム(ARM、SPARC、x86)のスケーラビリティの大幅な向上
QEMUは、フェンスとcmpxchg操作を理解して生成できるようになりました。
TCG:
アーキテクチャ同期命令(アトミック、LL / SC、LOCKプレフィックスなど)を安全にモデル化するための新しいTCGプリミティブが追加されました。 arm、aarch64、alpha、およびx86ターゲットは、マルチスレッドのLinuxユーザプログラムにこれらのプリミティブを使用するようになりました。 TCGのターゲット保守担当者は、新しい施設を使用するためにフロントエンドを移植することが推奨されます。

マルチスレッドプログラムを実行しているときにTCGバックエンドはフロントエンドバリアに適切なバリア命令を発行するようになりました。しかし、弱く順序付けされたアーキテクチャ(例えば、ARMまたはPOWER)上で強く順序づけられたアーキテクチャ(例えば、x86)をエミュレートすることは、まだ機能しない。
tb_flush()は最終的にスレッドセーフであることを意味します。マルチスレッドプログラムは、変換バッファがリセットされたときにクラッシュする可能性が低い
メインCPUの実行ループにおけるロック競合が減少し、マルチスレッドコードのパフォーマンスが向上しました
多数のレースが特定され、修正された
このサイクルでは、マルチスレッドシステムエミュレーション(MTTCG)をサポートするための前提条件として、多くのTCG作業がマージされました。次の開発サイクルで完全なMTTCGサポートが統合される予定ですが、マルチスレッドのLinuxユーザープログラムはすでにこの作業の恩恵を受けています。

バージョンの新機能:

システムエミュレーション:
互換性のない変更:
pSeriesマシンのPCIホストブリッジの許容数は、256から31に削減されました(MMIOウィンドウを手動で設定することにより多くの設定が可能)。
ブロック層のtftp://のサポートが削除されました。これは、256KBを超えるファイルが永久に破棄されたためです。
将来互換性のない変更:
3つのオプションは、コマンドラインと設定ファイルで異なる名前を使用しています。特に:
"acpi"設定ファイルセクションは、コマンドラインオプション "acpitable"と一致します。
"boot-opts"設定ファイルセクションは、コマンドラインオプション "boot"と一致します。
"smp-opts"設定ファイルのセクションは、コマンドラインオプション "smp"と一致します。
-readconfigは、コマンドラインオプションの名前を標準化します。
-smpのいくつかのSMPトポロジオプション(ソケット、コア、スレッド)が省略された場合のSMPトポロジの自動計算の動作は将来変更されます。 SMPトポロジオプションを使用しているときにゲストABIをアップグレード時に保持する必要がある場合は、すべてのオプションを明示的に設定(ソケット、コア、スレッド)するか、すべてを省略するかを選択する必要があります。デバイス「allwinner-a10」、「pc87312」、「ssi-sd」は暗黙的にではなく明示的なプロパティで構成されます。これはユーザーに影響を与える可能性は低いです。
QMPコマンドblockdev-addはまだ進行中の作業です。すべてのブロックドライバをサポートしているわけではありませんが、それには一致するblockdev-delなどがありません。互換性のないように変更される可能性があります。
x86では、 "+ feature / -feature"と "feature = on / off"の両方でCPUID機能を指定すると警告が表示されます。この "+ feature"と "-feature"が "feature = on"と "feature"の同義語になるように、この組み合わせの現在の動作( "+ feature / -feature"が "feature = on / off" =オフ ")。
腕:
Aspeedボードの改良。
AArch32モード(ARMとThumbの両方)でのHLTセミホスティングトラップのサポート
「virt」マシンタイプのACPIテーブルはITSをサポートします。
ケイデンスのGEMデバイスは、num-priority-queuesプロパティによって複数のプライオリティキューをサポートするようになりました。
STM32F2xxボード(Netduino 2)にADCとSPIデバイスが追加されました。
MIPS:
24KEc CPUのサポート。
PowerPC:
POWER9 CPUのサポート。
新しい "powernv"プラットフォームの改善。
pSeries:PCIホストブリッジはNUMAノードに関連付けることができます。
1つ以上のゲストメモリのTiBをサポートします。
PCIホストブリッジ内の64 GiB以上のMMIOウィンドウをサポート
"-prom-env"パラメータのサポート
s390:
CPUモデルのサポート。
virtio-ccwリビジョン2のサポート
x86:
AVX-512命令セット拡張に関連するいくつかの新しいCPUID機能をサポート。
"-machine kernel_irqchip"オプションの値が "off"または "split"の場合、エミュレートされたIOAPIC(TCGおよびKVMで使用される)のデフォルトは、0x20に設定されています。
intel_iommuデバイスの拡張割り込みモード(EIM)のサポート。 EIMにはKVM(x2APIC対応のLinux v4.7以降)と「-machine kernel-irqchip = split」が必要です。割り込みリマッピングが有効な場合( "-machine kernel-irqchip = split -device intel_iommu、intremap = on")自動的に有効になります。
Q35マシンタイプで最大288のCPUをサポートします。 256以上のCPUは、IOMMUおよびEIMが有効な場合にのみサポートされます。
Xen:
SCSIディスクの取り外しをサポートしています。
SUSE xenlinux互換デバイスのプラグを抜くためのサポート。
デバイスエミュレーションと割り当て:QEMUには、起動時に複数のイメージや値をメモリに読み込むことを可能にする一般的なローダー擬似デバイスが含まれています。このデバイスはdocs / generic-loader.txtに記載されています。
ACPI:
NVDIMMデバイスのホットプラグサポート(_FIT)
ネットワークデバイス:
粗粒度ロックステッピング(COLO)に基づくフォールトトレランスのサポート
PCI / PCIe:
サンプルのEDUデバイスでMSIがサポートされるようになりました。
PCI Expressガイドラインのドキュメントは、トポロジーとPCI vs PCIeに関するアドバイスとして追加されました。
virtio:
新しいデバイスvhost-vsock。
ゲストエラーを適切に処理するための初期サポート(QEMUはゲストエラーで終了しない)
新しいvirtio-cryptoデバイスのサポート
Xen:
グラントコピーのサポート。
暗号サブシステム:
PBKDFのためのより多くのハッシュアルゴリズムのサポート。
CTRモードのサポート。
GUI:
"gl = on"が指定されている場合、SPICEは純粋なOpenGLレンダリングを使用できます。
モニター:
移行:
粗粒度ロックステッピング(COLO)に基づくフォールトトレランスのサポート
ネットワーク:
ブロックデバイスとツール:より多くのQMPコマンドは、ノード名(ブロックストリーム、ブロックコミット、ブロックデバックバックアップ、ブロックデフミラー、ブロックデバイススナップショット削除内部同期、ブロックデブスナップショット内部同期、チェンジバックファイル、バックアップ、ドライブミラー、nbd-server-add)。
BLOCK_IO_ERRORイベントにノード名が含まれるようになりました。
QMPコマンドは、デバイスモデル名(block_set_io_throttle、blockdev-change-medium、eject、x-blockdev-remove-medium、x-blockdev-insert-medium、blockdev-open-tray、blockdev-close-tray)を受け入れます。
DEVICE_TRAY_MOVEDイベントにデバイスIDが含まれるようになりました。
スロットリングはゲストデバイスのみに適用され、ジョブやNBDサーバーはブロックされません。
drive-backupおよびblockdev-backupは、圧縮形式でバックアップを書き出します。
LUKS形式でPBKDFの反復回数を設定できるようになりました。
ブロックストリームは、バッキングファイルから別のバッキングファイルへのストリーミングをサポートします。
粗粒度ロックステッピング(COLO)フォールトトレランス用のレプリケーションのサポート
qemu-imgの新しい "dd"サブコマンダー。
DMGドライバは別のドライバにコンパイルすることができ、libbz2に対するQEMUの依存性をオプションにすることができます。
iser:// URIを使用して、QEMUのiSCSIイニシエータでiSERをサポートします。NBDクライアントとサーバーは、NBD_CMD_WRITE_ZEROES拡張をサポートしています。
RAWイメージは、ファイルまたはデバイスの一部のみにアクセスするための「オフセット」および「サイズ」オプションをサポートしています。
トレース:
新しいトレースバックエンド "syslog"。
複数の "-d trace:PATTERN"コマンドライン引数をサポート
CLIオプション:
ユーザーモードエミュレーション
削除されたターゲットサポート
unicore32-linux-userターゲットは、このアーキテクチャのためにメインラインLinuxから異なるシステムコールABIを実装しました。それに対するサポートはなくなりました。
新しい機能:
preadv、pwritev、syslogなど、より多くのシステムコールのサポートが追加されました。
マルチスレッドプログラム(ARM、SPARC、x86)のスケーラビリティの大幅な向上
QEMUは、フェンスとcmpxchg操作を理解して生成できるようになりました。
TCG:
アーキテクチャ同期命令(アトミック、LL / SC、LOCKプレフィックスなど)を安全にモデル化するための新しいTCGプリミティブが追加されました。 arm、aarch64、alpha、およびx86ターゲットは、マルチスレッドのLinuxユーザプログラムにこれらのプリミティブを使用するようになりました。 TCGのターゲット保守担当者は、新しい施設を使用するためにフロントエンドを移植することが推奨されます。

マルチスレッドプログラムを実行しているときにTCGバックエンドはフロントエンドバリアに適切なバリア命令を発行するようになりました。しかし、弱く順序付けされたアーキテクチャ(例えば、ARMまたはPOWER)上で強く順序づけられたアーキテクチャ(例えば、x86)をエミュレートすることは、まだ機能しない。
tb_flush()は最終的にスレッドセーフであることを意味します。マルチスレッドプログラムは、変換バッファがリセットされたときにクラッシュする可能性が低い
メインCPUの実行ループにおけるロック競合が減少し、マルチスレッドコードのパフォーマンスが向上しました
多数のレースが特定され、修正された
このサイクルでは、マルチスレッドシステムエミュレーション(MTTCG)をサポートするための前提条件として、多くのTCG作業がマージされました。次の開発サイクルで完全なMTTCGサポートが統合される予定ですが、マルチスレッドのLinuxユーザープログラムはすでにこの作業の恩恵を受けています。

バージョン2.9.0の新機能:

システムエミュレーション:
互換性のない変更:
pSeriesマシンのPCIホストブリッジの許容数は、256から31に削減されました(MMIOウィンドウを手動で設定することにより多くの設定が可能)。
ブロック層のtftp://のサポートが削除されました。これは、256KBを超えるファイルが永久に破棄されたためです。
将来互換性のない変更:
3つのオプションは、コマンドラインと設定ファイルで異なる名前を使用しています。特に:
"acpi"設定ファイルセクションは、コマンドラインオプション "acpitable"と一致します。
"boot-opts"設定ファイルセクションは、コマンドラインオプション "boot"と一致します。
"smp-opts"設定ファイルのセクションは、コマンドラインオプション "smp"と一致します。
-readconfigは、コマンドラインオプションの名前を標準化します。
-smpのいくつかのSMPトポロジオプション(ソケット、コア、スレッド)が省略された場合のSMPトポロジの自動計算の動作は将来変更されます。 SMPトポロジオプションを使用しているときにゲストABIをアップグレード時に保持する必要がある場合は、すべてのオプションを明示的に設定(ソケット、コア、スレッド)するか、すべてを省略するかを選択する必要があります。デバイス「allwinner-a10」、「pc87312」、「ssi-sd」は暗黙的にではなく明示的なプロパティで構成されます。これはユーザーに影響を与える可能性は低いです。
QMPコマンドblockdev-addはまだ進行中の作業です。すべてのブロックドライバをサポートしているわけではありませんが、それには一致するblockdev-delなどがありません。互換性のないように変更される可能性があります。
x86では、 "+ feature / -feature"と "feature = on / off"の両方でCPUID機能を指定すると警告が表示されます。この "+ feature"と "-feature"が "feature = on"と "feature"の同義語になるように、この組み合わせの現在の動作( "+ feature / -feature"が "feature = on / off" =オフ ")。
腕:
Aspeedボードの改良。
AArch32モード(ARMとThumbの両方)でのHLTセミホスティングトラップのサポート
「virt」マシンタイプのACPIテーブルはITSをサポートします。
ケイデンスのGEMデバイスは、num-priority-queuesプロパティによって複数のプライオリティキューをサポートするようになりました。
STM32F2xxボード(Netduino 2)にADCとSPIデバイスが追加されました。
MIPS:
24KEc CPUのサポート。
PowerPC:
POWER9 CPUのサポート。
新しい "powernv"プラットフォームの改善。
pSeries:PCIホストブリッジはNUMAノードに関連付けることができます。
1つ以上のゲストメモリのTiBをサポートします。
PCIホストブリッジ内の64 GiB以上のMMIOウィンドウをサポート
"-prom-env"パラメータのサポート
s390:
CPUモデルのサポート。
virtio-ccwリビジョン2のサポート
x86:
AVX-512命令セット拡張に関連するいくつかの新しいCPUID機能をサポート。
"-machine kernel_irqchip"オプションの値が "off"または "split"の場合、エミュレートされたIOAPIC(TCGおよびKVMで使用される)のデフォルトは、0x20に設定されています。
intel_iommuデバイスの拡張割り込みモード(EIM)のサポート。 EIMにはKVM(x2APIC対応のLinux v4.7以降)と「-machine kernel-irqchip = split」が必要です。割り込みリマッピングが有効な場合( "-machine kernel-irqchip = split -device intel_iommu、intremap = on")自動的に有効になります。
Q35マシンタイプで最大288のCPUをサポートします。 256以上のCPUは、IOMMUおよびEIMが有効な場合にのみサポートされます。
Xen:
SCSIディスクの取り外しをサポートしています。
SUSE xenlinux互換デバイスのプラグを抜くためのサポート。
デバイスエミュレーションと割り当て:QEMUには、起動時に複数のイメージや値をメモリに読み込むことを可能にする一般的なローダー擬似デバイスが含まれています。このデバイスはdocs / generic-loader.txtに記載されています。
ACPI:
NVDIMMデバイスのホットプラグサポート(_FIT)
ネットワークデバイス:
粗粒度ロックステッピング(COLO)に基づくフォールトトレランスのサポート
PCI / PCIe:
サンプルのEDUデバイスでMSIがサポートされるようになりました。
PCI Expressガイドラインのドキュメントは、トポロジーとPCI vs PCIeに関するアドバイスとして追加されました。
virtio:
新しいデバイスvhost-vsock。
ゲストエラーを適切に処理するための初期サポート(QEMUはゲストエラーで終了しない)
新しいvirtio-cryptoデバイスのサポート
Xen:
グラントコピーのサポート。
暗号サブシステム:
PBKDFのためのより多くのハッシュアルゴリズムのサポート。
CTRモードのサポート。
GUI:
"gl = on"が指定されている場合、SPICEは純粋なOpenGLレンダリングを使用できます。
モニター:
移行:
粗粒度ロックステッピング(COLO)に基づくフォールトトレランスのサポート
ネットワーク:
ブロックデバイスとツール:より多くのQMPコマンドは、ノード名(ブロックストリーム、ブロックコミット、ブロックデバックバックアップ、ブロックデフミラー、ブロックデバイススナップショット削除内部同期、ブロックデブスナップショット内部同期、チェンジバックファイル、バックアップ、ドライブミラー、nbd-server-add)。
BLOCK_IO_ERRORイベントにノード名が含まれるようになりました。
QMPコマンドは、デバイスモデル名(block_set_io_throttle、blockdev-change-medium、eject、x-blockdev-remove-medium、x-blockdev-insert-medium、blockdev-open-tray、blockdev-close-tray)を受け入れます。
DEVICE_TRAY_MOVEDイベントにデバイスIDが含まれるようになりました。
スロットリングはゲストデバイスのみに適用され、ジョブやNBDサーバーはブロックされません。
drive-backupおよびblockdev-backupは、圧縮形式でバックアップを書き出します。
LUKS形式でPBKDFの反復回数を設定できるようになりました。
ブロックストリームは、バッキングファイルから別のバッキングファイルへのストリーミングをサポートします。
粗粒度ロックステッピング(COLO)フォールトトレランス用のレプリケーションのサポート
qemu-imgの新しい "dd"サブコマンダー。
DMGドライバは別のドライバにコンパイルすることができ、libbz2に対するQEMUの依存性をオプションにすることができます。
iser:// URIを使用して、QEMUのiSCSIイニシエータでiSERをサポートします。NBDクライアントとサーバーは、NBD_CMD_WRITE_ZEROES拡張をサポートしています。
RAWイメージは、ファイルまたはデバイスの一部のみにアクセスするための「オフセット」および「サイズ」オプションをサポートしています。
トレース:
新しいトレースバックエンド "syslog"。
複数の "-d trace:PATTERN"コマンドライン引数をサポート
CLIオプション:
ユーザーモードエミュレーション
削除されたターゲットサポート
unicore32-linux-userターゲットは、このアーキテクチャのためにメインラインLinuxから異なるシステムコールABIを実装しました。それに対するサポートはなくなりました。
新しい機能:
preadv、pwritev、syslogなど、より多くのシステムコールのサポートが追加されました。
マルチスレッドプログラム(ARM、SPARC、x86)のスケーラビリティの大幅な向上
QEMUは、フェンスとcmpxchg操作を理解して生成できるようになりました。
TCG:
アーキテクチャ同期命令(アトミック、LL / SC、LOCKプレフィックスなど)を安全にモデル化するための新しいTCGプリミティブが追加されました。 arm、aarch64、alpha、およびx86ターゲットは、マルチスレッドのLinuxユーザプログラムにこれらのプリミティブを使用するようになりました。 TCGのターゲット保守担当者は、新しい施設を使用するためにフロントエンドを移植することが推奨されます。TCGバックエンドは、マルチスレッドプログラムを実行する際にフロントエンドの障壁に適切な障壁命令を発行するようになりました。しかし、弱く順序付けされたアーキテクチャ(例えば、ARMまたはPOWER)上で強く順序づけられたアーキテクチャ(例えば、x86)をエミュレートすることは、まだ機能しない。
tb_flush()は最終的にスレッドセーフであることを意味します。マルチスレッドプログラムは、変換バッファがリセットされたときにクラッシュする可能性が低い
メインCPUの実行ループにおけるロック競合が減少し、マルチスレッドコードのパフォーマンスが向上しました
多数のレースが特定され、修正された
このサイクルでは、マルチスレッドシステムエミュレーション(MTTCG)をサポートするための前提条件として、多くのTCG作業がマージされました。次の開発サイクルで完全なMTTCGサポートが統合される予定ですが、マルチスレッドのLinuxユーザープログラムはすでにこの作業の恩恵を受けています。

開発者の他のソフトウェア Fabrice Bellard

へのコメント QEMU

コメントが見つかりません
コメントを追加
画像をオンにする!