Kernel-based Virtual Machine (KVM) is a full virtualization solution for Linux on x86 hardware. It consists of a loadable kernel module called kvm.ko and a userspace component, both open source software. The kernel component of KVM is included in mainline Linux, and will appear in upcoming Linux 2.6.20.
KVM allows one to run virtual machines using unmodified Linux or Windows disk images. Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc.
This article tries to explain how it all works, in theory and practice, together with some simple benchmarks. From the article:
Under KVM’s model, every virtual machine is a regular Linux process scheduled by the standard Linux scheduler. KVM consists of two components:
=> a device driver for managing the virtualization hardware
=> a user-space component for emulating PC hardware; this is a lightly modified QEMU process