Kernel-based Virtual Machine: Difference between revisions

Content deleted Content added
m Use Free and open-source software portal name (via WP:JWB)
top: Reworded some things for more clarity and accuracy.
Line 18:
{{Distinguish|KVM switch}}
 
'''Kernel-based Virtual Machine''' ('''KVM''') is a [[virtualization]] infrastructuremodule forin the [[Linux kernel]] that turnsallows itthe kernel to function intoas a [[hypervisor]]. It was merged into the Linux kernel mainline in kernel version 2.6.20, which was released on February 5, 2007.<ref name="2620notes">{{cite web
| url = http://kernelnewbies.org/Linux_2_6_20#head-bca4fe7ffe454321118a470387c2be543ee51754
| title = Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM
| date = 2007-02-05 | accessdate = 2014-06-16
| website = kernelnewbies.org
}}</ref> KVM requires a processor with [[hardware-assisted virtualization|hardware virtualization extensions]].<ref>[http://www.linux-kvm.org/page/FAQ#What_do_I_need_to_use_KVM.3F KVM FAQ: What do I need to use KVM?]</ref> KVM has also been ported to other operating systems such as [[FreeBSD]]<ref>{{cite web|url=http://www.freebsd.org/news/status/report-2007-07-2007-10.html#Porting-Linux-KVM-to-FreeBSD|title=FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD}}</ref> and [[illumos]]<ref>{{cite web|url=http://dtrace.org/blogs/bmc/2011/08/15/kvm-on-illumos/|title=KVM on illumos}}</ref> in the form of loadable kernel modules.
 
KVM was originally supporteddesigned for [[x86]] processors and has since been [[porting|ported]] to [[IBM ESA/390|S/390]],<ref>{{Cite web |url=http://article.gmane.org/gmane.comp.emulators.kvm.devel/2570 |title=Gmane - Mail To News And Back Again<!-- Bot generated title --> |access-date=2007-05-07 |archive-url=https://web.archive.org/web/20070929124348/http://article.gmane.org/gmane.comp.emulators.kvm.devel/2570 |archive-date=2007-09-29 |dead-url=yes |df= }}</ref> [[PowerPC]],<ref>[http://news.gmane.org/gmane.comp.emulators.kvm.devel/2595 Gmane Loom<!-- Bot generated title -->] {{webarchive|url=https://web.archive.org/web/20070929103042/http://news.gmane.org/gmane.comp.emulators.kvm.devel/2595 |date=2007-09-29 }}</ref> and [[IA-64]]., Anand [[ARM architecture|ARM]] port was merged during the 3.9 kernel merge window.<ref>[https://columbia.github.com/linux-kvm-arm KVM/ARM Open Source Project]</ref>
 
AKVM provides [[hardware-assisted virtualization]] for a wide variety of guest operating systems work with KVM, including many flavours and versions of Linux, BSD, [[Solaris (operating system)|Solaris]], [[Microsoft Windows|Windows]], [[Haiku (operating system)|Haiku]], [[ReactOS]], [[Plan 9 from Bell Labs|Plan 9]], [[AROS Research Operating System]]<ref>{{cite web | url = http://www.linux-kvm.org/page/Guest_Support_Status | title = KVM wiki: Guest support status | accessdate =2007-05-27 }}</ref> and [[OS X]].<ref>{{cite web|url=http://www.contrib.andrew.cmu.edu/~somlo/OSXKVM/|title=Running Mac OS X as a QEMU/KVM Guest|accessdate=2014-08-20}}</ref> In addition, Android 2.2, GNU/Hurd<ref>{{cite web|url=https://www.gnu.org/software/hurd/hurd/status.html |title=status |publisher=Gnu.org |date= |accessdate=2014-02-12}}</ref> (Debian K16), [[MINIX 3|Minix]] 3.1.2a, Solaris 10 U3 and Darwin 8.0.1, together with other operating systems and some newer versions of these listed, are known to work with certain limitations.<ref>{{cite web|url=http://www.linux-kvm.org/page/Guest_Support_Status |title=Guest Support Status - KVM |publisher=Linux-kvm.org |date= |accessdate=2014-02-12}}</ref>
 
Additionally, KVM provides [[Paravirtualizationparavirtualization]] support for certain devices is available for Linux, OpenBSD,<ref>{{cite web |url=https://man.openbsd.org/virtio.4|title=OpenBSD man page virtio(4) |accessdate=2018-02-04}}</ref> FreeBSD,<ref>{{cite web |url=http://people.freebsd.org/~kuriyama/virtio/|title=virtio binary packages for FreeBSD|accessdate=2012-10-29}}</ref> NetBSD,<ref>{{cite web |url=http://netbsd.gw.com/cgi-bin/man-cgi?virtio++NetBSD-current |title= NetBSD man page virtio(4) |accessdate=2013-07-15}}</ref> Plan 9<ref>{{cite web |url=https://code.google.com/p/plan9front/wiki/qemu |title=plan9front |accessdate=2013-02-11}}</ref> and Windows guests using the '''VirtIO'''<ref>{{cite web |url=https://lwn.net/Articles/239238/ |title=An API for virtual I/O: virtio |date=2007-07-11 |accessdate=2014-04-16 |publisher=[[LWN.net]]}}</ref> API. This supportsincludes a paravirtualparavirtualized Ethernet card, a paravirtual disk I/O controller,<ref>{{cite web |url=http://linux-iscsi.org/wiki/vHost |title=SCSI target for KVM wiki |publisher=linux-iscsi.org |date=2012-08-07 |accessdate=2012-08-12}}</ref> a balloon device for adjusting guest memory usage, and a VGA graphics interface using [[SPICE (protocol)|SPICE]] or [[VMware]] drivers.
 
== Internals ==