- Full virtualization on x86 hardware
Using KVM, one can run multiple virtual PC:s, each running unmodified Linux or
Windows images. Each virtual machine has private virtualized hardware: a
network card, disk, graphics adapter, etc.
KVM (for Kernel-based Virtual Machine) is a full virtualization solution for
Linux hosts on x86 hardware with x86 guests. KVM is intended for systems where
the processor has hardware support for virtualization, see below for details.
All combinations of 32-bit and 64-bit host and guest systems are supported,
except 64-bit guests on 32-bit hosts.
For the best performance the processor must support hardware virtualization,
provided by AMD's SVM capability and Intel's VT. To find out if your
processor has the necessary support, do as follows:
* Make sure you run Linux 2.6.16 or newer for AMD processors, or
Linux 2.6.15 for Intel processors. Older Linux versions do not report
the virtualization capabilities.
* Run this command in a shell: egrep '^flags.*(vmx|svm)' /proc/cpuinfo
If it prints anything, the processor provides hardware virtualization
support and is suitable for use with KVM.
Without hardware support, KVM falls back to the considerably slower QEMU-based
software virtualization. In this case, it makes more sense to use the qemu
package, possibly with the kqemu package (in non-free) for better performance.
The recommended qemu package contains the the qemu-img program needed to create
virtual disk images as well as the script /usr/sbin/qemu-make-debian-root,
which uses debootstrap to build a debian disk image. See the man page
for qemu-make-debian-root. The suggested hal package is only used for
automatically reporting the system bios version and computer model when
reporting bugs. The suggested etherboot package contains Etherboot
ROM images for, among others, the NE2000, PCNET and RTL8139 ethernet cards
emulated (see appendix A. List of supported NICs in the package etherboot-doc).
KVM consists of two loadable kernel modules (kvm.ko and kvm-amd.ko or
kvm-intel.ko) and a userspace component. This package contains the userspace
component, while kvm-source provides the module source.