基于内核的虚拟机

基于内核的虚拟机（英語：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接口，供使用者模式的主機使用： 设置客户虚拟机的地址空间。宿主机同样也需用户可用于引导进主操作系统的固件镜像（通常为模拟PC时的自定义BIOS）。 为客户机模拟I/O。 将客户机的视频显示映射回系统宿主机上。 在Linux上，QEMU版本0.10.1及更新版就是一个用户层主机。QEMU使用KVM以近乎原生的速度虚拟化客户机，若无KVM的话则将仅使用软件模拟。 KVM内部使用SeaBIOS（英语：SeaBIOS）作为对16位x86 BIOS的开源模拟。 KVM的组件使用多个GNU协议授权： KVM内核模块：GPL v2 KVM用户模块：LGPL v2 QEMU虚拟CPU内核库（libqemu.a）和QEMU PC系统模拟器：LGPL Linux用户模式QEMU模拟器：GPL BIOS文件（bios.bin、vgabios.bin和vgabios-cirrus.bin）：LGPL v2或更新 阿维·齐维迪（Avi Kivity）在一家名为Qumranet（英语：Qumranet）的初创企业开始了KVM的研发工作，随后此公司于2008年被紅帽公司收购。 KVM被合并入Linux内核版本2.6.20的主流分支，于2007年2月5日发布。 KVM现由保罗·邦齐尼（Paolo Bonzini）维护。 Kimchi（英语：Kimchi (software)） – 网页版KVM虚拟化管理工具 Virtual Machine Manager – 支持创建、编辑、启动与停止基于KVM的虚拟机，同时也支持对宿主之间的实时或冷拖拽虚拟机迁移。 Proxmox虚拟环境 – 一项开源的虚拟化管理包，包括KVM与LXC。同时它还有裸机安装器、网页版远程管理界面、HA集群堆栈、统一存储、柔性网络及可选的商业支持。 OpenQRM（英语：OpenQRM） – 用于管理不同数据中心基础设施的平台。 GNOME 機櫃 – Linux上用于管理libvirt客户机的Gnome界面。 oVirt（英语：oVirt） – 用于管理基于libvirt的KVM开源工具。 自由软件主题 Linux主题 CloudStack（英语：CloudStack） 虚拟化软件对比（英语：Comparison of platform virtualization software） 内核同页合并（英语：Kernel same-page merging） (KSM) Lguest（英语：Lguest） libguestfs libvirt 开放虚拟化联盟 OpenNebula（英语：OpenNebula） OpenStack oVirt（英语：oVirtoVirt） Vx32（英语：Vx32） Xen Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM. kernelnewbies.org. 2007-02-05 [2014-06-16]. （原始内容存档于2015-07-16）.  KVM FAQ: What do I need to use KVM?. [2018-08-14]. （原始内容存档于2020-11-25）.  Gmane - Mail To News And Back Again. [2014-09-16]. （原始内容存档于2007-09-29）.  Gmane Loom. [2014-09-16]. （原始内容存档于2007-09-29）.  KVM/ARM Open Source Project. [2018-08-14]. （原始内容存档于2013-03-10）.  KVM wiki: Guest support status. [2007-05-27]. （原始内容存档于2020-11-25）.  Running Mac OS X as a QEMU/KVM Guest. [2014-08-20]. （原始内容存档于2020-11-08）.  status. Gnu.org. [2014-02-12]. （原始内容存档于2020-11-12）.  Guest Support Status - KVM. Linux-kvm.org. [2014-02-12]. （原始内容存档于2020-11-25）.  OpenBSD man page virtio(4). [2018-02-04]. （原始内容存档于2020-11-12）.  virtio binary packages for FreeBSD. [2012-10-29]. （原始内容存档于2020-09-29）.  NetBSD man page virtio(4). [2013-07-15]. （原始内容存档于2019-11-13）.  SCSI target for KVM wiki. linux-iscsi.org. 2012-08-07 [2012-08-12]. （原始内容存档于2020-06-05）.  Khoa Huynh; Stefan Hajnoczi. KVM/QEMU Storage Stack Performance Discussion (PDF). ibm.com. Linux Plumbers Conference. 2010 [January 3, 2015]. [永久失效連結] SeaBIOS. seabios.org. 2013-12-21 [2014-06-16]. （原始内容存档于2020-12-09）.  来自Ubuntu 7.04的授权信息/usr/share/doc/kvm/copyright Interview: Avi Kivity （页面存档备份，存于互联网档案馆） on KernelTrap（英语：KernelTrap） Red Hat Advances Virtualization Leadership with Qumranet, Inc. Acquisition. Red Hat. 4 September 2008 [16 June 2015]. （原始内容存档于2020-09-25）.  Libby Clark. Git Success Stories and Tips from KVM Maintainer Paolo Bonzini. Linux.com. 7 April 2015 [17 June 2015]. （原始内容存档于2016-03-15）.  wiki.qemu.org – QEMU Emulator User Documentation （页面存档备份，存于互联网档案馆）, read 2010-05-06 Introducing Virgil - 3D virtual GPU for qemu. 2013-07-18 [2018-08-14]. （原始内容存档于2013-07-25）.  Amit Shah. Ten years of KVM. lwn.net. 2016-11-02 [2017-02-10]. （原始内容存档于2020-11-25）.  官方网站 Best practices for the Kernel-based Virtual Machine （页面存档备份，存于互联网档案馆）, IBM, second edition, April 2012 Virtio-blk Performance Improvement, KVM Forum 2012, November 8, 2012, by Asias He Wikibook QEMU & KVM