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