Rust と Vulkan をサポートする QEMU 9.2.0 エミュレータが公開されました

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

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

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

  • Rust で書かれたデバイス モデルを作成するための実験的なサポートが追加されました。 Rust をサポートする QEMU を構築する場合、デフォルトでは、Rust で書かれた PL011 UART ドライバーの代替実装が使用されますが、まだ広く使用することは推奨されていません。

    現在、QEMU の Rust サポートはデフォルトで無効になっており、configure スクリプトの実行時に「--enable-rust」オプションを指定することでビルド中に有効になります。 Rust でビルドするには、少なくとも Rustc 1.63.0 および bindinggen 0.60.0 のバージョンが必要です (たとえば、Debian 12 では、新しいバージョンの Rust を個別にインストールする必要があります)。将来的には、必要なビルド依存関係として Rust コンパイラーと bindinggen を追加する予定です。

    QEMU における Rust の推進に関する計画には、HPET (高精度イベント タイマー) ドライバーと Rust で書かれたブロック デバイス用ドライバーを動作状態にすること、さまざまな QEMU コンポーネント (たとえば、ドライバー デバイス、タイマー、GPIO をブロックし、virtio などのセキュリティ クリティカルなシステムを Rust で書き換えます。

  • 仮想 GPU に電力を供給する VirtIO-GPU デバイスは、Mesa に含まれる Venus Vulkan ドライバーを通じて実装された Vulkan グラフィックス API を使用した 3D アクセラレーションのサポートを追加します。これにより、ゲスト システムを開かずに 3D レンダリング用の仮想 GPU を提供できるようになります。物理 GPU への排他的直接アクセス。動作するには、ホスト システム側に virglrenderer ライブラリがあり、ゲスト システム側に Venus Mesa ドライバが必要です。 QEMU で Vulkan サポートをセットアップする手順が利用可能です。
  • ゲスト移行ツールキットは、QATzip ライブラリを使用して、同時に送信されるデータ ストリームの圧縮操作を高速化するためのサポートを追加しました。このライブラリは、Intel プロセッサに組み込まれた QAT (QuickAssist Technology) アクセラレータを使用し、圧縮と暗号化に関連する計算を高速化するツールを提供します。
  • SHA-384 ハッシュ アルゴリズムのサポートが GLib ベースの暗号化バックエンドに追加されました。
  • ARM アーキテクチャ エミュレータには、xilinx-zynq-a16 ボードで使用されるセキュリティ拡張機能に加え、FEAT_EBF9 および FEAT_CMOW プロセッサ拡張機能のサポートが追加されました。 Hypervisor.framework ツールキットを使用して ARM Mac コンピュータでのゲスト実行を高速化する HVF コンポーネントを使用する場合、64 GB を超えるメモリがサポートされます。エミュレートされた sbsa-ref および virt システムの場合、SMMU (システム メモリ管理ユニット) での 800 段階のアドレス変換のサポートが追加されました。従来のエミュレートされたハードウェア タイプである Akita、Borzoi、Cheetah、Connex、Mainstone、n810、n2、spitz、terrier、tosa、verdex、および zXNUMX のサポートは廃止されました。
  • x86 アーキテクチャ エミュレータには、新しいタイプのハードウェア構成である nitro-enclave のサポートが追加されました。nitro-enclave は、AWS Nitro Enclave 環境をエミュレートし、Enclave Image Format でシステム イメージをロードできます。
  • ハイパーバイザ用の x86 アーキテクチャ エミュレータでは KVM AVX10命令セット、およびAVX10の特定バージョン(avx10-128、avx10-256、avx10-512)のサポートを有効にする機能が実装されました。
  • RISC-V アーキテクチャ エミュレータには、OpenTitan ボードで使用される Svvptc、Bitmanip (ビット操作)、および CFI (Control Flow Integrity) コマンド セット拡張機能のサポートが追加されました。 IOMMU サポートが「virt」エミュレートされたシステム タイプに追加されました。 ld 命令と st 命令のパフォーマンスが向上しました。
  • HPPA アーキテクチャ エミュレータでは、SeaBIOS-hppa ファームウェアがバージョン 17 に更新されました。
  • 指定したデバイスからの起動に失敗した場合に、他のデバイスから起動する機能が s390x アーキテクチャ エミュレータに追加されました。

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

コメントを追加します