ケム
これは、汎用のオープン ソース マシン エミュレーターおよびバーチャライザーです。 QEMU をマシン エミュレータとして使用すると、あるマシン (ARM ボードなど) 用に作成された OS とプログラムを別のマシン (自分の PC など) で実行できます。動的変換を使用することで、Qemu は非常に優れたパフォーマンスを実現します。
重要な機能の一部を以下に示します:
- Qemu は完全なスタンドアロン ソフトウェアであり、ターゲット オペレーティング システムをエミュレートします。
- Qemu は準仮想化をサポート
- 単なるプロセッサ以上のものをエミュレートするために、Qemu にはディスク、ネットワーク、VGA、PCI、USB、シリアル/パラレル ポートなどの周辺機器エミュレータの長いリストが含まれています。
KVM (カーネル仮想マシン)
KVM は、ユーザー空間プログラムがさまざまなプロセッサのハードウェア仮想化機能を利用できるようにする Linux カーネル モジュールです。重要な機能の一部を以下に示します:
- KVM は完全な仮想化をサポート
- KVM は Qemu 実行可能ファイルのフォークです。両チームは、違いを最小限に抑えるために積極的に取り組んでいます
- プロセッサの状態切り替えとは別に、カーネル モジュールは、MMU レジスタ (VM の処理に使用) や PCI エミュレート ハードウェアの一部など、エミュレーションのいくつかの低レベル部分も処理します。
Qemu-kvm
KVM プロジェクトは、qemu-kvm と呼ばれる QEMU のフォークを維持しています。 x86 上の QEMU で KVM を使用するための最高のパフォーマンスと特定の追加機能を引き続き提供します。その他のアーキテクチャは、QEMU 自体によってすでに完全にサポートされています。目標は、残りのすべての機能の違いを QEMU アップストリームにマージすることです。