Kernel-based Virtual Machine
Screenshot of QEMU/KVM running NetBSD, OpenSolaris and Kubuntu on an Arch Linux host. |
|
| Developer(s) | Red Hat, Inc. |
|---|---|
| Stable release | 15 / June 15, 2011 |
| Written in | C |
| Operating system | Linux kernel |
| Type | Platform virtualization |
| License | GNU General Public License or GNU Lesser General Public License |
| Website | www.linux-kvm.org (unofficial) |
Kernel-based Virtual Machine (KVM) is a virtualization infrastructure for the Linux kernel. KVM supports native virtualization on processors with hardware virtualization extensions.[1]
KVM originally supported x86 and x86-64 processors and has been ported to S/390,[2] PowerPC,[3] and IA-64. An ARM port is in progress.[4]
A wide variety of guest operating systems work with KVM, including many flavours of Linux, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, and AROS Research Operating System.[5] A modified version of QEMU can use KVM to run Mac OS X.[6]
Limited paravirtualization support is available for Linux and Windows guests using the VirtIO framework. This supports a paravirtual Ethernet card, a paravirtual disk I/O controller, a balloon device for adjusting guest memory usage, and a VGA graphics interface using SPICE or VMware drivers.
KVM uses SeaBIOS.
Linux 2.6.20 (released February 2007) was the first to include KVM.[7]
KVM has also been ported to FreeBSD and Illumos as a loadable kernel module.[8][9]
Contents |
[edit] Design
By itself, KVM does not perform any emulation. Instead, a user space program uses the /dev/kvm interface to set up the guest VM's address space, feeds it simulated I/O and maps its video display back onto the host's. QEMU versions 0.10.1 and later make use of this.
[edit] Licensing
KVM's parts are licensed under various GNU licenses:[10]
- KVM kernel module: GPL v2
- KVM user module: LGPL v2
- QEMU virtual CPU core library (libqemu.a) and QEMU PC system emulator: LGPL
- Linux user mode QEMU emulator: GPL
- BIOS files (bios.bin, vgabios.bin and vgabios-cirrus.bin): LGPL v2 or later
[edit] History
Qumranet, a technology startup company, began the development of KVM.[11] Red Hat bought Qumranet in 2008.[12] KVM is maintained by Avi Kivity and Marcelo Tosatti.
[edit] Graphical management tools
- Witsbits - A simplified end-to-end solution for SMB IT staff and IT services providers.
- Virtual Machine Manager - Supports creating, editing, starting, and stopping KVM-based virtual machines, as well as live or cold drag-and-drop migration of VMs between hosts.
- ConVirt - Manages creating, editing, starting, and stopping KVM-based virtual machines, as well as live or cold drag-and-drop migration of VMs between hosts.
- Proxmox Virtual Environment - Free virtualization management package including KVM and OpenVZ. It has a bare-metal installer, a web-based remote management GUI, and optional commercial support.
- OpenNode - RHEL/CentOS-based open-source server virtualization and management solution with a simple bare-metal installer, providing KVM+OpenVZ host and standard libvirt, func management interfaces together with standard CLI tools like virsh and vzctl.
- OpenQRM
- SolusVM - Supports the management of KVM-based virtual machines as well as Xen and OpenVZ.
- Virtualbricks - Python/GTK+-based management of KVM and QEMU virtual machines with a complete set of networking tools to emulate a real switched network using VDE.
[edit] Emulated hardware
| Class | Device |
|---|---|
| Video card | Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions[13] |
| PCI | i440FX host PCI bridge and PIIX3 PCI to ISA bridge[13] |
| Input device | PS/2 Mouse and Keyboard[13] |
| Sound card | Sound Blaster 16, ENSONIQ AudioPCI ES1370, Gravis Ultrasound GF1, CS4231A compatible[13] |
| Ethernet Network card | AMD Am79C970A (Am7990), E1000 (Intel 82540EM, 82573L, 82544GC), NE2000, and Realtek RTL8139 |
| Watchdog timer | Intel 6300ESB or IB700 |
| RAM | 50 MB - 32 TB |
| CPU | 1-16 CPUs |
[edit] Implementations
- Red Hat Enterprise Linux (RHEL) 5.4 and above
- SUSE Linux Enterprise Server (SLES) 11 SP1 and above
- Ubuntu 10.04 LTS and above
- Gentoo Linux
[edit] See also
[edit] References
- ^ KVM FAQ: What do I need to use KVM?
- ^ Gmane - Mail To News And Back Again
- ^ Gmane Loom
- ^ KVM for ARM wiki
- ^ "KVM wiki: Guest support status". http://www.linux-kvm.org/page/Guest_Support_Status. Retrieved 2007-05-27.
- ^ "Howto: Mac OS X on KVM". http://d4wiki.goddamm.it/index.php?title=Howto:_Mac_OSX_on_KVM.
- ^ "Linux: 2.6.20 Kernel Released". KernelTrap. http://kerneltrap.org/node/7670.
- ^ "FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD". http://www.freebsd.org/news/status/report-2007-07-2007-10.html#Porting-Linux-KVM-to-FreeBSD.
- ^ "KVM on illumos". http://dtrace.org/blogs/bmc/2011/08/15/kvm-on-illumos/.
- ^ Licensing info from Ubuntu 7.04 /usr/share/doc/kvm/copyright
- ^ Interview: Avi Kivity on KernelTrap
- ^ Red Hat press release on Qumranet purchase
- ^ a b c d http://wiki.qemu.org/download/qemu-doc.html