Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Kernel-based Virtual Machine

From Wikipedia, the free encyclopedia
Virtualization module in the Linux kernel
Not to be confused withKVM switch.
KVM
Screenshot of QEMU/KVM runningNetBSD andOpenIndiana guests on anArch Linux host.
Original authorQumranet
DeveloperTheLinux Kernel community
Written inC
Operating systemUnix-like
PlatformARM,PowerPC,z/Architecture,IA-32,x86-64,RISC-V,LoongArch
TypeHypervisor
LicenseGNU GPL orLGPL
Websitewww.linux-kvm.org
Repository

Kernel-based Virtual Machine (KVM) is afree and open-sourcevirtualization module in theLinux kernel that allows thekernel to function as ahypervisor. It was merged into themainline Linux kernel in version 2.6.20, which was released on February 5, 2007.[1] KVM requires a processor withhardware virtualization extensions, such asIntel VT orAMD-V.[2] KVM has also been ported to other operating systems such asFreeBSD[3] andillumos[4] in the form of loadable kernel modules.

KVM was originally designed forx86 processors but has since beenported toz/Architecture,[5][6]PowerPC,[5]IA-64,[5] andARM.[7][8][9] The IA-64 port was removed in 2014.[10]

KVM supportshardware-assisted virtualization for a wide variety of guest operating systems includingBSD,Solaris,Windows,Haiku,ReactOS,Plan 9,AROS,macOS, and even other Linux systems.[11][12] In addition, Android 2.2,GNU/Hurd[13] (Debian K16),Minix 3.1.2a, Solaris 10 U3 andDarwin 8.0.1, together with other operating systems and some newer versions of these listed, are known to work with certain limitations.[14]

Additionally, KVM providesparavirtualization support for Linux,OpenBSD,[15] FreeBSD,[16]NetBSD,[17] Plan 9[18] and Windows guests using the VirtIOAPI.[19] This includes a paravirtualEthernet card, disk I/O controller,[20]balloon driver, and aVGA graphics interface usingSPICE orVMware drivers.

History

[edit]

Avi Kivity began the development of KVM in mid-2006 atQumranet, a technologystartup company[21] that was acquired byRed Hat in 2008.[22]

KVM surfaced in October 2006[23] and was merged into the Linux kernel mainline in version 2.6.20, released on 5 February 2007.[1]

KVM is maintained by Paolo Bonzini.[24]

Internals

[edit]
A high-level overview of the KVM/QEMU virtualization environment[25]: 3 

KVM provides device abstraction but no processor emulation. It exposes the/dev/kvm interface, which a user mode host can then use to:

  • Set up the guest VM's address space. The host must also supply a firmware image (usually a custom BIOS when emulating PCs) that the guest can use to bootstrap into its main OS.
  • Feed the guest simulated I/O.
  • Map the guest's video display back onto the system host.

Originally, a forked version ofQEMU was provided to launch guests and deal with hardware emulation that is not handled by the kernel. That support was eventually merged into the upstream project. There are now numerous Virtual Machine Monitors (VMMs) which can utilise the KVM interface including kvmtool, crosvm andFirecracker and numerous specialised VMMs built with frameworks such as rust-vmm.

Internally, KVM usesSeaBIOS as an open source implementation of a 16-bit x86BIOS.[26]

Features

[edit]

KVM has had support forhot swappable vCPUs,[27] dynamic memory management,[28] andLive Migration since February 2007.[29][30] It also reduces the impact that memory write-intensive workloads have on the migration process.[31]

Emulated hardware

[edit]

KVM itself emulates very little hardware, instead deferring to a higher level client application such asQEMU, crosvm, orFirecracker for device emulation.

KVM provides the following emulated devices:

Graphical management tools

[edit]
libvirt supports KVM
  • Kimchi – web-based virtualization management tool for KVM
  • Virtual Machine Manager – supports creating, editing, starting, and stopping KVM-based virtual machines, as well as live or cold drag-and-drop migration of VMs between hosts.
  • Proxmox Virtual Environment – an open-source virtualization management package including KVM andLXC. It has a bare-metal installer, a web-based remote management GUI, a HA cluster stack, unified storage, flexible network, and optional commercial support.
  • OpenQRM – management platform for managing heterogeneous data center infrastructures
  • GNOME Boxes – Gnome interface for managing libvirt guests on Linux
  • oVirt – open-source virtualization management tool for KVM built on top oflibvirt

Licensing

[edit]

The kernel-mode component of KVM is a part of theLinux kernel, itself licensed underGNU General Public License, version 2.[33]

See also

[edit]

References

[edit]
  1. ^ab"Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM".kernelnewbies.org. 2007-02-05. Retrieved2014-06-16.
  2. ^KVM FAQ: What do I need to use KVM?
  3. ^"FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD".
  4. ^"KVM on illumos". 15 August 2011.
  5. ^abc"Linux_2_6_26".kernelnewbies.org. 2008-07-13. 1.2. KVM ported to IA64, PPC and S390. Retrieved2025-08-23.
  6. ^"KVM: s390: arch backend for the kvm kernel module". 2008-04-27.
  7. ^"KVM/ARM: An Open-Source ARM Virtualization System".
  8. ^"KVM/ARM Open Source Project". Archived fromthe original on 2013-03-10. Retrieved2017-11-01.
  9. ^Christoffer Dall; Jason Nieh (2014)."KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor".SIGARCH Comput. Archit. News.42 (1). ACM International Conference on Architectural Support for Programming Languages and Operating Systems:333–348.doi:10.1145/2654822.2541946.
  10. ^"kernel/git/torvalds/linux.git: KVM: ia64: remove".
  11. ^"KVM wiki: Guest support status". Retrieved2007-05-27.
  12. ^"Running Mac OS X as a QEMU/KVM Guest". Retrieved2014-08-20.
  13. ^"status". Gnu.org. Retrieved2014-02-12.
  14. ^"Guest Support Status - KVM". Linux-kvm.org. Retrieved2014-02-12.
  15. ^"OpenBSD man page virtio(4)". Retrieved2018-02-04.
  16. ^"virtio binary packages for FreeBSD". Retrieved2012-10-29.
  17. ^"NetBSD man page virtio(4)". Archived fromthe original on 2019-11-13. Retrieved2013-07-15.
  18. ^"plan9front". Retrieved2013-02-11.
  19. ^"An API for virtual I/O: virtio".LWN.net. 2007-07-11. Retrieved2014-04-16.
  20. ^"SCSI target for KVM wiki". linux-iscsi.org. 2012-08-07. Archived fromthe original on 2020-06-05. Retrieved2012-08-12.
  21. ^Interview: Avi KivityArchived 2007-04-26 at theWayback Machine onKernelTrap
  22. ^"Red Hat Advances Virtualization Leadership with Qumranet, Inc. Acquisition".Red Hat. 4 September 2008. Retrieved16 June 2015.
  23. ^"KVM 15 equipped with live migration | IT World Canada News". 7 March 2007. Archived from the original on July 28, 2019.
  24. ^Libby Clark (7 April 2015)."Git Success Stories and Tips from KVM Maintainer Paolo Bonzini".Linux.com. Archived fromthe original on 15 March 2016. Retrieved17 June 2015.
  25. ^Khoa Huynh; Stefan Hajnoczi (2010)."KVM/QEMU Storage Stack Performance Discussion"(PDF).IBM. Linux Plumbers Conference. RetrievedJanuary 3, 2015.[permanent dead link]
  26. ^"SeaBIOS". seabios.org. 2013-12-21. Archived fromthe original on 2020-12-09. Retrieved2014-06-16.
  27. ^"Hot Plugging Virtual CPUs with Red Hat Enterprise Virtualization Manager". 16 February 2016.
  28. ^"Faq - KVM".
  29. ^"KVM-15 release [LWN.net]".
  30. ^"Migration - KVM".
  31. ^"Daniel P. Berrangé » Blog Archive » Analysis of techniques for ensuring migration completion with KVM".
  32. ^"The Definitive KVM (Kernel-based Virtual Machine) API Documentation — the Linux Kernel documentation".
  33. ^"Linux kernel licensing rules — The Linux Kernel documentation".www.kernel.org.Archived from the original on 7 March 2020. Retrieved2020-01-06.

Bibliography

[edit]

External links

[edit]
Hardware
(hypervisors)
Native
Hosted
Specialized
Independent
Tools
Operating
system
OScontainers
Application containers
Virtual kernel architectures
Related kernel features
Orchestration
Desktop
Application
Network
See also
Organization
Kernel
Support
People
Technical
Debugging
Startup
ABIs
APIs
Kernel
System Call
Interface
In-kernel
Userspace
Daemons,
File systems
Wrapper
libraries
Components
Variants
Virtualization
Adoption
Range
of use
Adopters
Authority control databasesEdit this at Wikidata
Retrieved from "https://en.wikipedia.org/w/index.php?title=Kernel-based_Virtual_Machine&oldid=1329887084"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp