Kernel-based Virtual Machine

Kernel-based Virtual Machine (KVM) は、Linuxカーネルをハイパーバイザとして機能させるための仮想化モジュールである。Linuxカーネルのメインラインにバージョン2.6.20でマージされ、このカーネルは、2007年2月5日にリリースされた。KVMは、VTやAMD-Vなどのハードウェアの仮想化拡張を必要とする。KVMは、他のオペレーティングシステム (OS) であるFreeBSDやillumosにも、ローダブル・カーネル・モジュールの形態で移植されている。
KVMはもともとx86プロセッサ向けに設計されたが、後にS/390、PowerPC、IA-64、ARM向けにも移植されている。
KVMは、Linux、BSD、Solaris、Windows、Haiku、ReactOS、Plan 9、AROS Research Operating System、macOSなど、非常に幅広いゲストOSに対してを提供する。また、Android 2.2、GNU/Hurd（Debian K16）、 3.1.2a、Solaris 10 U3、Darwin 8.0.1などのOSや上記OSの新しいバージョンでは、何らかの制限の元で動作することが知られている。
さらに、KVMでVirtIO APIを利用することで、Linux、OpenBSD、FreeBSD、NetBSD、Plan 9、WindowsのゲストOSに対して、準仮想化の機能も提供する。準仮想化対象には、準仮想イーサネットカード、ディスクI/Oコントローラー、ゲストOSの仮想記憶管理の動作を変更するバルーンデバイス (balloon device)、またはVMwareを使用したVGAグラフィックインタフェースも含まれる。
歴史.
KVMの開発は、テクノロジーのスタートアップであるで、Avi Kivityにより始められた。Qumranetは、2008年レッドハットに買収された。
KVMは、Linuxカーネルのメインラインにバージョン2.6.20でマージされた。このLinuxカーネルは、2007年2月5日にリリースされた。
KVMは、Paolo Bonziniによりメンテナンスされている。
内部構造.
KVM自体はエミュレーションは全く実行しない。そのかわりに、codice_1インタフェースを公開することによって、ユーザースペースのホストが以下の機能を利用できるようにする。
Linuxでは、QEMUのバージョン0.10.1以降がユーザー空間のホストの1例である。QEMUは、ゲストをネイティブに近い速度で仮想化できる場合にはKVMを使うが、そうでない場合には、ソフトウェアのみのエミュレーションにフォールバックする。
内部では、KVMは、16ビットx86BIOSのオープンソース実装としてを利用している。
ライセンス.
KVMの各部品は、以下のように様々なGNUライセンスでライセンスされている。