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 KVM originally supported x86 and x86-64 processors and has been ported to S/390,PowerPC PowerPC,and 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 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 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 - QemuQEMU Monitor Protocol
- KSM - Kernel Samepage Merging
- Kvm Paravirtual Clock - A Paravirtual timesource for KVM
- CPU Hotplug support - Adding cpusCPUs on the fly
- PCI Hotplug support - Adding pciPCI devices on the fly
- vmchannel - Communication channel between the host and guests
- migration - Migrating Virtual Machinesvirtual machines
- vhost -
- SCSI disk emulation -
- Virtio Devices -
- CPU clustering -
- hpet -
- device assignment -
- pxePXE boot -
- iscsiiSCSI boot -
- x2apic -
- floppyFloppy -
- cdromCD-ROM -
- USB -
- USB host device passthrough -
- soundSound -
- Userspace Irqchip emulation -
- Userspace Pit emulation -
- Balloon memory driver -
- Large pages support -
- Stable Guest ABI -