QEMU 6.0エミュレータのリリース

QEMU 6.0 プロジェクトのリリースが発表されました。 QEMU をエミュレータとして使用すると、あるハードウェア プラットフォーム用にコンパイルされたプログラムを、まったく異なるアーキテクチャのシステム上で実行できます。たとえば、x86 互換 PC 上で ARM アプリケーションを実行できます。 QEMU の仮想化モードでは、CPU での命令の直接実行と Xen ハイパーバイザーまたは KVM モジュールの使用により、分離環境でのコード実行のパフォーマンスはハードウェア システムのパフォーマンスに近くなります。

このプロジェクトは元々、x86 プラットフォーム用に構築された Linux 実行可能ファイルを非 x86 アーキテクチャ上で実行できるようにするために Fabrice Bellard によって作成されました。 長年の開発を通じて、14 のハードウェア アーキテクチャに完全なエミュレーション サポートが追加され、エミュレートされるハードウェア デバイスの数は 400 を超えました。バージョン 6.0 の準備として、3300 人の開発者によって 268 を超える変更が加えられました。

QEMU 6.0 で追加された主な改善点:

  • NVMe コントローラー エミュレーターは NVMe 1.4 仕様に準拠しており、ゾーン化された名前空間、マルチパス I/O、ドライブ上のエンドツーエンドのデータ暗号化の実験的サポートが装備されています。
  • デバイス エミュレーションを外部プロセスに移動するための実験的なオプション「-machine x-remote」および「-device x-pci-proxy-dev」を追加しました。 このモードでは、現在、lsi53c895 SCSI アダプタのエミュレーションのみがサポートされています。
  • RAM コンテンツのスナップショットを作成するための実験的なサポートが追加されました。
  • ブロック デバイスをエクスポートするための FUSE モジュールが追加され、ゲスト システムで使用されるブロック デバイスの状態のスライスをマウントできるようになりました。 エクスポートは、QMP コマンド block-export-add または qemu-storage-daemon ユーティリティの「--export」オプションを通じて実行されます。
  • ARM エミュレータでは、ARMv8.1-M 'Helium' アーキテクチャと Cortex-M55 プロセッサ、および拡張 ARMv8.4 TTST、SEL2、および DIT 命令のサポートが追加されています。 ARM ボード mps3-an524 および mps3-an547 のサポートも追加されました。 xlnx-zynqmp、xlnx-versal、sbsa-ref、npcm7xx、および sabrelite ボードに追加のデバイス エミュレーションが実装されました。
  • ARM の場合、システム レベルおよびユーザー環境レベルのエミュレーション モードで、ARMv8.5 MTE (MemTag、Memory Tagging Extension) 拡張機能のサポートが実装されました。これにより、タグを各メモリ割り当て操作にバインドし、メモリ割り当て操作時のポインタ チェックを整理できるようになります。メモリにアクセスします。メモリは正しいタグに関連付けられている必要があります。 この拡張機能を使用すると、すでに解放されたメモリ ブロックへのアクセス、バッファ オーバーフロー、初期化前のアクセス、および現在のコンテキスト外での使用によって引き起こされる脆弱性の悪用をブロックできます。
  • 68k アーキテクチャ エミュレータには、virtio デバイスを使用してパフォーマンスを最適化する、新しいタイプのエミュレートされたマシン「virt」のサポートが追加されました。
  • x86 エミュレータには、AMD SEV-ES (Secure Encrypted Virtualization) テクノロジを使用してゲスト システムで使用されるプロセッサ レジスタを暗号化する機能が追加されており、ゲスト システムがレジスタへのアクセスを明示的に許可しない限り、ホスト環境からレジスタの内容にアクセスできなくなります。
  • 古典的な TCG (Tiny Code Generator) コード ジェネレーターは、x86 システムをエミュレートするときに、特権メモリ ページへのアクセスを保護するために使用できる PKS (Protection Keys Supervisor) メカニズムのサポートを実装します。
  • 中国の Loongson-3 プロセッサをサポートする新しいタイプのエミュレートされたマシン「virt」が MIPS アーキテクチャ エミュレータに追加されました。
  • エミュレートされたマシン用の PowerPC アーキテクチャ エミュレータ「powernv」では、外部 BMC コントローラのサポートが追加されました。 エミュレートされた pseries マシンの場合、メモリと CPU をホット リムーブしようとしたときの失敗の通知が提供されます。
  • DSP を使用した Qualcomm Hexagon プロセッサのエミュレーションのサポートが追加されました。
  • 古典的な TCG (Tiny Code Generator) コード ジェネレーターは、新しい Apple M1 ARM チップを搭載したシステム上の macOS ホスト環境をサポートします。
  • Microchip PolarFire ボード用の RISC-V アーキテクチャ エミュレータは、QSPI NOR フラッシュをサポートしています。
  • Tricore エミュレータは、Infineon TC27x SoC をエミュレートする新しい TriBoard ボード モデルをサポートするようになりました。
  • ACPI エミュレータは、ゲスト システムのネットワーク アダプタに、PCI バスへの接続順序に関係なく名前を割り当てる機能を提供します。
  • virtiofs は、ゲストのパフォーマンスを向上させるために FUSE_KILLPRIV_V2 オプションのサポートを追加しました。
  • VNC では、カーソルの透明性のサポートと、ウィンドウ サイズに基づいて virtio-vga での画面解像度のスケーリングのサポートが追加されました。
  • QMP (QEMU Machine Protocol) は、バックアップ タスクの実行時の非同期並列アクセスのサポートを追加しました。
  • USB エミュレータには、USB デバイスの操作時に生成されたトラフィックを、後で Wireshark で検査できるように別の pcap ファイルに保存する機能が追加されました。
  • qcow2 スナップショットを管理するための新しい QMP コマンド、load-snapshot、save-snapshot、および delete-snapshot を追加しました。
  • virtiofs の脆弱性 CVE-2020-35517 および CVE-2021-20263 が修正されました。 最初の問題は、特権ユーザーがゲスト システムのホスト環境と共有するディレクトリに特別なデバイス ファイルを作成することによって、ゲスト システムからホスト環境にアクセスできるようにします。 XNUMX 番目の問題は、「xattrmap」オプションの拡張属性の処理のバグによって引き起こされ、書き込み権限が無視され、ゲスト システム内で権限が昇格される可能性があります。

出所: オープンネット.ru

コメントを追加します