← New search

Other meanings of Virtual machine

Computer science

Virtual machine

A virtual machine (VM) is a software-based emulation of a physical computer system that runs an operating system and applications as if it were real hardware. Virtual machines are the foundational abstraction behind virtualization, enabling multiple isolated environments on a single physical host, and are widely used in cloud computing, software development, and legacy system preservation.

1972
First commercial VM (IBM CP-40)
Year
VMware Workstation 1.0
First x86 VM for PCs (1999)
Product
Hypervisor
Software layer managing VMs
Key technology
1

Definition and core concept

A virtual machine replicates the components of a computer system—CPU, memory, storage, and network interfaces—through a software layer called a hypervisor.1 The hypervisor runs directly on physical hardware (Type 1) or atop a host operating system (Type 2) and allocates resources to each VM. Each VM contains its own guest operating system, applications, and virtualized hardware, providing strong isolation. This allows multiple operating systems (e.g., Linux, Windows) to run concurrently on a single machine, each believing it has exclusive access to the hardware.2 The concept originated in the 1960s at IBM, which developed the CP-40 and later VM/370 to enable time-sharing and resource sharing among mainframe users. Modern virtual machines use hardware-assisted virtualization extensions (Intel VT-x, AMD-V) to reduce overhead and improve performance, making them nearly indistinguishable from physical machines for most workloads.

2

Types of virtual machines

Virtual machines are broadly classified into system VMs and process VMs.1 System VMs (also called hardware VMs) provide a complete system platform that can run a full operating system; examples include VMware ESXi, Microsoft Hyper-V, and KVM. Process VMs, on the other hand, run a single application or process by abstracting only the necessary runtime environment—the Java Virtual Machine (JVM) and the Common Language Runtime (CLR) are classic examples. Process VMs typically translate bytecode to native machine code just-in-time. Another distinction is between full virtualization, where the guest OS is unmodified, and paravirtualization, where the guest OS is modified to improve performance by communicating directly with the hypervisor. Container-based virtualization (e.g., Docker) is sometimes considered a lighter-weight form of OS-level virtualization, but it shares the host kernel and is not a true VM in the traditional sense.

3

History and evolution

The first practical virtual machine system was IBM's CP-40, which began operation in 1967 and evolved into the VM/370 operating system, released in 1972. These mainframe VMs allowed multiple users to run different operating systems (e.g., CMS, DOS/VS) simultaneously. The concept lay dormant for decades on personal computers until the 1990s, when the need for testing software across multiple platforms revived interest. In 1999, VMware introduced the first commercial x86 virtual machine product, VMware Workstation, which used binary translation to handle privileged instructions that the x86 architecture did not originally support virtualization.3 Intel and AMD later added hardware virtualization extensions (VT-x and AMD-V, respectively) in the mid-2000s, making virtualization faster and more efficient. The rise of cloud computing—Amazon EC2 (2006) and others—cemented the virtual machine as the fundamental unit of compute in modern data centers.

4

Lesser-known aspects

Beyond the mainstream story, several niche details enrich the history of virtual machines. The IBM System/370 had a unique feature called "virtual machine assist" that offloaded hypervisor work to microcode, decades before hardware virtualization extensions arrived on x86. In the 1980s, the Commodore Amiga 1000 included a hardware-level virtual machine called the "Amiga multitasking kernel" that allowed legacy AmigaOS 1.x applications to run on newer hardware via a built-in emulation layer. Another obscure fact: the Dis virtual machine from Bell Labs' Plan 9 operating system (1990s) was designed to run multiple operating system personalities on a single kernel, anticipating modern OS-level virtualization. Also, the Popek and Goldberg virtualization requirements (1974) defined the formal conditions for a machine to be "virtualizable"—a classification that the original x86 architecture failed until the 2000s.4 Finally, IBM's z/VM still runs on mainframes today and can host more than 100,000 virtual machines on a single system, a testament to the concept's enduring scalability.

Glossary

Hypervisor
A software layer that creates and manages virtual machines, also known as a virtual machine monitor.
Full virtualization
A technique where the guest operating system is unmodified and runs as if on real hardware.
Paravirtualization
A technique where the guest operating system is modified to cooperate with the hypervisor for performance.
Binary translation
A method used by hypervisors to rewrite and execute privileged instructions on the fly.

This article covers the system-level virtual machine sense; for process-level virtual machines (e.g., JVM), see the separate topic.