All Topics  
Virtual machine

 

   Email Print
   Bookmark   Link






 

Virtual machine



 
 
In computer science
Computer science

Computer science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems....
, a virtual machine (VM) is a software implementation of a machine (computer) that executes programs like a real machine.

rtual machine was originally defined by Popek and Goldberg
Popek and Goldberg virtualization requirements

The Popek and Goldberg virtualization requirements are a set of sufficient conditions for a computer architecture to efficiently support system virtualization....
 as "an efficient, isolated duplicate of a real machine". Current use includes virtual machines which have no direct correspondence to any real hardware.

Virtual machines are separated into two major categories, based on their use and degree of correspondence to any real machine.






Discussion
Ask a question about 'Virtual machine'
Start a new discussion about 'Virtual machine'
Answer questions from other users
Full Discussion Forum



Encyclopedia


In computer science
Computer science

Computer science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems....
, a virtual machine (VM) is a software implementation of a machine (computer) that executes programs like a real machine.

Definitions


A virtual machine was originally defined by Popek and Goldberg
Popek and Goldberg virtualization requirements

The Popek and Goldberg virtualization requirements are a set of sufficient conditions for a computer architecture to efficiently support system virtualization....
 as "an efficient, isolated duplicate of a real machine". Current use includes virtual machines which have no direct correspondence to any real hardware.

Virtual machines are separated into two major categories, based on their use and degree of correspondence to any real machine. A system virtual machine provides a complete system platform which supports the execution of a complete operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 (OS). In contrast, a process virtual machine is designed to run a single program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
, which means that it supports a single process
Process (computing)

In computing, a process is an Object of a computer program that is being sequentially executed by a computer system that has the ability to run several computer programs Concurrency ....
. An essential characteristic of a virtual machine is that the software running inside is limited to the resources and abstractions provided by the virtual machine -- it cannot break out of its virtual world.

Example: A program written in Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
 receives services from the Java Runtime Environment (JRE) software by issuing commands to, and receiving the expected results from, the Java software. By providing these services to the program, the Java software is acting as a "virtual machine", taking the place of the operating system or hardware for which the program would ordinarily be tailored.

System virtual machines


System virtual machines (sometimes called hardware virtual machines) allow the sharing of the underlying physical machine resources between different virtual machines, each running its own operating system. The software layer providing the virtualization is called a virtual machine monitor or hypervisor
Hypervisor

A hypervisor, also called virtual machine monitor , is a computer hardware platform virtualization software that allows multiple operating systems to run on a host computer concurrently....
. A hypervisor can run on bare hardware (Type 1 or native VM) or on top of an operating system (Type 2 or hosted VM).

The main advantages of system VMs are:
  • multiple OS environments can co-exist on the same computer, in strong isolation from each other
  • the virtual machine can provide an instruction set
    Instruction set

    An instruction set is a list of all the instruction , and all their variations, that a processor can execute.Instructions include:* Arithmetic such as add and subtract...
     architecture (ISA) that is somewhat different from that of the real machine


Multiple VMs each running their own operating system (called guest operating system) are frequently used in server consolidation, where different services that used to run on individual machines in order to avoid interference are instead run in separate VMs on the same physical machine. This use is frequently called quality-of-service isolation (QoS isolation).

The desire to run multiple operating systems was the original motivation for virtual machines, as it allowed time-sharing a single computer between several single-tasking OSes.

The guest OSes do not have to be all the same, making it possible to run different OSes on the same computer (e.g., Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
 and Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
, or older versions of an OS in order to support software that has not yet been ported to the latest version). The use of virtual machines to support different guest OSes is becoming popular in embedded systems; a typical use is to support a real-time operating system
Real-time operating system

A Real-Time Operating System is a Computer multitasking operating system intended for real-time computing applications. Such applications include embedded systems , industrial robots, spacecraft, industrial control , and scientific research equipment....
 at the same time as a high-level OS such as Linux or Windows.

Another use is to sandbox
Sandbox (software development)

A sandbox is a testing environment that isolates untested source code changes and outright experimentation from the production environment or repository, in the context of software development including web development and revision control, and by extension in web-based editing environments including wikis....
 an OS that is not trusted, possibly because it is a system under development. Virtual machines have other advantages for OS development, including better debugging access and faster reboots.

Alternate techniques such as Solaris Zones provides a level of isolation within a single operating system. This does not have isolation as complete as a VM. A kernel exploit
Exploit (computer security)

An exploit is a piece of software, a chunk of data, or sequence of commands that take advantage of a software bug, glitch or vulnerability in order to cause unintended or unanticipated behavior to occur on computer software, hardware, or something electronic ....
 in a system with multiple zones will affect all zones. Achieving the same goal in a virtual machine implementation would require exploiting a weakness in the hypervisor. A hypervisor typically has a smaller "attack surface" than a complete operating system, making this more challenging. Further, a kernel exploit in a VM guest would not affect other VMs on the host, just as a successful intrusion into one zone would not necessarily affect other zones. Zones are not virtual machines, but an example of "operating-system virtualization
Operating system-level virtualization

Operating system-level virtualization is a server virtualization method where the kernel of an operating system allows for multiple isolated user-space instances, instead of just one....
". This includes other "virtual environments" (also called "virtual servers") such as Virtuozzo, FreeBSD Jail
FreeBSD Jail

The FreeBSD prison mechanism is an implementation of operating system-level virtualization that allows BOFH to partition a FreeBSD-based computer system into several independent mini-systems called jails....
s, Linux-VServer
Linux-VServer

Linux-VServer is a virtual private server implementation done by adding operating system-level virtualization capabilities to the Linux kernel ....
, chroot jail, and OpenVZ
OpenVZ

OpenVZ is an operating system-level virtualization technology based on the Linux kernel and operating system. OpenVZ allows a physical server to run multiple isolated operating system instances, known as containers, virtual private server , or Virtual Environments ....
. These provide some form of encapsulation of processes within an operating system. These technologies have the advantages of being more resource-efficient than full virtualization and having better observability into multiple guests simultaneously; the disadvantage is that, generally, they can only run a single operating system and a single version/patch level of that operating system - so, for example, they cannot be used to run two applications, one of which only supports a newer OS version and the other only supporting an older OS version on the same hardware. However, Sun Microsystems has enhanced Solaris Zones to allow some zones to behave like Solaris 8 or Solaris 9 systems by adding a system call translator.

Process virtual machines


A process VM, sometimes called an application virtual machine, runs as a normal application inside an OS and supports a single process. It is created when that process is started and destroyed when it exits. Its purpose is to provide a platform-independent programming environment that abstracts away details of the underlying hardware or operating system, and allows a program to execute in the same way on any platform.

A process VM provides a high-level abstraction — that of a high-level programming language
High-level programming language

In computing, a high-level programming language is a programming language with strong Abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or more Porting across platforms....
 (compared to the low-level ISA abstraction of the system VM). Process VMs are implemented using an interpreter
Interpreter (computing)

In computer science, an interpreter normally means a computer program that execution , i.e. performs, instructions written in a programming language....
; performance comparable to compiled programming languages is achieved by the use of just-in-time compilation
Just-in-time compilation

In computing, just-in-time compilation , also known as dynamic translation, is a technique for improving the runtime performance of a computer program....
.

This type of VM has become popular with the Java programming language
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
, which is implemented using the Java virtual machine
Java Virtual Machine

A Java Virtual Machine is a set of computer software programs and data structures which use a virtual machine model for the execution of other computer programs and Scripting language....
. Another example is the .NET Framework
.NET Framework

The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework....
, which runs on a VM called the Common Language Runtime
Common Language Runtime

The Common Language Runtime is a core component of Microsoft .NET Framework initiative. It is Microsoft's implementation of the Common Language Infrastructure standard, which defines an execution environment for program code....
.

A special case of process VMs are systems that abstract over the communication mechanisms of a (potentially heterogeneous) computer cluster. Such a VM does not consist of a single process, but one process per physical machine in the cluster. They are designed to ease the task of programming parallel applications by letting the programmer focus on algorithms rather than the communication mechanisms provided by the interconnect and the OS. They do not hide the fact that communication takes place, and as such do not attempt to present the cluster as a single parallel machine.

Unlike other process VMs, these systems do not provide a specific programming language, but are embedded in an existing language; typically such a system provides bindings for several languages (e.g., C and FORTRAN
Fortran

Fortran is a general-purpose programming language, procedural programming language, imperative programming language programming language that is especially suited to numerical analysis and scientific computing....
). Examples are PVM (Parallel Virtual Machine
Parallel Virtual Machine

The Parallel Virtual Machine is a computer software tool for parallel networking of computers. It is designed to allow a computer network of heterogeneous Unix and/or Windows machines to be used as a single distributed parallel processor....
) and MPI (Message Passing Interface
Message Passing Interface

Message Passing Interface is a specification for an API that allows many computers to communicate with one another. It is used in computer clusters and supercomputers....
). They are not strictly virtual machines, as the applications running on top still have access to all OS services, and are therefore not confined to the system model provided by the "VM".

Techniques


Emulation of the underlying raw hardware (native execution)

This approach is described as full virtualization
Full virtualization

Full virtualization, in computer science, is a virtualization technique used to implement a certain kind of virtual machine environment: one that provides a complete simulation of the underlying hardware. The result is a system in which all software capable of execution on the raw hardware can be run in the virtual machine....
 of the hardware, and can be implemented using a Type 1 or Type 2 hypervisor
Hypervisor

A hypervisor, also called virtual machine monitor , is a computer hardware platform virtualization software that allows multiple operating systems to run on a host computer concurrently....
. (A Type 1 hypervisor runs directly on the hardware; a Type 2 hypervisor runs on another operating system, such as Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
). Each virtual machine can run any operating system supported by the underlying hardware. Users can thus run two or more different "guest" operating systems simultaneously, in separate "private" virtual computers.

The pioneer system using this concept was IBM's CP-40
IBM CP-40

CP-40 was a research precursor to CP-67, which in turn was part of IBM's then-revolutionary CP/CMS – a virtual machine/virtual memory time-sharing operating system for the IBM System/360-67, and the parent of IBM's VM ....
, the first (1967) version of IBM's CP/CMS
CP/CMS

CP/CMS was a time-sharing operating system of the late 60s and early 70s, known for its excellent performance and advanced features. It had three distinct versions:...
 (1967-1972) and the precursor to IBM's VM family
VM (operating system)

VM refers to a family of IBM virtual machine operating systems used on IBM System/370, System/390, zSeries, and System z IBM mainframes and compatible systems, including the Hercules emulator for personal computers....
 (1972-present). With the VM architecture, most users run a relatively simple interactive computing
Interactive computing

In computer science, interactive computing refers to software which accepts input from humans ? for example, data or commands. Interactive software includes most popular programs, such as word processors or spreadsheet application software....
 single-user operating system, CMS
Conversational Monitor System

The Conversational Monitor System is a relatively simple interactive computing single-user operating system.* CMS is part of IBM's VM , which runs on IBM mainframe computers....
, as a "guest" on top of the VM control program (VM-CP
VM-CP

VM-CP was the official name of the control program portion of VM , a re-implementation of CP/CMS for the IBM System/370. It was originally called CP-370....
). This approach kept the CMS design simple, as if it were running alone; the control program quietly provides multitasking and resource management services "behind the scenes". In addition to CMS, VM users can run any of the other IBM operating systems, such as MVS
MVS

Multiple Virtual Storage, more commonly called MVS, was the most commonly used operating system on the System/370 and System/390 IBM mainframes....
 or z/OS
Z/OS

z/OS is a 64-bit operating system for mainframe computers, created by IBM. It is the successor to OS/390, which in turn followed MVS and combined a number of formerly separate, related products....
. z/VM
Z/VM

z/VM is the current version in IBM's VM of virtual machine operating systems. z/VM was first released in October 2000 and remains in active use and development ....
 is the current version of VM, and is used to support hundreds or thousands of virtual machines on a given mainframe. Some installations use Linux for zSeries to run Web server
Web server

The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects ....
s, where Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
 runs as the operating system within many virtual machines.

Full virtualization is particularly helpful in operating system development, when experimental new code can be run at the same time as older, more stable, versions, each in a separate virtual machine. The process can even be recursive
Recursion

Recursion, in mathematics and computer science, is a method of defining Function in which the function being defined is applied within its own definition....
: IBM
IBM

International Business Machines Corporation, abbreviated IBM and nicknamed "Big Blue" , is a multinational corporation computer technology and consulting corporation headquartered in Armonk, New York, New York, United States....
 debugged new versions of its virtual machine operating system, VM
VM (operating system)

VM refers to a family of IBM virtual machine operating systems used on IBM System/370, System/390, zSeries, and System z IBM mainframes and compatible systems, including the Hercules emulator for personal computers....
, in a virtual machine running under an older version of VM, and even used this technique to simulate new hardware.

The standard x86 processor architecture as used in modern PCs does not actually meet the Popek and Goldberg virtualization requirements
Popek and Goldberg virtualization requirements

The Popek and Goldberg virtualization requirements are a set of sufficient conditions for a computer architecture to efficiently support system virtualization....
. Notably, there is no execution mode where all sensitive machine instructions always trap, which would allow per-instruction virtualization.

Despite these limitations, several software packages have managed to provide virtualization on the x86 architecture
X86 virtualization

x86 virtualization is the method by which x86-based "guest" operating systems are run under another "host" x86 operating system, with little or no modification of the guest OS....
, even though dynamic recompilation
Dynamic recompilation

In computer science, dynamic recompilation is a feature of some emulators and virtual machines, where the system may compile some part of a Computer program during execution....
 of privileged code, as first implemented by VMware
VMware

VMware, Inc. is a software developer of virtualization software. The company was founded in 1998 and is based in Palo Alto, California. The Company is majority owned by EMC Corporation ....
, incurs some performance overhead as compared to a VM running on a natively virtualizable architecture such as the IBM System/370 or Motorola MC68020
Motorola 68020

The Motorola 68020 is a 32-bit microprocessor from Motorola, released in 1984. It is the successor to the Motorola 68010 and is succeeded by the Motorola 68030....
. By now, several other software packages such as Virtual PC
Virtual PC

Virtual PC can refer to:* A Virtual machine, the generic name for this kind of technology* Microsoft Virtual PC, a product from Microsoft...
, VirtualBox
VirtualBox

VirtualBox is an x86 virtualization software package, originally created by Germany software company innotek, now developed by Sun Microsystems as part of its Sun xVM virtualization platform....
, Parallels Workstation
Parallels Workstation

Parallels Workstation is the first commercial software product released by Parallels, Inc., a developer of desktop and server virtualization software....
 and Virtual Iron
Virtual Iron

Virtual Iron Software, located in Lowell, Massachusetts, provides proprietary software for virtualization and management of a virtual infrastructure....
 manage to implement virtualization on x86 hardware.

Intel and AMD have introduced features to their x86 processors to enable virtualization in hardware.

Emulation of a non-native system

Virtual machines can also perform the role of an emulator
Emulator

An emulator duplicates the functions of one system using a different system, so that the second system behaves like the first system. This focus on exact reproduction of external behavior is in contrast to some other forms of computer simulation, which can concern an abstract model of the system being simulated....
, allowing software applications and operating systems written for another computer processor architecture to be run.

Some virtual machines emulate hardware that only exists as a detailed specification. For example:

  • One of the first was the p-code machine
    P-Code machine

    In computer programming, a p-code machine or pseudo-code machine is a virtual machine designed to execute p-code . This term is applied both generically to all such machines , and to specific implementations, the most famous being the p-Machine of UCSD Pascal....
     specification, which allowed programmers to write Pascal programs
    Computer program

    Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
     that would run on any computer running virtual machine software that correctly implemented the specification.
  • The specification of the Java virtual machine
    Java Virtual Machine

    A Java Virtual Machine is a set of computer software programs and data structures which use a virtual machine model for the execution of other computer programs and Scripting language....
    .
  • The Common Language Infrastructure
    Common Language Infrastructure

    The Common Language Infrastructure is an open specification developed by Microsoft that describes the executable code and runtime environment that form the core of a number of runtimes including the .NET Framework, Mono , and Portable.NET....
     virtual machine at the heart of the Microsoft .NET
    .NET Framework

    The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework....
     initiative.
  • Open Firmware
    Open Firmware

    Open Firmware, or OpenBoot in Sun Microsystems parlance, is a standard defining the interfaces of a computer firmware system, formerly endorsed by the Institute of Electrical and Electronics Engineers....
     allows plug-in hardware to include boot-time diagnostics, configuration code, and device drivers that will run on any kind of CPU.


This technique allows diverse computers to run any software written to that specification; only the virtual machine software itself must be written separately for each type of computer on which it runs.

Operating system-level virtualization


Operating System-level Virtualization
Operating system-level virtualization

Operating system-level virtualization is a server virtualization method where the kernel of an operating system allows for multiple isolated user-space instances, instead of just one....
 is a server virtualization
Virtualization

In computing, platform virtualization is a virtualization of computers or operating systems. It hides the physical characteristics of computing platform from the users, instead showing another abstract, emulated computing platform....
 technology which virtualizes server
Server (computing)

A server is a computer program that provides services to other computer programs , in the same or other computer. The physical computer that runs a server program is also often referred to as server....
s on an operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 (kernel) layer. It can be thought of as partitioning: a single physical server is sliced into multiple small partitions (otherwise called virtual environments (VE), virtual private server
Virtual private server

A virtual private server is a method of partitioning a physical server computer into multiple servers such that each has the appearance and capabilities of running on its own dedicated machine....
s (VPS), guests, zones, etc.); each such partition looks and feels like a real server, from the point of view of its users.

For example, Solaris Zones supports multiple guest OSes running under the same OS (such as Solaris 10). All guest OSes have to use the same kernel level and cannot run as different OS versions. Solaris native Zones also requires that the host OS be a version of Solaris; other OSes from other manufacturers are not supported.,however you need to use Solaris Branded zones to use another OSes as zones.

Another example is AIX, which provides the same technique under the name of Micro Partitioning.

The operating system level architecture has low overhead that helps to maximize efficient use of server resources. The virtualization introduces only a negligible overhead and allows running hundreds of virtual private server
Virtual private server

A virtual private server is a method of partitioning a physical server computer into multiple servers such that each has the appearance and capabilities of running on its own dedicated machine....
s on a single physical server. In contrast, approaches such as pure virtualization
Virtualization

In computing, platform virtualization is a virtualization of computers or operating systems. It hides the physical characteristics of computing platform from the users, instead showing another abstract, emulated computing platform....
 (like VMware
VMware

VMware, Inc. is a software developer of virtualization software. The company was founded in 1998 and is based in Palo Alto, California. The Company is majority owned by EMC Corporation ....
) and paravirtualization
Paravirtualization

In computing, paravirtualization is a virtualization technique that presents a software interface to virtual machines that is similar but not identical to that of the underlying hardware....
 (like Xen
Xen

Xen is a Hypervisor for IA-32 , IA-64 and PowerPC 970 architectures. It allows several guest operating systems to be executed on the same computer hardware concurrently....
 or UML
User-mode Linux

User-mode Linux enables multiple virtual Linux systems to run as an application within a normal Linux system . As each guest is just a normal application running as a process in user space, this approach provides the user with a way of running multiple virtual Linux machines on a single piece of hardware, offering excellent security and saf...
) cannot achieve such level of density, due to overhead of running multiple kernels. From the other side, operating system-level virtualization does not allow running different operating systems (i.e. different kernels), although different libraries, distributions etc. are possible.

List of hardware with virtual machine support


  • Alcatel-Lucent
    Alcatel-Lucent

    Alcatel-Lucent is a global telecommunications corporation, headquartered in Paris, France. It provides telecommunications solutions to service providers, enterprises and governments around the world, enabling these customers to deliver voice, data and video services....
     3B20D/3B21D emulated on commercial off-the-shelf
    Commercial off-the-shelf

    Commercial, off-the-shelf is a term for Computer software or hardware, generally technology or computer products, that are ready-made and available for sale, lease, or license to the general public....
     computers with 3B2OE or 3B21E system
  • AMD-V (formerly code-named Pacifica)
  • ARM TrustZone
    ARM architecture

    The ARM architecture is a 32-bit RISC central processing unit architecture developed by ARM Limited that is widely used in embedded system designs....
  • Boston Circuits gCore (grid-on-chip) with 16 ARC
    ARC International

    ARC International plc is a developer of configurable microprocessor technology. ARC develops synthesisable IP and licenses it to semiconductor companies....
     750D cores and Time-machine hardware virtualization module.
  • Freescale PowerPC
    PowerPC

    PowerPC is a RISC instruction set architecture created by the 1991 Apple Inc.?IBM?Motorola alliance, known as AIM alliance. Originally intended for personal computers, PowerPC CPUs have since become popular embedded system and high-performance processors....
     MPC8572 and MPC8641D
  • IBM
    IBM

    International Business Machines Corporation, abbreviated IBM and nicknamed "Big Blue" , is a multinational corporation computer technology and consulting corporation headquartered in Armonk, New York, New York, United States....
     System/370
    System/370

    The IBM System/370 was a model range of IBM mainframes announced on June 30, 1970 as the successors to the System/360 family. The series maintained backward compatibility with the S/360, allowing an easy migration path for customers; this, plus improved performance, were the dominant themes of the product announcement....
    , System/390, and zSeries
    ZSeries

    IBM System z, or earlier IBM eServer zSeries, is a brand name designated by IBM to all its mainframe computers.In 2000, IBM rebranded the existing System/390 to IBM eServer zSeries with the e depicted in IBM's red trademarked symbol....
     mainframes
  • Intel VT (formerly code-named Vanderpool)
  • Sun Microsystems
    Sun Microsystems

    Sun Microsystems, Inc. is a multinational corporation vendor of computers, computer components, computer software, and information technology services, founded on February 24, 1982....
     sun4v (UltraSPARC T1
    UltraSPARC T1

    Sun Microsystems' UltraSPARC T1 microprocessor, known until its 14 November 2005 announcement by its development codename "Niagara", is a multithreading, multicore central processing unit....
     and T2
    UltraSPARC T2

    Sun Microsystems' UltraSPARC T2 microprocessor is a Multithreading , Multi-core central processing unit. It is a member of the SPARC family, and the successor to the UltraSPARC T1....
    ) -- utilized by Logical Domains
    Logical Domains

    Logical Domains is a technology from Sun Microsystems released in May 2007 which offers a virtualization abstracted from all physical devices....
  • HP vPAR and cell based nPAR
  • GE

    G? are the people who spoke Ge languages of the northern South American Caribbean coast and Brazil, their society is or was highly egalitarian and anti-authoritarian, because of which they resisted the Incas as well as the Spaniards....
     Project MAC then
  • Honeywell
    Honeywell

    Honeywell is a major United States multinational corporation list of conglomerates company that produces a variety of consumer products, engineering services, and aerospace systems for a wide variety of customers, from private consumers to major corporations and governments....
     Multics systems
  • Honeywell
    Honeywell

    Honeywell is a major United States multinational corporation list of conglomerates company that produces a variety of consumer products, engineering services, and aerospace systems for a wide variety of customers, from private consumers to major corporations and governments....
     200/2000 systems Liberator replacing IBM 14xx systems, Level 62/64/66 GCOS
  • IBM
    IBM

    International Business Machines Corporation, abbreviated IBM and nicknamed "Big Blue" , is a multinational corporation computer technology and consulting corporation headquartered in Armonk, New York, New York, United States....
     System/360 Model 145 Hardware emulator for Honeywell 200/2000 systems
  • RCA
    RCA

    RCA Corporation, founded as Radio Corporation of America, was an electronics company in existence from 1919 to 1986. Today, the RCA is owned by the France conglomerate Thomson SA through RCA Trademark Management S.A., a company owned by Thomson....
     Spectra/70 Series emulated IBM System/360
  • NAS
    Nas

    Nasir Jones, , , better known by his stage name Nas, , formerly Nasty Nas, is an American rapping and actor. The son of jazz musician Olu Dara, he was born and raised in the Queensbridge, Queens housing projects in New York City....
     CPUs emulated IBM and Amdahl machines
  • Honeywell
    Honeywell

    Honeywell is a major United States multinational corporation list of conglomerates company that produces a variety of consumer products, engineering services, and aerospace systems for a wide variety of customers, from private consumers to major corporations and governments....
     Level 6 minicomputers emulated predecessor 316/516/716 minis
  • Xerox
    Xerox

    Xerox Corporation is a global document management company which manufactures and sells a range of color and black-and-white Computer printer, multifunction systems, photo copiers, digital production printing presses, and related consulting services and supplies....
     Sigma 6 CPUs were modified to emulate GE/Honeywell 600/6000 systems


List of virtual machine software

Process (Application) virtual machine software
  • Common Language Infrastructure
    Common Language Infrastructure

    The Common Language Infrastructure is an open specification developed by Microsoft that describes the executable code and runtime environment that form the core of a number of runtimes including the .NET Framework, Mono , and Portable.NET....
     - C#, Visual Basic .NET
    Visual Basic .NET

    Visual Basic , formerly called Visual Basic .NET , is an object-oriented programming computer language that can be viewed as an evolution of Microsoft Visual Basic implemented on the .NET Framework....
    , J#
    J Sharp

    The J# programming language is a transitional language for programmers of Sun Microsystems's Java and Microsoft's J++ languages, so they may use their existing knowledge and applications on Microsoft's Microsoft .NET platform ....
    , C++/CLI
    C++/CLI

    C++/CLI is Microsoft's language specification intended to supersede Managed Extensions for C++. Completely revised to simplify the older Managed C++ syntax , it provides much more clarity and code readability than Managed C++....
     (formerly Managed C++
    Managed Extensions for C++

    Managed Extensions for C++ or just Managed C++ is Microsoft's set of deviations from C++, including grammatical and syntactic extensions, keywords and attributes, to bring the C++ syntax and language to the .NET Framework....
    )
  • Dalvik virtual machine
    Dalvik virtual machine

    The Dalvik virtual machine is a major piece of Google's Android platform for mobile devices. It runs Java applications which have been converted into a compact Dalvik Executable format suitable for systems that are constrained in terms of random access memory and central processing unit speed....
     - part of the Android mobile phone platform
  • Dis - Inferno operating system and its Limbo programming language
    Limbo programming language

    Limbo is a programming language for writing distributed systems and is the language used to write Application software for the Inferno operating system....
  • Dosbox
    DOSBox

    DOSBox is an emulator which emulates an IBM PC compatible computer running MS-DOS. It is intended especially for use with old Personal computer game....
  • EiffelStudio
    EiffelStudio

    EiffelStudio is a development environment for the Eiffel developed and distributed by Eiffel Software.EiffelStudio includes a combination of tools integrated under a single user interface: compiler, interpreter, debugger, browser, metrics tool, profiler, diagram tool....
     for the Eiffel programming language
    Eiffel (programming language)

    Eiffel is an International Organization for Standardization-standardized, object-oriented programming language designed to enable programmers to efficiently develop extensible, reusable, reliable software....
  • Erlang programming language
    Erlang programming language

    Erlang is a general-purpose concurrent computing programming language andruntime system. The sequential subset of Erlang is a functional language, with strict evaluation, single assignment, and Type system....
  • Forth virtual machine - Forth
  • Glulx
    Glulx

    Glulx is a 32-bit Porting virtual machine intended for writing and playing interactive fiction. It was designed by Andrew Plotkin to relieve some of the restrictions in the venerable Z-machine format....
     - Glulx
    Glulx

    Glulx is a 32-bit Porting virtual machine intended for writing and playing interactive fiction. It was designed by Andrew Plotkin to relieve some of the restrictions in the venerable Z-machine format....
    , Z-code
    Z-machine

    The Z-machine is a virtual machine that was developed by Joel Berez and Marc Blank in 1979 and used by Infocom for its interactive fiction. Infocom compiled game code to files containing Z-machine instructions , and could therefore port all its text adventures to a new platform simply by writing a Z-machine implementation for that platform....
  • Hec - Hasm Assembler
    Bytecode

    Bytecode is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software Interpreter as well as being suitable for further compilation into machine language....
  • Java Virtual Machine
    Java Virtual Machine

    A Java Virtual Machine is a set of computer software programs and data structures which use a virtual machine model for the execution of other computer programs and Scripting language....
     - Java
    Java (programming language)

    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
    , Nice
    Nice programming language

    Nice is an advanced object-oriented programming language.It features a powerful type system which can help eliminate many common bugs, such as null pointer dereferences and invalid casts, by detecting potential runtime errors at compile-time; the goal of the designers was to provide safety features comparable to those found in languages suc...
    , NetREXX
    REXX

    REXX is an Interpreted language programming language which was developed at IBM. It is a structured high-level programming language which was designed to be both easy to learn and easy to read....
  • Low Level Virtual Machine (LLVM) - currently C
    C (programming language)

    C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
    , C++
    C++

    C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
    , Stacker
  • Lua
    Lua programming language

    In computing, Lua is a lightweight languages, Reflection , imperative programming and functional programming programming language, designed as a scripting language with extension language semantics as a primary goal....
  • Macromedia Flash Player - SWF
    SWF

    The file formatSWF a partially open software repository for multimedia and especially for vector graphics, originated with FutureWave Software and has come under the control of Adobe Systems....
  • MMIX
    MMIX

    MMIX is a 64-bit Reduced instruction set computer instruction set Computer architecture designed by Donald Knuth, with significant contributions by John L....
     - MMIX
    MMIX

    MMIX is a 64-bit Reduced instruction set computer instruction set Computer architecture designed by Donald Knuth, with significant contributions by John L....
    AL
  • Neko virtual machine - currently Neko and haXe
    HaXe

    haXe is a programming language, designed for creating interactive web applications. Currently there are four official compiler targets - Adobe Flash, JavaScript, PHP and the Neko ....
  • O-code machine
    O-code machine

    The O-code machine is a virtual machine that was developed by Martin Richards in the late 1960s to give machine independence to BCPL, the low-level forerunner to C and C++....
     - BCPL
    BCPL

    BCPL is a computer programming language designed by Martin Richards of the University of Cambridge in 1966....
  • p-code machine
    P-Code machine

    In computer programming, a p-code machine or pseudo-code machine is a virtual machine designed to execute p-code . This term is applied both generically to all such machines , and to specific implementations, the most famous being the p-Machine of UCSD Pascal....
     - Pascal
  • Parrot
    Parrot virtual machine

    Parrot is a register machine virtual machine being developed using the C and intended to run dynamic languages efficiently. It uses just-in-time compilation for speed to reduce the interpretation overhead....
     - Perl 6
    Perl 6

    Perl 6 is a planned major revision to the Perl programming language. It is a language specification which introduces elements of many modern and historical languages....
  • Perl virtual machine
    Perl

    In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
     - Perl
    Perl

    In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
  • CPython
    CPython

    CPython is the default, most-widely used implementation of the Python . It is written in C . In addition to CPython, there are two other production-quality Python implementations: Jython, written in Java , and IronPython, which is written for the Common Language Runtime, as well as several experimental implementations....
     - Python
    Python (programming language)

    Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
  • YARV
    YARV

    YARV is a bytecode interpreter that was developed for the Ruby programming language by Koichi Sasada. The name is an acronym for Yet another Ruby VM....
     - Ruby MRI
    Ruby MRI

    Matz's Ruby Interpreter or Ruby MRI is the reference implementation of the Ruby . As there is currently no specification of the Ruby language, the MRI implementation is considered the de facto reference....
  • Rubinius
    Rubinius

    Rubinius is an alternative Ruby implementation created by Evan Phoenix. Based loosely on the Smalltalk-80 Blue Book design, Rubinius seeks to...
     - Ruby
    Ruby (programming language)

    Ruby is a dynamic programming language, reflection , general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features....
  • ScummVM
    ScummVM

    ScummVM is a collection of game engine recreations. Originally designed to play LucasArts adventure games that use the SCUMM system , it now also supports a variety of non-SCUMM games by companies like Revolution Software and Adventure Soft....
     - Scumm
    SCUMM

    SCUMM is a scripting language developed at LucasArts to ease development of the graphical LucasArts adventure games Maniac Mansion.It is somewhere between a game engine and a programming language, allowing designers to create locations, items and dialogue sequences without writing code in the actual language the game source code wo...
  • SECD machine
    SECD machine

    The SECD machine is a highly influential virtual machine intended as a target for functional programming compilers. The letters stand for Stack, Environment, Code, Dump, the internal registers of the machine....
     - ISWIM
    ISWIM

    ISWIM is an abstract computer programming language devised by Peter J. Landin and first described in his article, The Next 700 Programming Languages, published in the Communications of the ACM in 1966....
    , Lispkit Lisp
    Lispkit Lisp

    Lispkit Lisp is a lexical scoping, purely functional subset of Lisp programming language developed as a testbed for functional programming concepts....
  • Sed
    Sed

    sed is a Unix utility which parses text files and implements a programming language which can apply textual transformations to such files. It reads input files line by line , applying the operation which has been specified via the command line , and then outputs the line....
     the stream-editor can also be seen as a VM with 2 storage spaces.
  • Smalltalk virtual machine
    Smalltalk

    Smalltalk is an Object-oriented programming, Type system, reflection computer programming programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human?computer symbiosis." It was designed and created in part for educational use, more so for constructionist learning, at PARC by Al...
     - Smalltalk
    Smalltalk

    Smalltalk is an Object-oriented programming, Type system, reflection computer programming programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human?computer symbiosis." It was designed and created in part for educational use, more so for constructionist learning, at PARC by Al...
  • SQLite virtual machine
    SQLite

    SQLite is an ACID-compliant relational database management system contained in a relatively small C programming library .Unlike client-server database management systems, the SQLite engine is not a standalone process with which the program communicates....
     - SQLite opcodes
    SQLite

    SQLite is an ACID-compliant relational database management system contained in a relatively small C programming library .Unlike client-server database management systems, the SQLite engine is not a standalone process with which the program communicates....
  • Squeak virtual machine
    Squeak

    The Squeak programming language is a Smalltalk implementation, derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers....
     - Squeak
    Squeak

    The Squeak programming language is a Smalltalk implementation, derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers....
  • SWEET16
    SWEET16

    SWEET16 is an interpreted "byte-code" language invented by Steve Wozniak and implemented as part of the Integer BASIC read-only memory in the Apple II family computer....
  • Tamarin (JavaScript engine)
    Tamarin (JavaScript engine)

    Tamarin is a free software virtual machine and just-in-time compilation compiler intended to implement the fourth edition of the ECMAScript standard....
     - ActionScript VM in Flash 9
  • TrueType virtual machine
    TrueType

    TrueType is an outline font standardization originally developed by Apple Computer in the late 1980s as a competitor to Adobe Systems's Type 1 fonts used in PostScript....
     - TrueType
    TrueType

    TrueType is an outline font standardization originally developed by Apple Computer in the late 1980s as a competitor to Adobe Systems's Type 1 fonts used in PostScript....
  • Valgrind
    Valgrind

    Valgrind is a programming tool for memory debugger, memory leak detection, and performance analysis. The name Valgrind comes from the name of the main entrance to Valhalla in Norse mythology....
     - checking of memory accesses and leaks in x86/x86-64
    X86-64

    x86-64 is a superset of the x86. x86-64 Central processing units can run existing 32-bit or 16-bit x86 programs at full speed, but also support new programs written with a 64-bit address space and other additional capabilities....
     code under Linux
    Linux

    Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
  • Virtual Processor
    Virtual processor

    Tao Virtual Processor is a virtual machine from Tao Group.The first version, VP1, was the basis of its parallel processing multimedia OS and platform, TAOS....
     (VP) from Tao Group
    Tao Group

    Tao Group was a software company headquartered in Reading, Berkshire,United Kingdom. It developed Tao Group#intent, a software platform. intent enabled content portability by delivering services in a platform independent format called Virtual Processor ....
     (UK
    United Kingdom

    The United Kingdom of Great Britain and Northern Ireland, commonly known as the United Kingdom , the UK or Britain,is a sovereign state located off the northwestern coast of continental Europe....
    ).
  • VX32 virtual machine
    VX32

    The VX32 virtual extension environment is an virtual machine implemented as an ordinary user-mode library and designed to run native x86 code. Applications can link with and use VX32 in order to create safe, operating system-independent execution environments, in which to run untrusted plugin or other extensions written in any language that...
     - application-level virtualization for native code
  • Waba - Virtual machine for small devices, similar to Java
  • Warren Abstract Machine
    Warren abstract machine

    In 1983, David H. D. Warren designed an abstract machine for the execution of Prolog consisting of a computer storage architecture and an instruction set [War83]....
     - Prolog
    Prolog

    Prolog is a logic programming language. It is a general purpose language often associated with artificial intelligence and computational linguistics....
    , CSC
    Csc

    CSC or Csc, a three letter acronym, can refer to the following:...
     GraphTalk
  • Z-machine
    Z-machine

    The Z-machine is a virtual machine that was developed by Joel Berez and Marc Blank in 1979 and used by Infocom for its interactive fiction. Infocom compiled game code to files containing Z-machine instructions , and could therefore port all its text adventures to a new platform simply by writing a Z-machine implementation for that platform....
     - Z-Code
    Z-machine

    The Z-machine is a virtual machine that was developed by Joel Berez and Marc Blank in 1979 and used by Infocom for its interactive fiction. Infocom compiled game code to files containing Z-machine instructions , and could therefore port all its text adventures to a new platform simply by writing a Z-machine implementation for that platform....
  • Zend Engine
    Zend engine

    The Zend Engine is an open source scripting engine , commonly known for the important role it plays in the web automation language PHP. It was originally developed by Andi Gutmans and Zeev Suraski while they were students at the Technion....
     - PHP
    PHP

    PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
System (Hardware) virtual machine software
  • ATL
    ATLAS Transformation Language

    ATL is a Model Transformation Language developed at INRIA to answer the QVT Request For Proposal. QVT is an Object Management Group standard for performing model transformations....
     (A MTL
    Model Transformation Language

    Presentation...
     Virtual Machine)
  • Bochs
    Bochs

    Bochs is a portable x86 and x86-64 IBM PC compatible emulator and debugger mostly written in C++ and distributed as free software under GNU Lesser General Public License....
    , portable open source x86 and AMD64 PCs emulator
  • CoLinux Open Source Linux inside Windows
  • Denali
    Denali (operating system)

    In computing, Denali is an operating system, according to , "an IA-32 virtual machine monitor, that allows for untrusted services to be run in isolated domains."...
    , uses paravirtualization of x86 for running para-virtualized PC operating systems.
  • FAUmachine
    FAUmachine

    FAUmachine is an open source virtual machine which emulates a PC. Currently it only supports Linux, DOS, OpenBSD on IA-32 hardware, but it is being ported to other operating systems and architectures....
  • Hercules emulator
    Hercules emulator

    The Hercules emulator is a computer program which allows software designed for IBM mainframes computers to be run on other types of computer hardware: notably on low-cost Personal Computer....
    , free System/370, ESA/390, z/Mainframe
  • KVM
    Kernel-based Virtual Machine

    Kernel-based Virtual Machine is a Linux kernel virtualization infrastructure. KVM currently supports native virtualization using X86 virtualization#Intel Virtualization Technology or X86 virtualization#AMD virtualization ....
  • Logical Domains
    Logical Domains

    Logical Domains is a technology from Sun Microsystems released in May 2007 which offers a virtualization abstracted from all physical devices....
  • Microsoft Virtual PC
    Microsoft Virtual PC

    Microsoft Virtual PC is a virtualization suite for Microsoft Windows, and an emulation suite for Mac OS X on PowerPC-based systems. The software was originally written by Connectix, and was subsequently acquired by Microsoft....
     and Microsoft Virtual Server
    Microsoft Virtual Server

    Microsoft Virtual Server is a virtualization solution that facilitates the creation of virtual machines on the Windows XP, Windows Vista and Windows Server 2003 operating systems....
  • from
  • Oracle VM
    Oracle VM

    Oracle VM is the server virtualization offerings from Oracle Corporation. Oracle VM is based on the open-source Xen hypervisor technology, supports both Windows and Linux guests and includes an integrated Web browser based management console....
  • OVPsim
    OVPsim

    OVPsim is a multiprocessor platform emulator that uses dynamic binary translation technology to achieve high simulation speeds. It has public APIs allowing users to create their own processor, peripheral and platform models....
      is a freely available virtual platform simulator designed to simulate complex multiprocessor systems at very high speeds
  • Parallels Workstation
    Parallels Workstation

    Parallels Workstation is the first commercial software product released by Parallels, Inc., a developer of desktop and server virtualization software....
    , provides virtualization of x86 for running unmodified PC operating systems
  • Parallels Desktop for Mac
    Parallels Desktop for Mac

    Parallels Desktop for Mac is a software product by Parallels, Inc., a developer of desktop and server virtualization software. The only retail publisher of Parallels Desktop since July 2006 has been Nova Development....
    , provides virtualization of x86 for running virtual machines on Mac OS X or higher
  • QEMU
    QEMU

    QEMU is a central processing unit emulator that relies on dynamic binary translation to achieve a reasonable speed while being easy to port on new host CPU architectures....
    , is a simulator based on a virtual machine.
  • SheepShaver
    SheepShaver

    SheepShaver is an open source PowerPC Apple Macintosh emulator originally designed for BeOS and Linux. The name is a play on ShapeShifter , a Macintosh II emulator for AmigaOS , which is in turn not to be confused with ShapeShifter....
    .
  • Simics
    Simics

    Simics is a full system simulation used to run unchanged production binaries of the target hardware at high-performance speeds. Simics was originally developed by the Swedish Institute of Computer Science , and then spun off to Virtutech for commercial development in 1998....
  • Sun xVM
    Sun xVM

    Sun xVM is a family of four technologies from Sun Microsystems that address desktop and server virtualization, as well as datacenter automation....
  • SVISTA
    SVISTA

    SVISTA is one of the commercial software products promoted by Serenity Systems International. The workstation software consists of a virtual machine suite for Intel x86-compatible computers which allows the creation and execution of multiple x86 virtual computers simultaneously....
  • twoOStwo
    TwoOStwo

    twoOStwo is one of the commercial software products developed by Parallels Software Studio. The Workstation software consists of a virtual machine suite for Intel x86-compatible computers which allows the creation and execution of multiple x86 virtual computers simultaneously....
  • User-mode Linux
    User-mode Linux

    User-mode Linux enables multiple virtual Linux systems to run as an application within a normal Linux system . As each guest is just a normal application running as a process in user space, this approach provides the user with a way of running multiple virtual Linux machines on a single piece of hardware, offering excellent security and saf...
  • VirtualBox
    VirtualBox

    VirtualBox is an x86 virtualization software package, originally created by Germany software company innotek, now developed by Sun Microsystems as part of its Sun xVM virtualization platform....
  • Virtual Iron
    Virtual Iron

    Virtual Iron Software, located in Lowell, Massachusetts, provides proprietary software for virtualization and management of a virtual infrastructure....
     (Virtual Iron 3.1)
  • VM
    VM (operating system)

    VM refers to a family of IBM virtual machine operating systems used on IBM System/370, System/390, zSeries, and System z IBM mainframes and compatible systems, including the Hercules emulator for personal computers....
     from IBM
  • VMware
    VMware

    VMware, Inc. is a software developer of virtualization software. The company was founded in 1998 and is based in Palo Alto, California. The Company is majority owned by EMC Corporation ....
     (ESX Server, Fusion, Virtual Server, Workstation, Player and ACE)
  • (From )
  • Xen
    Xen

    Xen is a Hypervisor for IA-32 , IA-64 and PowerPC 970 architectures. It allows several guest operating systems to be executed on the same computer hardware concurrently....
  • IBM POWER SYSTEMS


OS-level virtualization software
  • OpenVZ
    OpenVZ

    OpenVZ is an operating system-level virtualization technology based on the Linux kernel and operating system. OpenVZ allows a physical server to run multiple isolated operating system instances, known as containers, virtual private server , or Virtual Environments ....
  • FreeVPS
    FreeVPS

    FreeVPS is a GNU General Public License-licensed virtualization patch for the Linux kernel developed by Positive Software Corporation. It was originally a fork of Linux-VServer....
  • Linux-VServer
    Linux-VServer

    Linux-VServer is a virtual private server implementation done by adding operating system-level virtualization capabilities to the Linux kernel ....
  • FreeBSD Jail
    FreeBSD Jail

    The FreeBSD prison mechanism is an implementation of operating system-level virtualization that allows BOFH to partition a FreeBSD-based computer system into several independent mini-systems called jails....
    s
  • Solaris Containers
    Solaris Containers

    Solaris Containers is an implementation of operating system-level virtualization technology first made available in 2005 as part of Solaris 10....
  • AIX
    AIX

    AIX AIX is a three-letter abbreviation with multiple meanings, as described below:*Air India Express, the budget arm of Air India*Athens Internet Exchange, a European Internet exchange point...
     Workload Partitions


Extended descriptions of selected virtualization software


The following software products are able to virtualize the hardware so that several operating systems can share it.

  • Adeos
    Adeos

    Adeos is a nanokernel hardware abstraction layer that operates between computer hardware and the operating system that runs on it. It is distinct from other nanokernels, in that it is not just a low level layer for an outer kernel....
     is a Hardware Abstraction Layer
    Hardware abstraction layer

    A hardware abstraction layer is an abstraction layer, implemented in software, between the physical Computer hardware of a computer and the Computer software that runs on that computer....
     that can be loaded as a Kernel Module in Linux
    Linux

    Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
    . It allows the loading of a real-time kernel as a module, at the same time as Linux but with higher priority.
  • Denali
    Denali (operating system)

    In computing, Denali is an operating system, according to , "an IA-32 virtual machine monitor, that allows for untrusted services to be run in isolated domains."...
     uses paravirtualisation to provide high-performance virtual machines on x86 computers. Denali's virtual machines support specialised minimal OSs for Internet services. The system can scale to thousands of virtual machines. Denali does not preserve the application binary interface (ABI), and so applications must be recompiled to run within a library operating system; in this sense it is similar to the Exokernel
    Exokernel

    Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems....
    .
  • uses the open-source L4 microkernel as a hypervisor to provide a high-performance virtualization solution for embedded systems.
  • OpenVZ
    OpenVZ

    OpenVZ is an operating system-level virtualization technology based on the Linux kernel and operating system. OpenVZ allows a physical server to run multiple isolated operating system instances, known as containers, virtual private server , or Virtual Environments ....
     - Operating System-level server virtualization solution, built on Linux.
  • Parallels
    Parallels, Inc.

    Parallels, Inc. is a privately-held virtualization technology company with offices all around the world . Parallels US offices are in Seattle, WA and Washington, D.C.....
     provides virtualization of x86 for running unmodified PC operating systems. It also uses a lightweight hypervisor technology in order to improve security and to increase the efficiency. Parallels has become popular for its ability to run Windows as a guest under Mac OS X
    Mac OS X

    Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
     on the Apple-Intel architecture
    Apple-Intel architecture

    The Apple-Intel architecture is an unofficial name used for Apple Inc. Macintosh personal computers developed and manufactured by Apple Inc. that use Intel x86 processors, rather than the PowerPC and 68k processors used in their predecessors....
    .
  • QEMU
    QEMU

    QEMU is a central processing unit emulator that relies on dynamic binary translation to achieve a reasonable speed while being easy to port on new host CPU architectures....
     is a simulator based on a virtual machine, which gives it the ability to emulate a variety of guest CPU architectures on many different host platforms.
  • VirtualBox
    VirtualBox

    VirtualBox is an x86 virtualization software package, originally created by Germany software company innotek, now developed by Sun Microsystems as part of its Sun xVM virtualization platform....
     is an open source (GPL
    GNU General Public License

    The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
    )/proprietary
    Proprietary software

    Proprietary software is a term coined by advocates of the free software movement to describe computer software which is the legal property of one party....
     virtual machine developed by Sun Microsystems
    Sun Microsystems

    Sun Microsystems, Inc. is a multinational corporation vendor of computers, computer components, computer software, and information technology services, founded on February 24, 1982....
    . It allows virtualization of x86 and supports various host operating systems including Windows
    Microsoft Windows

    Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
    , Linux
    Linux

    Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
    , BSD
    Berkeley Software Distribution

    Berkeley Software Distribution is the Unix operating system derivative developed and distributed by the Computer Systems Research Group of the University of California, Berkeley, from 1977 to 1995....
     and Solaris. It also supports VMware Workstation Virtual Machine Disk Format.
  • Virtual Iron
    Virtual Iron

    Virtual Iron Software, located in Lowell, Massachusetts, provides proprietary software for virtualization and management of a virtual infrastructure....
     provides virtual machines for x86 that run unmodified operating systems, such as Windows, Red Hat and SUSE. Virtual Iron open source virtualization technology implements native virtualization
    Native virtualization

    Hardware-assisted virtualization is a virtualization approach that enables efficient full virtualization using help from hardware capabilities, primarily from the host processors....
    , which delivers near-native performance for x86 operating systems.
  • replaces the hardware abstraction layer with a modified version enabling it to run with better performance of the OS, but forces all the VMs on a hardware box to all run the same OS, with some flexibility to support various Linux distributions on the same server. Currently they have a version for Windows 2003 and for Linux. OpenVZ
    OpenVZ

    OpenVZ is an operating system-level virtualization technology based on the Linux kernel and operating system. OpenVZ allows a physical server to run multiple isolated operating system instances, known as containers, virtual private server , or Virtual Environments ....
     is a related open-source project providing similar functionality for Linux.
  • from aggregation platform enables the creation of high-end x86-based symmetric multiprocessor (SMP) systems, by running single VM acrooss multiple industry-standard x86 systems.
  • VMware
    VMware

    VMware, Inc. is a software developer of virtualization software. The company was founded in 1998 and is based in Palo Alto, California. The Company is majority owned by EMC Corporation ....
     provides virtual machines for x86 that can run unmodified PC operating systems. The technology involved in doing this is complex and also incurs (sometimes significant) performance overheads with hosted VMware products (VM Server and Workstation). ESX server provides near-native performance and a fully virtualized option (along with para-virtualization of some hardware components). Xen trades running of existing operating systems for running modified (paravirtualized) operating systems with improved performance. Virtual Iron provides full OS compatibility for existing or new OSes with near-native performance without the performance trade-offs between paravirualization and binary translation.
  • Xen
    Xen

    Xen is a Hypervisor for IA-32 , IA-64 and PowerPC 970 architectures. It allows several guest operating systems to be executed on the same computer hardware concurrently....
     Virtualization system whose motivation differs from that of Denali in that it is intended to run a moderate number of full-featured operating systems, rather than a large number of specialised, lightweight ones.
  • KVM
    Kernel-based Virtual Machine

    Kernel-based Virtual Machine is a Linux kernel virtualization infrastructure. KVM currently supports native virtualization using X86 virtualization#Intel Virtualization Technology or X86 virtualization#AMD virtualization ....
     is a Linux kernel
    Linux kernel

    The Linux kernel is an operating system kernel used by a family of Unix-like operating systems. The term Linux distribution is used to refer to the various operating systems that run on top of the Linux Kernel....
     module that enables a modified QEMU program to use hardware virtualization.


See also

  • Comparison of platform virtual machines
  • Comparison of application virtual machines
    Comparison of Application Virtual Machines

    This comparison lists some software virtual machines that implement the concept of application virtualization, typically for the purpose of allowing application bytecode to be portably run on many different computer architectures and operating systems....
  • Virtual appliance
    Virtual appliance

    A virtual appliance is a minimalist virtual machine image designed to run under some sort of virtualization technology .Virtual appliances are a subset of the broader class of Software Appliance....
  • Computing
    Computing

    Computing is usually defined as the activity of using and developing computer technology, computer hardware and computer software. It is the computer-specific part of information technology....
  • ICL's VME operating system
  • Gerrit Blaauw
    Gerrit Blaauw

    Gerrit Anne Blaauw is one of the principal designers of the IBM System/360 line of computers, together with Fred Brooks, Gene Amdahl, and others....
     (A significant designer of the IBM/360, an early virtual computing architecture)
  • LLVM (The University of Illinois
    University of Illinois at Urbana-Champaign

    The University of Illinois at Urbana-Champaign is a public university research university in the state of Illinois, United States. It is the oldest and largest campus in the University of Illinois system....
    's Low Level Virtual Machine, a compiler
    Compiler

    A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
     toolset)
  • Threaded code
    Threaded code

    In computer science, the term threaded code refers to a compiler implementation technique where the generated code has a form that essentially consists entirely of calls to subroutines....
     (A common implementation technique for application virtual machines)
  • Virtual keyboard
    Virtual keyboard

    A virtual keyboard is a software and/or hardware component that allows a user to enter characters. A virtual keyboard can usually be operated with multiple input devices, which may include an actual keyboard, a computer mouse, a headmouse, and an eyemouse....
  • Leostream
    Leostream

    Leostream is a Waltham, Massachusetts-based company offering primarily two products for virtualization: P>V Direct and the Virtual Desktop Connection Broker....
     (An easy to use P2V (Physical to Virtual) conversion utility)


Books

  • Jim, Jr. Smith, Ravi Nair, James E. Smith, Heath Potter, Virtual Machines: Versatile Platforms For Systems And Processes, Publisher Morgan Kaufmann Publishers, May 2005, ISBN 1-55860-910-5, 656 pages
  • Craig, Iain D. Virtual Machines. Springer, 2006, ISBN 1-85233-969-1


External links