出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/01/12 09:57 UTC 版)
| |
|
| |
|
| 作者 | Qumranet |
|---|---|
| リポジトリ | |
| プログラミング 言語 |
C |
| 対応OS | Unix-like |
| プラットフォーム | ARM、PowerPC、S/390、x86、x86-64、RISC-V |
| 種別 | 仮想化 |
| ライセンス | GPL または LGPL |
| 公式サイト | www |
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[7]、ARM向けにも移植されている[8]。IA-64のサポートは2014年に終了した。[9]
KVMは、Linux、BSD、Solaris、Windows、Haiku、ReactOS、Plan 9、AROS Research Operating System[10]、macOS[11]など、非常に幅広いゲストOSに対してハードウェア支援仮想化を提供する。また、Android 2.2、GNU/Hurd[12](Debian K16)、Minix 3.1.2a、Solaris 10 U3、Darwin 8.0.1などのOSや上記OSの新しいバージョンでは、何らかの制限の元で動作することが知られている[13]。
さらに、KVMでVirtIO[14] APIを利用することで、Linux、OpenBSD[15]、FreeBSD[16]、NetBSD[17]、Plan 9[18]、WindowsのゲストOSに対して、準仮想化の機能も提供する。準仮想化対象には、準仮想イーサネットカード、ディスクI/Oコントローラー[19]、ゲストOSの仮想記憶管理の動作を変更するバルーンデバイス (balloon device)、SPICEまたはVMwareを使用したVGAグラフィックインタフェースも含まれる。
KVMの開発は、テクノロジーのスタートアップであるQumranetで、Avi Kivityにより始められた[20]。Qumranetは、2008年レッドハットに買収された[21]。
KVMは、Linuxカーネルのメインラインにバージョン2.6.20でマージされた。このLinuxカーネルは、2007年2月5日にリリースされた[22]。
KVMは、Paolo Bonziniによりメンテナンスされている[23]。
KVM自体はエミュレーションは全く実行しない。そのかわりに、/dev/kvmインタフェースを公開することによって、ユーザースペースのホストが以下の機能を利用できるようにする。
Linuxでは、QEMUのバージョン0.10.1以降がユーザー空間のホストの1例である。QEMUは、ゲストをネイティブに近い速度で仮想化できる場合にはKVMを使うが、そうでない場合には、ソフトウェアのみのエミュレーションにフォールバックする[25]。
内部では、KVMは、16ビットx86BIOSのオープンソース実装としてSeaBIOSを利用している。
| 種別 | デバイス |
|---|---|
| ビデオカード | Cirrus CLGD 5446 PCI VGAカード、Bochs VESA拡張を利用したダミーVGAカード[26]、VirtIO、QXL VGA |
| PCI | I440FX or Q35 |
| 入力デバイス | PS/2マウスおよびキーボード[26] |
| サウンドカード | Sound Blaster 16、ENSONIQ AudioPCI ES1370 AC97、Gravis Ultrasound GF1、CS4231A compatible[26]、HD Audio |
| イーサネット ネットワークカード | AMD Am79C970A(Am7990)、E1000(Intel 82540EM, 82573L, 82544GC)、NE2000、Realtek RTL8139、VirtIO |
| ウォッチドッグタイマー | Intel 6300ESBまたはIB700 |
| RAM | 50 MB - 32 TB |
| CPU | 1 – 160 CPU |
KVMの各部品は、以下のように様々なGNUライセンスでライセンスされている[27]。
固有名詞の分類