基于内核的虚拟机(英语:Kernel-based Virtual Machine,缩写为KVM)是一种用于Linux内核中的虚拟化基础设施,可将Linux内核转化为一个虚拟机监视器。KVM于2007年2月5日被导入Linux 2.6.20核心中。KVM需要支持硬件虚拟化拓展(英语:hardware-assisted virtualization)特性的处理器。。
KVM起初支持x86平台处理器并随后被移植到了S/390(英语:IBM ESA/390)、PowerPC、和IA-64平台上。在3.9内核合并时也导入了ARM移植版。
在KVM上可以运行诸多客户操作系统,包括Linux的诸多发行版、BSD、Solaris、Windows、Haiku、ReactOS、Plan 9、AROS研究操作系统(英语:AROS Research Operating System)和OS X。除此之外,还支持Android 2.2、GNU/Hurd(Debian K16)、Minix 3.1.2a、Solaris 10 U3和Darwin 8.0.1,而其他操作系统或新版操作系统都支持KVM,仅仅存在一些限制而已。
VirtIO半虚拟化(英语:Paravirtualization) 在Linux、OpenBSD、FreeBSD、 NetBSD、Windows上支持对部分设备的半虚拟化(英语:Paravirtualization)。这项特性支持半虚拟化的网卡、半虚拟化的磁盘控制器、用于调整客户端内存使用的气球设备(Balloon device)和使用独立计算环境简单协议的VGA图形接口。
KVM提供抽象的设备,但不模拟处理器。它开放了/dev/kvm接口,供使用者模式的主机使用:
在Linux上,QEMU版本0.10.1及更新版就是一个用户层主机。QEMU使用KVM以近乎原生的速度虚拟化客户机,若无KVM的话则将仅使用软件模拟。
KVM内部使用SeaBIOS(英语:SeaBIOS)作为对16位x86 BIOS的开源模拟。
KVM的组件使用多个GNU协议授权:
阿维·齐维迪(Avi Kivity)在一家名为Qumranet(英语:Qumranet)的初创企业开始了KVM的研发工作,随后此公司于2008年被红帽公司收购。
KVM被合并入Linux内核版本2.6.20的主流分支,于2007年2月5日发布。
KVM现由保罗·邦齐尼(Paolo Bonzini)维护。