Foundations #3: The Rise of Virtualization
An idea born in the 1960s that made the cloud possible.
This article is part of the “Foundations” series, exploring the roots of well-known technologies, patterns, and solutions that quietly revolutionized our industry.
Today, spinning up a virtual machine in the cloud takes only a few seconds. For most developers, it feels natural, almost invisible, that hardware resources can be sliced, abstracted, and shared at the click of a button.
But the idea of virtualization is much older than cloud computing. It dates back to the 1960s, when computing resources were scarce, expensive, and shared among users who had to wait their turn.
Just as Edgar Codd’s relational model redefined how we structure data, and Roy Fielding’s REST reframed how we exchange it, virtualization reimagined the very foundation of how we run it. It turned computing from a physical constraint into an abstraction, the foundation upon which cloud infrastructure, containers, and serverless computing would later be built.
This article covers:
The origins of virtualization;
The technical and economic conditions that led to its rebirth;
The engineering breakthroughs that made it possible.
Time-Sharing and Mainframes
Virtualization began not as a convenience but as a necessity. In the 1960s, computers were enormous mainframes that cost millions of dollars. Only universities and large corporations could afford them, and they needed ways to share computing power among dozens of users at once.
IBM pioneered this concept with systems like CP-40 and CP-67, which allowed multiple virtual machines to coexist on a single mainframe. Each user believed they had a full computer, complete with its own operating system, but they were actually running in isolated environments managed by a control program.
In 1972, IBM released VM/CMS, a milestone in computing history. It formalized the idea that a single physical machine could host many virtual ones. This model introduced the concept of full virtualization, simulating complete hardware environments, and set the stage for decades of innovation.
The motivation was simple but powerful: maximize the use of extremely expensive resources, provide isolation between workloads, and allow experimentation without risk.
By the 1980s, however, the computing landscape had shifted. The personal computer revolution had begun, and hardware became cheap enough that individuals could own their own machines. The need to share a single computer among many users faded.
Virtualization entered a quiet period. The industry’s focus moved toward multitasking operating systems and networked PCs. UNIX, Windows, and macOS offered process isolation and scheduling, which was “good enough” for most organizations.
In academic and enterprise labs, though, the idea of virtualizing systems never disappeared. Researchers continued exploring ways to abstract hardware, particularly for performance and scalability, laying the groundwork for what would later become the second age of virtualization.
Hardware Abstraction Returns
By the mid-1990s, data centers were facing a new kind of inefficiency. Enterprises were running hundreds of physical servers, each operating at 10–20% capacity. This “server sprawl” was expensive and hard to manage. Companies needed a way to consolidate workloads, improve utilization, and reduce hardware costs.
At the same time, research in system abstraction was making significant strides. In 1997, the paper “Disco: Running Commodity Operating Systems on Scalable Multiprocessors” by Edouard Bugnion, Scott Devine, and Mendel Rosenblum introduced a new perspective on virtualization for modern hardware.
The Disco project, developed at Stanford, proposed a thin virtual machine monitor (VMM) that could run multiple copies of commodity operating systems on a multiprocessor system. Each OS instance believed it controlled the hardware, while in reality, the VMM multiplexed CPUs, memory, and devices across them.
What made Disco special wasn’t just its performance, it was its vision. It treated the VMM not as an emulation layer, but as a resource manager. It could dynamically allocate CPU and memory to workloads, isolate failures, and support scalability on shared-memory multiprocessors.
That idea of using virtualization as a flexible abstraction layer for commodity systems directly influenced the near future.
The VMware Breakthrough
Two years later, in 1999, several of the same researchers behind Disco founded VMware and published the paper “Bringing Virtualization to the x86 Architecture with the Original VMware Workstation”. This work brought the concepts pioneered in mainframes and research labs into the mainstream world of PCs.
The challenge was formidable. The x86 architecture, designed for desktop computers, was not virtualizable by classical definitions. Certain privileged instructions behaved differently depending on the CPU’s mode, making it impossible to trap and emulate them cleanly.
VMware’s solution was brilliant: a combination of dynamic binary translation and direct execution. Instead of running guest operating systems directly on the hardware, VMware’s hypervisor scanned and modified their code on the fly. Privileged instructions were replaced with safe equivalents that could run under host control, while non-privileged code executed natively on the CPU.
This approach preserved both transparency (no OS modifications required) and performance (most instructions executed at full speed).
As the authors wrote:
“We use dynamic binary translation to modify guest instructions that access privileged state, ensuring that the virtual machine monitor maintains full control of the hardware.” (Bugnion, 1999)
VMware also introduced the hosted architecture: the hypervisor ran on top of a standard operating system (like Linux or Windows), making it accessible to any developer without specialized hardware. This architectural decision was pivotal, since it democratized virtualization.
Within months, VMware Workstation made it possible for developers to run multiple OSes side by side on a laptop. For enterprises, it marked the start of true server consolidation: multiple workloads, isolated and portable, running efficiently on commodity hardware.
From Workstation to Data Center
The success of VMware Workstation started a wave of innovation. Enterprises quickly realized that virtualization could solve not just developer convenience, but large-scale infrastructure problems.
Virtualization improved resource utilization, reduced hardware costs, and enabled rapid provisioning. Most importantly, it introduced abstraction between workloads and hardware, a concept that would become fundamental to cloud computing.
VMware’s work soon evolved into ESX Server, a bare-metal hypervisor that ran directly on hardware, eliminating the overhead of a host OS. Other players entered the market: Xen, Microsoft Hyper-V, and open-source projects like KVM extended virtualization into new domains.
By the early 2000s, virtualization was no longer a lab curiosity, it was a production necessity.
Virtualization and the Birth of the Cloud
In 2006, Amazon Web Services launched EC2, the first large-scale commercial cloud built entirely on virtualization. Each EC2 instance was a virtual machine, dynamically provisioned from a pool of servers.
The key properties of cloud, elasticity, scalability, and multi-tenancy, all depended on virtualization. By decoupling applications from hardware, AWS could sell computing as a service.
This was the moment virtualization transcended its technical origins. It became an economic model: compute as an on-demand utility.
From VMs to Containers and Beyond
Virtual machines were transformative, but not perfect. Each VM required its own operating system, consuming significant memory and storage. Startup times were slow compared to the speed of modern software delivery.
In response, engineers turned to containers, lightweight environments that isolate applications at the OS level. Technologies like LXC and later Docker (2013) offered the benefits of virtualization, with isolation, portability, reproducibility, without the heavy footprint.
Kubernetes (2014) extended this model at scale, orchestrating thousands of containers across clusters. Interestingly, most of these container workloads still run on top of virtualized infrastructure. Virtualization remained the invisible layer of the cloud.
Lasting Lessons
The history of virtualization teaches recurring truths about computing:
Abstraction is the ultimate scaling mechanism. By separating logic from hardware, we gain flexibility, efficiency, and resilience.
Constraints inspire innovation. VMware’s biggest breakthrough came precisely because the x86 architecture was not designed for virtualization.
Old ideas resurface in new forms. The same isolation IBM introduced in the 1970s reappeared decades later in data centers and cloud environments.
Conclusion
Like the relational model and REST, virtualization was born out of necessity, to make computing more efficient, more accessible, and more adaptable. It began as a way to share expensive mainframes, reemerged to solve server sprawl, and ultimately became the foundation of the cloud.
As new paradigms emerge, edge computing, serverless architectures, confidential VMs, and the principles remain the same: isolate, abstract, and share efficiently.
Virtualization reminds us that progress in computing often comes not from adding complexity, but from rethinking boundaries.
References
Bugnion, E., Devine, S., Rosenblum, M., Sugerman, J., & Wang, E. (1999). Bringing Virtualization to the x86 Architecture with the Original VMware Workstation. VMware, Inc.
PDF linkBugnion, E., Devine, S., Govil, K., & Rosenblum, M. (1997). Disco: Running Commodity Operating Systems on Scalable Multiprocessors. Stanford University.
PDF link