Kernel-based Virtual Machine
Kernel-based Virtual Machine (KVM) は、Linuxカーネルをハイパーバイザとして機能させるための仮想化モジュールである。Linuxカ�…
|
| |
|
| |
| 作者 | 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インタフェースを公開することによって、ユーザースペースのホストが以下の機能を利用できるようにする。
- ゲストVMのアドレス空間のセットアップ。ホストは、ゲストがメインOS内にブートストラップするために利用するファームウェアイメージも提供する必要がある。通常、PCをエミュレートする時のカスタムBIOSである。
- ゲストのシミュレートされたI/Oをフィード。
- ゲストのビデオディスプレイをシステムホストにマッピング。
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 |
グラフィカルな管理ツール

- Kimchi – ウェブベースのKVM仮想化管理ツール。
- Virtual Machine Manager – はKVMベースの仮想マシンの作成、編集、スタート、ストップに対応している。また、ホスト間でドラッグ・アンド・ドロップによるVMのライブまたはコールドマイグレーションもできる。
- Proxmox Virtual Environment – KVMとLXCを含むオープンソースの仮想化管理パッケージ。ベアメタルのインストーラ、ウェブベースのリモート管理GUI、HAクラスタースタック、統合ストレージ (unified storage)、柔軟なネットワーク管理 (flexible network)、オプションの商用サポートがある。
- OpenQRM – ヘテロジニアスなデータセンターのインフラストラクチャーを管理するための管理プラットフォーム。
- GNOME Boxes – Linux上のlibvirtのゲストを管理するためのGNOMEインタフェース。
- oVirt – libvirtを基盤に構築された、KVMのためのオープンソースの仮想化管理ツール。
ライセンス
KVMの各部品は、以下のように様々なGNUライセンスでライセンスされている[27]。
- KVM カーネルモジュール: GPL v2
- KVM ユーザモジュール: LGPL v2
- QEMU 仮想CPUコアライブラリ (libqemu.a) とQEMU PCシステムエミュレータ: LGPL
- LinuxユーザモードQEMUエミュレータ: GPL
- BIOSファイル (bios.bin, vgabios.bin, vgabios-cirrus.bin) : LGPL v2以降
関連項目
脚注・出典
- ^ “Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM”. kernelnewbies.org (2007年2月5日). 2014年6月16日閲覧。
- ^ KVM FAQ: What do I need to use KVM?
- ^ “FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD”. 2008年10月3日閲覧。
- ^ “KVM on illumos”. 2011年11月15日閲覧。
- ^ “Gmane - Mail To News And Back Again”. 2007年9月29日時点のオリジナルよりアーカイブ。2007年5月7日閲覧。
- ^ Gmane Loom Archived 2007-09-29 at the Wayback Machine.
- ^ “Linux_2_6_26 -Linux Kernel Newbies”. kernelnewbies.org. 2025年9月22日閲覧。
- ^ KVM/ARM Open Source Project
- ^ “KVM: ia64: remove”. kernel.org. 2025年9月22日閲覧。
- ^ “KVM wiki: Guest support status”. 2007年5月27日閲覧。
- ^ “Running Mac OS X as a QEMU/KVM Guest”. 2014年8月20日閲覧。
- ^ “status”. Gnu.org. 2014年2月12日閲覧。
- ^ “Guest Support Status - KVM”. Linux-kvm.org. 2014年2月12日閲覧。
- ^ “An API for virtual I/O: virtio”. LWN.net (2007年7月11日). 2014年4月16日閲覧。
- ^ “OpenBSD man page virtio(4)”. 2018年2月4日閲覧。
- ^ “virtio binary packages for FreeBSD”. 2012年10月29日閲覧。
- ^ “NetBSD man page virtio(4)”. 2013年7月15日閲覧。
- ^ “plan9front”. 2013年2月11日閲覧。
- ^ “SCSI target for KVM wiki”. linux-iscsi.org (2012年8月7日). 2012年8月12日閲覧。
- ^ Interview: Avi Kivity Archived 2007-04-26 at the Wayback Machine. on KernelTrap
- ^ “Red Hat Advances Virtualization Leadership with Qumranet, Inc. Acquisition”. レッドハット (2008年9月4日). 2015年6月16日閲覧。
- ^ “Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM”. kernelnewbies.org (2007年2月5日). 2014年6月16日閲覧。
- ^ Libby Clark (2015年4月7日). “Git Success Stories and Tips from KVM Maintainer Paolo Bonzini”. Linux.com. 2015年6月17日閲覧。
- ^ “KVM/QEMU Storage Stack Performance Discussion” (PDF). ibm.com. Linux Plumbers Conference (2010年). 2015年1月3日閲覧。[リンク切れ]
- ^ “SeaBIOS”. seabios.org (2013年12月21日). 2014年6月16日閲覧。
- ^ a b c wiki.qemu.org – QEMU Emulator User Documentation, read 2010-05-06
- ^ Ubuntu 7.04 /usr/share/doc/kvm/copyright からのライセンス情報
外部リンク
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.