QEMU 10.1 は、セキュリティ、移行、およびサポートの拡張が改善されて登場しました。

  • 機密ゲストサポート: TDX/SEV-SNP、IGVM、および VFIO の guest_memfd
  • より高速な移行: multifd + postcopy と IPv6 経由の RDMA
  • 最新のアーキテクチャ: 新しい ARM 機能と RISC-V 拡張機能
  • 実用的な改善: GUI/オーディオ、NBD、QMP、ARM 'virt' 上の ACPI 経由の PCI ホットプラグ

QEMU 10.1

QEMU 10.1 がリリースされました。開発者と大規模仮想マシン導入者の両方にとって重要な変更がいくつか含まれています。 最も注目すべき機能としては、セキュリティ、ライブ マイグレーション、アーキテクチャ サポート、デバイスの改善などの新機能があります。なので、冷静に見直してみることをお勧めします。

細かい点に入る前に、混乱を避けるために注意点があります。QEMU は時間ベースの番号付けを使用しています。つまり、最大のリリース番号自体が変更の範囲を示すわけではありません。 プロジェクト ポリシーでは、少なくとも 2 つの以前のバージョンで警告が出され、非推奨期間が経過した後に互換性のない変更が許可されます。したがって、メジャー バージョンのジャンプが革命と同義であると想定しないでください。

QEMU 10.1 の可用性、コンテキスト、および哲学

プロジェクト 発表された 10.1.0 年 26 月 2025 日に 2700 人の作者によって 226 件を超えるコミットが署名された XNUMX がリリースされました。 詳細は公式ウェブサイトから tarball をダウンロードし、完全な変更ログで確認できます。いつものように、コード、テスト、CI、ドキュメント、バグレポートに貢献してくださる皆様に心より感謝申し上げます。

QEMU の理念に沿って、削除された機能と非推奨のオプションについていくつか言及があります。 古いものに依存している場合は、システムエミュレーションユーザーガイドの「削除された機能」セクションと「非推奨の機能」の章を確認してください。代替品の使用も推奨されます。

ハイライトを一目で

始めるにあたって、10.1 の簡単な概要では、セキュリティ、パフォーマンス、および高度な管理について説明します。 機密ゲスト向けの初期 VFIO サポート、強力な移行の改善、新しいゲスト エージェント機能があります。.

  • VFIOと機密性: guest_memfd を使用するときに機密ゲスト メモリにアクセス/マッピングするための初期サポート。SEV-SNP/TDX でのパススルーが有効になります。
  • ライブマイグレーション: multifd は、コピー後、コピー前の最適化と IPv6 経由の RDMA サポートを高速化します。
  • ゲストエージェント: : Windows 上の負荷を照会するための新しい 'guest-get-load' コマンド。
  • アーキテクチャ: 新しい ARM 機能 (FEAT_SME2、SME2p1、SVE2p1 など)、RISC-V サポートの拡張、x86 上の TDX の KVM 統合。

建築と機械:何が変わるのか

QEMU 10.1 は、複数の CPU ファミリにわたるエミュレーションと仮想化を改良し、拡張します。 ARMからRISC-V、x86、LoongArch、HPPA、Microblazeまで、具体的な進歩が見られる。 これを分解する必要があります。

ARM

ARM では、QEMU 10.1 によって CPU アーキテクチャの機能が多数追加されています。 FEAT_SME2、FEAT_SME2p1、FEAT_SME_B16B16、FEAT_SME_F16F16、FEAT_SVE_B16B16、FEAT_SVE2p1ベクトルおよび行列処理のサポートを強化します。

マシンに関しては、関連する新機能がいくつかあります。 「max78000fthr」ボード(Analog Devices max78000 Cortex-M4)が組み込まれています新しいマルチSoC「AST2700FC」が、「Catalina-BMC」(Meta) および「GB200-BMC」(NVIDIA) マシンとともに登場し、AST2700 EVB にファームウェア サポートが追加されます。

人気の「virt」ボードも成長しています。 CXL、ACPI経由のPCIホットプラグ、および最近のホストカーネルでは「virtualization=on」を有効にすることでKVMによるネストされた仮想化をサポートするようになりました。注意: 「highbank」および「midway」モデルは非推奨となり、「ast2700a0-evb」の非推奨が発表されました。

RISC-V

RISC-V エコシステムには、ISA、マシン、修正に関する詳細情報が大量に提供されます。 アトミックフェッチ拡張(Ziccif)がサポートされ、「Svrsw60t59b」が追加され、ベクトル命令のエッジケースが微調整されました。.

  • ISAと拡張機能: キューに入れられた呼び出しの 'tail' 疑似命令、大文字の 'Z' による CPU プロパティの削除、ホストからの max_satp_mode、PMP 領域カウントの設定と拡張 (最大 64)、vsetvli の予約済み使用に 'vill' を設定するオプション。
  • 機械: ACPI 'virt'でのRIMTサポート、Microchip PolarFire SoCのカスタマイズの改善、 新しい昆明湖CPUとプラットフォーム; ACPI テーブル内の FADT および MADT のバージョンを更新します。
  • 訂正とその他: PMP RLB が権限をジャンプできないようにする、KVM での CSR 修正、sstc、zama16b 順序、プロファイル処理、例外/マスキング修正 (IALIGN の MEPC/SEPC)、PMP 0 範囲のラップアラウンド修正、ビッグ エンディアン無限変換ループ修正、および AIA が aplic-imsic に設定されている場合の移行失敗修正。

さらに、 欠落していた名前付き機能を追加し、PPN 翻訳応答ログを修正し、非同期転送時の無限遅延を回避しました。これにより、極端なシナリオでも安定性が向上します。

x86 (KVM および TCG)

x86 には、管理者が喜ぶ XNUMX つの優れた点があります。 ベンダー固有の CPUID ビットは、ゲスト CPU ベンダーによって定義されていない場合は無視されます。混乱や不自然なプロフィールを回避します。

KVM側では、 TDX のサポートを追加しました (Linux 6.16 以降が必要)、IGVM ファイルから TDX または SEV-SNP マシンを起動できるようになります。これは、安全なプロビジョニング フローの重要なステップです。

TCGトランスレータでは、 TSSトラップビットがサポートされていますハードウェア アクセラレーションなしで特定の実行パスの忠実度が向上します。

ロンアーチ

LoongArchは、 カーネル内のirqchipMCFG テーブルでビッグ エンディアンを修正し、KVM で 'smp cpu' < 'smp maxcpus' の場合に起動に失敗する問題を修正し、VLDI などの命令の詳細を改善しました。 KVM ゲストにも通知され、「fcond」のチェックが追加されます。.

マイクロブレイズ

Microblaze を使用すると、より多くの制御が可能になります。 「petalogix_s3adsp1800」マシンでは、「endianness」プロパティを介してエンディアンを切り替えることができます。ml605およびxlnx-zynqmp-pmuのビッグエンディアン版は廃止予定であり、qemu-system-microblazeではこれらのモデルがリトルエンディアンに変換されます。また、「qemu-system-microblazeel」バイナリも廃止予定であり、将来削除される予定です。

MIPS

非常に具体的ですが、非常にありがたい訂正があります。 Magnum マシンで Windows NT MIPS を起動すると BSOD が発生する問題を修正しました (問題 #2464)歴史的なソフトウェアを調査したり保守したりする人にとって便利です。

HPPA

それはそうだった 浮動小数点例外(FPE)エミュレーションの改善 ユーザー モードとシステム モードの両方で、このベテラン アーキテクチャの精度を強化します。

その他のアーキテクチャ

上記のセクションに加えて、68k、Alpha、AVR、Hexagon、OpenRISC、PowerPC、Renesas RX/SH、s390x、SPARC、Tricore、Xtensa に関する章もあります。 10.1 では特に大きなニュースはありませんが、メンテナンスと調整は継続されます。最新バージョンでは、新しい CPU 定義と virtio-mem の改善により、s390x が特に注目されています。

デバイス、I/O、サブシステム

QEMU 10.1 は、VFIO、ネットワーク、グラフィックス、オーディオ、I/O に関する重要な資料をもたらします。 これらは、パフォーマンス、互換性、および日常の運用に直接影響する変更です。.

VFIO

紹介されます 機密 (CoCo) ゲストでの guest-memfd メモリ バックエンドの初期サポートIGD パススルーのドキュメントを更新し、pseries マシンでの L2 クラッシュを修正しました。

また、有効になっています IGDパススルーのOpRegionを自動的に検出機能が改善され、QEMU は vfio-ap 構成の変更を報告できるようになりました。

それを超えると、 vfio-user クライアント、のサポート ライブアップデート(CPR), aarch64 上の multifd を使用した VFIO 移行、および デバイスのPCIクラスコードを強制する最後に、 TDX および SNP VM での VFIO サポート.

ネットワークとストレージ

ネットワーク デバイス用の新しいバックエンドがあります: 「パスト」統合およびサンドボックスシナリオ向けに設計されています。さらに、Unixソケット経由でNBDを使用する場合、 QEMUはより大きなバッファをネゴシエートしようとする パフォーマンスを劇的に向上させます。

PCI/PCIe と virtio

ARMの「virt」ボードは PCI デバイスの ACPI および acpi-index 経由の PCI ホットプラグ グローバル オプション '-global acpi-ged.acpi-pci-hotplug-with-bridge-support=on' を有効にします。

仮想化グラフィックスでは、 virtio-gpuはEDID名を挿入できる互換性と自動化テストに役立ちます。

9pfsとその他のバックエンド

9pfsの場合、 ファイル記述子回復アルゴリズム システムの限界に近づいたときや、 リンク解除後に使用 (ファイルを削除した後の操作)微妙なエラーを引き起こす可能性があります。

オーディオ

オーディオ サブシステムは、デフォルトと互換性を調整します。 ALSAでは'try-poll'はデフォルトでfalseになりました 浮動小数点サンプル用のエンディアンネス コンバーターが追加されました。

グラフィカルインターフェースとエージェント

GUI については議論すべき点が数多くあります。 spice/dbus はマルチプレーン dmabuf をサポートします、および gl=on は、リモート/非ローカル クライアントでも有効にできます。

vdagentエージェントは 移行サポートGTK はスケール処理を改善し、「keep-aspect-ratio」および「scale」オプションを追加しました。

VNCでは修正されます コーディングの問題の更新 クライアントとサーバーのエンディアンが非タイトエンコーディングと8/16bppの両方で異なる場合、問題も解決します。 移行後に画面が一時停止しました.

I/Oとデバッグ

I/O層では、 多くのTCPバックエンドではTCPキープアライブパラメータを設定できるようになりました強力なファイアウォールや NAT のある環境では非常に便利です。

GDBStubは以下を追加します qGDBServerVersionのサポート GDB 以外のクライアントでも使用され、相互運用性が向上します。

TCGプラグインが贅沢に扱われる: 'ips'プラグインがサポート 量子ごとに設定可能なスケーリングと命令; さらに、新機能が追加されました ログを書き込む、記入してください 仮想アドレス (注意して)そして ハードウェアアドレスの読み取り/書き込みテストプラグイン「パッチャー」が組み込まれており、 sparc64 と alpha はログの詳細をプラグインに公開します.

ライブマイグレーションとブロックタスク

10.1 では VM モビリティが強化されます。 RDMA移行でIPv6がサポートされるようになりました ポストコピーは、順次アクセス (ストリーミング ビデオなどの一般的なケース) 向けに最適化されています。

素晴らしいニュース: Multifd と postcopy を同時に有効にできるようになりました。 (マルチファイルコピーはプレコピー時に有効になりました)。また、TCPゼロコピーが有効になっている場合のマルチファイルコピーによるVFIOの移行を修正し、 プレコピーのダウンタイムウィンドウ 不要な LOG_CLEAR を回避します。

QMPでは、 ブロックデバイスミラー 最適化のためのブールフラグ「target-is-zero」を導入 ミラー すでにゼロとして読み取られている宛先に、さらに、そのフラグがなくても、ゼロとして読み取られているソース ブロックで実行される作業が少なくなります。 ブロックデバイスバックアップ コピービフォアライト中の I/O エラーの処理方法を決定するために、「on-cbw-error」オプションを追加します。

ブロックワークでは、 ブロックコミットがアクティブではありません スパース性を維持するように最適化されており、ミラー/バックアップはゼロ ブロックと新しいオプションに対する以前の改善を継承します。

ゲストエージェント

QEMU ゲスト エージェントは Windows 上で拡張されます。 「guest-get-load」が実装されました ゲストシステムの負荷を照会します。

また、Windowsでは VSSプロバイダーの登録を解除するときに再試行する また、インストール エラーを VSS プロバイダーから MSI インストーラーに伝播し、診断を容易にします。

ユーザーモードとTCG

ユーザーモードエミュレーションでは マイナードキュメントの更新 制限事項の明確化。シグナル、ランタイム、binfmt_misc の領域に加え、alpha、arm/aarch64、HPPA、LongArch、PowerPC、s390、x86 ターゲットもカバーされています。

TCGでは作業が継続中 LoongArchとRISC-V そして、のサポート 記録/再生ただし、前述の TSS チート部分以外は見出しに変更はありません。

コンパイル、依存関係、プラットフォーム

ビルドプロセスでは、ドキュメントは次のように更新されます。 b4の例 そしてすべてのedk2サブモジュールは ファームウェアのtarballに含まれる.

Rustに関しては、 サポートされる最小バージョンが 1.77 に増加Debianでは、bookwormはmips64elを除きrustc-webパッケージで利用可能です(mips22.04elを使用するにはDebian trixie以降が必要です)。Ubuntu 24.04および1.77では、RUSTC/RUSTDOC変数を/usr/bin/rustc-1.77および/usr/bin/rustdoc-1.77に設定することでrust-XNUMXパッケージを使用します。

Rustのサポートは継続 実験的で不安定開発以外の用途には推奨されません。 Rustを有効にすると、QEMUにはMeson 1.8.1が必要です。ローカル レジストリ (例: /usr/share/cargo/registry) から 'subprojects/' にデータを入力するスクリプト ('scripts/get-wraps-from-cargo-registry.py') が含まれています。

ホストプラットフォームでは、 Debian Bullseyeはサポートされなくなりました、Ninja 1.9が必須となります(QEMU 10.0でサポートされているすべてのシステムに既にインストールされています)。また、 Emscripten による WASM へのコンパイルの実験的サポート.

この回では、ゲスト エージェントがすでに言及したもの以外に、Windows に関する具体的な見出しはありません。 10.1 ロードマップは Planning/10.1 ページにあります。 詳細を知りたい場合。

アップグレードを待っていた場合、機密ゲストのサポート (IGVM および guest_memfd を使用した TDX/SEV-SNP)、移行の高速化 (multifd + postcopy、RDMA IPv6)、およびアーキテクチャとサブシステム全体の改善の組み合わせにより、QEMU 10.1 は非常にバランスの取れたリリースになります。 より実用的なパフォーマンス、より優れた管理ツール、そして近代化が進む技術基盤により、この移行は価値があります。.

QEMU 10.0
関連記事
QEMU 10.0 は、さまざまなアーキテクチャの改善と Apple のサポートを伴って登場しました。