For faster navigation, this Iframe is preloading the Wikiwand page for 基于内核的虚拟机.

基于内核的虚拟机

KVM
在Arch Linux宿主机上使用QEMU/KVM运行NetBSD和OpenIndiana客户机的截图。
Arch Linux宿主机上使用QEMU/KVM运行NetBSDOpenIndiana客户机的截图。
原作者Qumranet英语Qumranet
開發者开放虚拟化联盟(OVA)
当前版本
  • 1.2
編輯維基數據鏈接
源代码库 編輯維基數據鏈接
编程语言C
操作系统类Unix系统
平台ARMIA-64PowerPCS/390英语IBM ESA/390x86x86-64
类型虚拟机监视器
许可协议GNU GPLLGPL
网站www.linux-kvm.org

基于内核的虚拟机(英語:Kernel-based Virtual Machine,縮寫為KVM)是一种用於Linux內核中的虛擬化基礎设施,可將Linux內核轉化為一個虚拟机监视器。KVM于2007年2月5日被并入Linux 2.6.20核心中。[1]KVM需要支持硬件虚拟化拓展英语hardware-assisted virtualization特性的处理器。[2]

KVM起初支持x86平台处理器并随后被移植到了S/390英语IBM ESA/390[3]PowerPC[4]IA-64平台上。在3.9内核合并时也导入了ARM移植版。[5]

在KVM上可以运行诸多客户操作系统,包括Linux的诸多发行版、BSD、SolarisWindowsHaikuReactOSPlan 9AROS研究操作系统英语AROS Research Operating System[6]OS X[7]除此之外,还支持Android 2.2、GNU/Hurd[8](Debian K16)、Minix 3.1.2a、Solaris 10 U3和Darwin 8.0.1,而其他操作系统或新版操作系统都支持KVM,仅仅存在一些限制而已。[9]

VirtIO半虚拟化英语Paravirtualization 在Linux、OpenBSD、[10]FreeBSD、[11] NetBSD、[12]Windows上支持对部分设备的半虚拟化英语Paravirtualization。这项特性支持半虚拟化的网卡、半虚拟化的磁盘控制器、[13]用于调整客户端内存使用的气球设备(Balloon device)和使用獨立計算環境簡單協議的VGA图形接口。

内部结构

[编辑]
KVM/QEMU环境的高级概述[14]:3

KVM提供抽象的設備,但不模擬處理器。它開放了/dev/kvm接口,供使用者模式的主機使用:

  • 设置客户虚拟机的地址空间。宿主机同样也需用户可用于引导进主操作系统的固件镜像(通常为模拟PC时的自定义BIOS)。
  • 为客户机模拟I/O。
  • 将客户机的视频显示映射回系统宿主机上。

在Linux上,QEMU版本0.10.1及更新版就是一个用户层主机。QEMU使用KVM以近乎原生的速度虚拟化客户机,若无KVM的话则将仅使用软件模拟。

KVM内部使用SeaBIOS英语SeaBIOS作为对16位x86 BIOS的开源模拟。[15]

授权

[编辑]

KVM的组件使用多个GNU协议授权:[16]

  • 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的研发工作[17],随后此公司于2008年被紅帽公司收购。[18]

KVM被合并入Linux内核版本2.6.20的主流分支,于2007年2月5日发布。[1]

KVM现由保罗·邦齐尼(Paolo Bonzini)维护。[19]

图形管理工具

[编辑]
libvirt支持KVM
  • Kimchi英语Kimchi (software) – 网页版KVM虚拟化管理工具
  • Virtual Machine Manager – 支持创建、编辑、启动与停止基于KVM的虚拟机,同时也支持对宿主之间的实时或冷拖拽虚拟机迁移。
  • Proxmox虚拟环境 – 一项开源的虚拟化管理包,包括KVM与LXC。同时它还有裸机安装器、网页版远程管理界面、HA集群堆栈、统一存储、柔性网络及可选的商业支持。
  • OpenQRM英语OpenQRM – 用于管理不同数据中心基础设施的平台。
  • GNOME 機櫃 – Linux上用于管理libvirt客户机的Gnome界面。
  • oVirt英语oVirt – 用于管理基于libvirt的KVM开源工具。

模拟硬件

[编辑]
分类 设备
显示卡 Cirrus CLGD 5446 PCI VGA卡,具有BochsVESA拓展的虚拟VGA卡[20],QXL顯示卡,使用Virgil英语Virgil (software)作为虚拟3D CPU。[21]
外设组件互连标准 i440FX英语Intel 440FX主机及PCI桥PIIX3英语PIIX3 [20];Intel Q35與ICH9。
输入设备 PS/2键鼠[20],USB鍵鼠
声卡 Sound Blaster 16英语Sound Blaster 16、ENSONIQ AudioPCI ES1370英语ES1370Gravis Ultrasound GF1英语Gravis Ultrasound GF1、CS4231A兼容设备[20],Intel HD Audio
以太网 网卡 AMD Am79C970A (Am7990英语Am7990)、E1000(Intel 82540EM, 82573L, 82544GC)、NE2000、瑞昱RTL8139英语RTL8139、Red Hat VirtIO
儲存裝置 IDESATASCSISASNVMeUSB和VirtIO
看門狗計時器 英特尔6300ESB或IB700
随机存取存储器 介于50 MB与32 TB之间
中央处理器 1 – 160 个CPU

另请参阅

[编辑]

参考文献

[编辑]
  1. ^ 1.0 1.1 Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM. kernelnewbies.org. 2007-02-05 [2014-06-16]. (原始内容存档于2015-07-16). 
  2. ^ KVM FAQ: What do I need to use KVM?. [2018-08-14]. (原始内容存档于2020-11-25). 
  3. ^ Gmane - Mail To News And Back Again. [2014-09-16]. (原始内容存档于2007-09-29). 
  4. ^ Gmane Loom. [2014-09-16]. (原始内容存档于2007-09-29). 
  5. ^ KVM/ARM Open Source Project. [2018-08-14]. (原始内容存档于2013-03-10). 
  6. ^ KVM wiki: Guest support status. [2007-05-27]. (原始内容存档于2020-11-25). 
  7. ^ Running Mac OS X as a QEMU/KVM Guest. [2014-08-20]. (原始内容存档于2020-11-08). 
  8. ^ status. Gnu.org. [2014-02-12]. (原始内容存档于2020-11-12). 
  9. ^ Guest Support Status - KVM. Linux-kvm.org. [2014-02-12]. (原始内容存档于2020-11-25). 
  10. ^ OpenBSD man page virtio(4). [2018-02-04]. (原始内容存档于2020-11-12). 
  11. ^ virtio binary packages for FreeBSD. [2012-10-29]. (原始内容存档于2020-09-29). 
  12. ^ NetBSD man page virtio(4). [2013-07-15]. (原始内容存档于2019-11-13). 
  13. ^ SCSI target for KVM wiki. linux-iscsi.org. 2012-08-07 [2012-08-12]. (原始内容存档于2020-06-05). 
  14. ^ Khoa Huynh; Stefan Hajnoczi. KVM/QEMU Storage Stack Performance Discussion (PDF). ibm.com. Linux Plumbers Conference. 2010 [January 3, 2015]. [永久失效連結]
  15. ^ SeaBIOS. seabios.org. 2013-12-21 [2014-06-16]. (原始内容存档于2020-12-09). 
  16. ^ 来自Ubuntu 7.04的授权信息/usr/share/doc/kvm/copyright
  17. ^ Interview: Avi Kivity页面存档备份,存于互联网档案馆) on KernelTrap英语KernelTrap
  18. ^ Red Hat Advances Virtualization Leadership with Qumranet, Inc. Acquisition. Red Hat. 4 September 2008 [16 June 2015]. (原始内容存档于2020-09-25). 
  19. ^ Libby Clark. Git Success Stories and Tips from KVM Maintainer Paolo Bonzini. Linux.com. 7 April 2015 [17 June 2015]. (原始内容存档于2016-03-15). 
  20. ^ 20.0 20.1 20.2 20.3 wiki.qemu.org – QEMU Emulator User Documentation页面存档备份,存于互联网档案馆), read 2010-05-06
  21. ^ Introducing Virgil - 3D virtual GPU for qemu. 2013-07-18 [2018-08-14]. (原始内容存档于2013-07-25). 

书刊目录

[编辑]

外部链接

[编辑]
{{bottomLinkPreText}} {{bottomLinkText}}
基于内核的虚拟机
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?