HOME

TheInfoList



OR:

Kernel-based Virtual Machine (KVM) is a
virtualization In computing, virtualization or virtualisation (sometimes abbreviated v12n, a numeronym) is the act of creating a virtual (rather than actual) version of something at the same abstraction level, including virtual computer hardware platforms, st ...
module in the Linux kernel that allows the
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine lea ...
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. KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V. KVM has also been ported to other operating systems such as FreeBSD and illumos in the form of loadable kernel modules. KVM was originally designed for x86 processors but has since been ported to S/390,
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple– IBM ...
, IA-64, and ARM. KVM provides hardware-assisted virtualization for a wide variety of guest operating systems including Linux, BSD, Solaris,
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
,
Haiku is a type of short form poetry originally from Japan. Traditional Japanese haiku consist of three phrases that contain a ''kireji'', or "cutting word", 17 ''On (Japanese prosody), on'' (phonetic units similar to syllables) in a 5, 7, 5 pattern, ...
, ReactOS,
Plan 9 Plan 9 or Plan Nine may refer to: Music * Plan 9 (band), a psychedelic rock band from Rhode Island * ''Plan 9'', an album by Big Guitars From Memphis with Rick Lindy * "Plan 9", a song on the 1993 album ''Gorgeous'' by electronica band 808 Stat ...
, AROS Research Operating System and
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
. In addition, Android 2.2, GNU/Hurd (
Debian Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of De ...
K16), Minix 3.1.2a, Solaris 10 U3 and
Darwin Darwin may refer to: Common meanings * Charles Darwin (1809–1882), English naturalist and writer, best known as the originator of the theory of biological evolution by natural selection * Darwin, Northern Territory, a territorial capital city i ...
8.0.1, together with other operating systems and some newer versions of these listed, are known to work with certain limitations. Additionally, KVM provides paravirtualization support for Linux, OpenBSD, FreeBSD, NetBSD, Plan 9 and Windows guests using the VirtIO API. This includes a paravirtual
Ethernet card A network interface controller (NIC, also known as a network interface card, network adapter, LAN adapter or physical network interface, and by similar terms) is a computer hardware component that connects a computer to a computer network. Ear ...
, disk I/O controller, balloon driver, and a VGA graphics interface using SPICE or VMware drivers.


History

Avi Kivity began the development of KVM in mid-2006 at
Qumranet Qumranet, Inc. was an enterprise software company offering a desktop virtualization platform based on hosted desktops in Kernel-based Virtual Machines (KVM) on servers, linked with their SPICE protocol. The company was also the creator, maintai ...
, a technology startup company that was acquired by Red Hat in 2008. KVM surfaced in October, 2006 and was merged into the Linux kernel mainline in kernel version 2.6.20, which was released on 5 February 2007. KVM is maintained by Paolo Bonzini.


Internals

KVM provides device abstraction but no processor emulation. It exposes the interface, which a user mode host can then use to: * Set up the guest VM's address space. The host must also supply a firmware image (usually a custom BIOS when emulating PCs) that the guest can use to bootstrap into its main OS. * Feed the guest simulated I/O. * Map the guest's video display back onto the system host. Originally a forked version of QEMU was provided to launch guests and deal with hardware emulation that isn't handled by the kernel. That support was eventually merged into the upstream project. There are now numerous Virtual Machine Monitors (VMMs) which can utilise the KVM interface including kvmtool, crosvm and Firecracker and numerous specialised VMMs build with frameworks such as rust-vmm. Internally, KVM uses SeaBIOS as an open source implementation of a 16-bit x86 BIOS.


Features

KVM has had support for hot swappable vCPUs, dynamic memory management, and Live Migration since February 2007. Memory write intensive workload impact in migration process


Emulated hardware

KVM itself emulates very little hardware, instead deferring to a higher level client application such as QEMU, crosvm, or Firecracker for device emulation. KVM provides the following emulated devices: * Virtual
CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
and memory * VirtIO


Graphical management tools

* Kimchi web-based virtualization management tool for KVM *
Virtual Machine Manager In computing, the Red Hat Virtual Machine Manager, also known as virt-manager, is a desktop virtual machine monitor. Features Virtual Machine Manager allows users to: * create, edit, start and stop VMs * view and control each VM's conso ...
supports 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 an open-source virtualization management package including KVM and
LXC Linux Containers (LXC) is an operating-system-level virtualization method for running multiple isolated Linux systems (containers) on a control host using a single Linux kernel. The Linux kernel provides the cgroups functionality that allows l ...
. It has a bare-metal installer, a web-based remote management GUI, a HA cluster stack, unified storage, flexible network, and optional commercial support. * OpenQRM management platform for managing heterogeneous data center infrastructures * GNOME Boxes Gnome interface for managing libvirt guests on Linux * oVirt open-source virtualization management tool for KVM built on top of libvirt


Licensing

The kernel-mode component of KVM is a part of Linux kernel, itself licensed under GNU General Public License, version 2.


See also

* CloudStack * Comparison of platform virtualization software *
Kernel same-page merging In computing, kernel same-page merging (KSM), also known as kernel shared memory, memory merging, memory deduplication, and page deduplication is a kernel feature that makes it possible for a hypervisor system to share memory pages that have ...
(KSM) * Lguest * libguestfs * Open Virtualization Alliance * OpenNebula * OpenStack *
Red Hat Virtualization Red Hat Virtualization (RHV) formerly known as Red Hat Enterprise Virtualization, is an x86 virtualization product developed by Red Hat, and is based on the KVM hypervisor. Red Hat Virtualization uses the SPICE protocol and VDSM (Virtual De ...
* Vx32 * Xen


References


Bibliography

*


External links

*
Best practices for the Kernel-based Virtual Machine
IBM, second edition, April 2012
Virtio-blk Performance Improvement
KVM Forum 2012, November 8, 2012, by Asias He
Wikibook QEMU & KVM

crosvm - chrome OS virtual machine monitor

Firecracker VMM for KVM
{{DEFAULTSORT:Kernel-based Virtual Machine Free emulation software Free software programmed in C Free virtualization software Linux kernel features Virtualization software Virtualization software for Linux Red Hat software