
QEMU公式紹介によると文書:
仮想化器として使用される場合、QEMUはホストCPUで直接ゲストコードを実行して、基本に近いパフォーマンスを達成します。
私の質問は、この動作が私たちがハイパーバイザーと呼ぶプログラム(VirtualBox、KVMなど)とどう違うのですか? 「ホストCPU」でも「ゲストコード」を実行していませんか?またどこで運営しますか?
修正する:
次の図が表示された場合(源泉)が正しい場合、QEMUはハイパーバイザーなどのオペレーティングシステム全体ではなくアプリケーションを実行しますが、異なるアーキテクチャタイプ間の変換を実行することがわかりました(たとえば、ARM用に作成されたプログラムはx86で実行できます)。
上記を考慮して、実行シナリオは次のとおりです。
a)特定のアーキテクチャ(ARMなど)のための完全なオペレーティングシステム
b)異なるアーキテクチャを持つホスト(例:amd64)
どちらも共存しなければならない
QEMU (アーキテクチャ間マッピングの実行)
そして
KVM(ハードウェアハイパーバイザーの役割)
あなたが必要とするか。
答え1
引用した句は、文書の前の段落と対照する必要があります。
QEMUをマシンエミュレータとして使用すると、1台のマシン(ARMボードなど)用に作成されたオペレーティングシステムとプログラムを別のマシン(PCなど)で実行できます。動的翻訳を使用すると、非常に良いパフォーマンスを得ることができます。
ドキュメントはバイナリコード変換を含むため、低速エミュレータとして使用されるQEMUと仮想化器として使用されるQEMUの違いを強調します。
ダイアグラムで判断すると不完全です。 QEMUは汎用性があり、ゲストオペレーティングシステムを実行してシステム全体をエミュレートしたり、ゲストオペレーティングシステムを再実行してシステム全体を仮想化したり、ゲストのみを実行してホストオペレーティングシステムでCPUをエミュレートまたは仮想化するために単独で使用できます。アプリケーション。 KVM で使用されるデバイスのエミュレートにも使用できます。