Actions

::Virtual machine

::concepts

Virtual::machine    System::machines    Language::systems    Which::virtual    Hardware::software    Computer::running

{{ safesubst:#invoke:Unsubst||$N=Refimprove |date=__DATE__ |$B= {{#invoke:Message box|ambox}} }} {{ safesubst:#invoke:Unsubst||$N=Split |date=__DATE__ |$B= {{#invoke:Message box|ambox}} }} {{#invoke:Sidebar|sidebar | title = Program execution | contentstyle = text-align: left; | style = margin-top: 0.5em;

| heading1 = General topics | content1 =

| heading2 = Specific runtimes | content2 =

}}

In computing, a virtual machine (VM) is an emulation of a particular computer system. Virtual machines operate based on the computer architecture and functions of a real or hypothetical computer, and their implementations may involve specialized hardware, software, or a combination of both.

Classification of virtual machines can be based on the degree to which they implement functionality of targeted real machines. That way, system virtual machines (also known as full virtualization VMs) provide a complete substitute for the targeted real machine and a level of functionality required for the execution of a complete operating system. On the other hand, process virtual machines are designed to execute a single computer program by providing an abstracted and platform-independent program execution environment.

Different virtualization techniques are used, based on the desired usage. Native execution is based on direct virtualization of the underlying raw hardware, thus it provides multiple "instances" of the same architecture a real machine is based on, capable of running complete operating systems. Some virtual machines can also emulate different architectures and allow execution of software applications and operating systems written for another CPU or architecture. Operating-system-level virtualization allows the resources of a computer to be partitioned via kernel's support for multiple isolated user space instances, which are usually called containers and may look and feel like real machines to the end users.

Some computer architectures are capable of hardware-assisted virtualization, which enables efficient full virtualization by using virtualization-specific hardware capabilities, primarily from the host CPUs.


Virtual machine sections
Intro  Definitions  History  Hardware virtualization techniques   Abstract virtual machine techniques    Virtualization-enabled hardware    See also    References    Further reading    External links   

PREVIOUS: IntroNEXT: Definitions
<<>>