ユーザーモードqemuとKVM

ユーザーモードqemuとKVM

ターゲットx86(またはターゲットアーチ=ホストアーチ)でx86をターゲットとするユーザーモードqemuを実行するとき、qemuはKVMを使用するか、コントロールをCPUに直接転送するか、コマンドを解釈しますか?

答え1

ユーザーモードがKVMを使用しないという間接的な証拠は次のとおりです。

  • ユーザーモードの実行可能ファイルにはオプションは表示されませんが、qemu-x86_64 --helpシステム全体の実行可能ファイルには--kvmオプションが表示されます。qemu-system-x86_64 --help

  • 以下では、入力命令とバイナリ翻訳命令を表示できます。

    qemu-x86_64 -d in_asm,out_asm hello.out
    

    コメントの例:ARM用に書かれたデフォルトのAndroidコードがx86で実行される方法

今より興味深い質問は理論的に可能ですか?

確かではありませんが、おおよそgem5 エミュレータ同様のユーザーモード(システムコールエミュレーションと呼ばれる)を持つAMDは、少なくともこの可能性について真剣に調査し、次のように結論付けました。http://www.m5sim.org/wiki/images/5/53/2015_ws_12_KVM-in-SE.pdf

実際、2014年に何かがマージされました:adbaa4dfde96d5aaf84adf0ae4989ef880aad726 "kvm、x86:SEモード実行のサポートを追加"。しかし、3ca404da175a66e0b958165ad75eb5f54cb5e772を試すと失敗しKeyError: 'OsKernel'、追加の調査/質問が必要です。

関連情報