Original author(s) | Qumranet |
---|---|
Developer(s) | The Linux Kernel community |
Repository | |
Written in | C |
Operating system | Unix-like |
Platform | ARM, PowerPC, ESA/390, IA-32, x86-64 |
Type | Hypervisor |
License | GNU GPL or LGPL |
Website | www |
Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007.[1] KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V.[2] KVM has also been ported to other operating systems such as FreeBSD[3] and illumos[4] in the form of loadable kernel modules.
KVM was originally designed for x86 processors but has since been ported to ESA/390,[5] PowerPC,[6] IA-64, and ARM.[7][8] The IA-64 port was removed in 2014.[9]
KVM supports hardware-assisted virtualization for a wide variety of guest operating systems including BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS, macOS, and even other Linux systems.[10][11] In addition, Android 2.2, GNU/Hurd[12] (Debian K16), Minix 3.1.2a, Solaris 10 U3 and Darwin 8.0.1, together with other operating systems and some newer versions of these listed, are known to work with certain limitations.[13]
Additionally, KVM provides paravirtualization support for Linux, OpenBSD,[14] FreeBSD,[15] NetBSD,[16] Plan 9[17] and Windows guests using the VirtIO API.[18] This includes a paravirtual Ethernet card, disk I/O controller,[19] balloon driver, and a VGA graphics interface using SPICE or VMware drivers.