KVM
By Linux kernel community
KVM (Kernel-based Virtual Machine) is a virtualization module built into the Linux kernel that turns a Linux host into a type-1 hypervisor, letting it run multiple isolated guest operating systems directly on the underlying hardware. It…
Definition
KVM (Kernel-based Virtual Machine) is a virtualization module built into the Linux kernel that turns a Linux host into a type-1 hypervisor, letting it run multiple isolated guest operating systems directly on the underlying hardware. It uses CPU virtualization extensions to give each virtual machine near-native performance and is typically paired with QEMU for device emulation and higher-level management tooling such as libvirt.
Overview
Before hardware-assisted virtualization was common, running multiple operating systems on one machine meant relying on slow software emulation or hosted hypervisors layered on top of a general-purpose OS. KVM addresses this by turning the Linux kernel itself into a hypervisor, exposing virtualization as a kernel feature rather than a separate product installed alongside it. KVM works by loading a kernel module that exposes the CPU's hardware virtualization extensions, such as Intel VT-x or AMD-V, as a device node. A userspace program, almost always QEMU, uses that device to create virtual machines, allocate memory, and emulate peripheral devices, while KVM itself handles the CPU and memory virtualization that benefits most from hardware acceleration. This division of labor keeps the kernel component small while allowing flexible device emulation in userspace. Among type-1 hypervisors, KVM is distinguished by being open source and merged into mainline Linux rather than a separate proprietary product like VMware ESXi or a dedicated hypervisor kernel like Xen Project. Because any modern Linux distribution can become a hypervisor host simply by loading the KVM module, it has become the default virtualization layer underneath major open-source cloud platforms. KVM is the foundation of most private and public cloud infrastructure that isn't VMware-based, including OpenStack deployments and large portions of public cloud providers' compute fleets. It is also used in desktop virtualization tools and in CI systems that need fully isolated, kernel-level sandboxes for untrusted code, often through libvirt as a management layer on top of raw KVM and QEMU. Distribution vendors ship KVM support out of the box, so any recent Linux server can be turned into a hypervisor host without installing a separate proprietary product, which is part of why it has become the default choice for organizations building their own virtualization or cloud stack rather than buying one. KVM requires CPU virtualization extensions to be present and enabled, so it does not work in environments without hardware support or where nested virtualization is restricted, such as some constrained cloud VMs. It also depends on QEMU or another userspace component for actual device emulation, meaning KVM alone is not a complete virtualization solution, and its raw configuration is more manual than a fully packaged commercial hypervisor platform. Teams that want polished fleet management, live migration orchestration, or vendor support contracts typically layer additional software, such as oVirt, Proxmox VE, or an OpenStack distribution, on top of bare KVM rather than operating it directly at scale.
Key Features
- Built directly into the mainline Linux kernel as a loadable module
- Relies on Intel VT-x or AMD-V hardware extensions for near-native speed
- Delegates device emulation to QEMU while handling CPU and memory virtualization
- Commonly managed through libvirt for a higher-level API and tooling
- Supports live migration of running virtual machines between hosts
- Open source with no licensing cost for the hypervisor itself
- Forms the virtualization layer beneath OpenStack and many cloud platforms
- Supports nested virtualization for running hypervisors inside virtual machines