KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko. KVM also requires a modified QEMU although work is underway to get the required changes upstream.

Introduction

Kernel-based Virtual Machine (KVM) is a virtualization infrastructure for the Linux kernel. KVM supports native virtualization on processors with hardware virtualization extensions. KVM originally supported x86 and x86-64 processors and has been ported to S/390, PowerPC, and IA-64. An ARM port is in progress.

A wide variety of guest operating systems work with KVM, including many flavours of Linux, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, and AROS Research Operating System. A modified version of QEMU can use KVM to run Mac OS X.

Limited paravirtualization support is available for Linux and Windows guests using the VirtIO framework. This supports a paravirtual Ethernet card, a paravirtual disk I/O controller, a balloon device for adjusting guest memory usage, and a VGA graphics interface using SPICE or VMware drivers. KVM uses SeaBIOS.

Design

By itself, KVM does not perform any emulation. Instead, a user space program uses the /dev/kvm interface to set up the guest VM's address space, feeds it simulated I/O and maps its video display back onto the host's. QEMU versions 0.10.1 and later make use of this.

Features

  • QMP - QEMU Monitor Protocol
  • KSM - Kernel Samepage Merging
  • Kvm Paravirtual Clock - A Paravirtual timesource for KVM
  • CPU Hotplug support - Adding CPUs on the fly
  • PCI Hotplug support - Adding PCI devices on the fly
  • vmchannel - Communication channel between the host and guests
  • migration - Migrating virtual machines
  • vhost -
  • SCSI disk emulation -
  • Virtio Devices -
  • CPU clustering -
  • hpet -
  • device assignment -
  • PXE boot -
  • iSCSI boot -
  • x2apic -
  • Floppy -
  • CD-ROM -
  • USB -
  • USB host device passthrough -
  • Sound -
  • Userspace Irqchip emulation -
  • Userspace Pit emulation -
  • Balloon memory driver -
  • Large pages support -
  • Stable Guest ABI -

Links

Official Website