IBM CP-40
The history of virtual machines begins in the laboratories of MIT, where Fernando Corbató and his team work on the Compatible Time-Sharing System. This system transforms computer usage by introducing time-sharing, but its implementation requires delicate hardware modifications. IBM, the supplier of MIT’s machines, maintains an on-site liaison office to support these technical adaptations.
In 1964, IBM unveils its new System/360 line, intended to unify enterprise computing. However, MIT customers discover with disappointment the absence of address translation capabilities in these new machines. This function seems essential to them for developing their time-sharing systems. Faced with this disappointment, IBM responds by creating the Cambridge Scientific Center under the leadership of Norm Rasmussen. The objective was to catch up in the field of time-sharing.
Robert Creasy, a veteran of the CTSS project, takes charge of the new CP-40 project. With Les Comeau, he conceives at the end of 1964 a radically different approach: simulating several independent System/360 machines on a single physical computer. This idea appeals through its conceptual simplicity. Each user has their own virtual machine, completely isolated from others. Gone are the risks of interference between programs.
Realizing this concept requires technical prowess. The CSC team modifies an IBM System/360 model 40 by grafting onto it a device called the Cambridge Address Translator. Bruce Lindquist and Rex Seeber design this mechanism around a 64-word associative memory. The challenge consists of translating addresses without slowing program execution. Mission accomplished: the translation occurs without noticeable performance loss.
The CP-40 system architecture rests on a clear separation between two components. On one side, the Control Program manages the creation and administration of virtual machines. On the other, the Cambridge Monitor System provides a simple operating environment for these virtual machines. This division of labor constitutes a remarkable architectural innovation. John Harmon leads the development of CMS with his team including Lyndalee Korn and Ron Brennan. They draw heavily on the CTSS interface to create a user-friendly system. Paradoxically, CMS is single-user and all the complexity of resource sharing falls to the Control Program.
January 1967 sees the production deployment of CP-40 and CMS. The system immediately demonstrates its ability to run OS/360 in a virtual machine. This backward compatibility would prove decisive for the technology’s future adoption. The team also discovers the pitfalls of virtual memory. The thrashing phenomenon surprises them: when paging is excessive, performance collapses abruptly.
The success of CP-40 paves the way for CP-67, adapted to the System/360 model 67 which natively integrates address translation. Dick Bayles, Dick Meyer, and Harit Nanavati lead this evolution. CP-67 brings substantial improvements such as dynamic memory management and flexibility in virtual machine configuration.
May 1968 marks the first distribution of CP-67 to eight pilot sites. In June, the system becomes available as a Type III program, a status reserved for contributions from IBM employees. The success exceeds all expectations. Former employees create two commercial companies that sell time-sharing services based on the CP/CMS platform: National CSS and Interactive Data Corporation.
The versatility of the virtual machine concept appeals to different communities. Operating system developers find in it a secure test environment. End users appreciate the coexistence of different operating systems on the same machine. Computer centers exploit this capability to facilitate their technological migrations.
August 1972 sees the birth of VM/370 as part of the System/370 Advanced Functions. The Burlington team, enriched by Dick Newson, Carl Young, and Dave Tuttle, pushes innovation further. VM/370 introduces the ability to run VM under itself, a considerable simplification for development and testing.
The separation between hardware management and system services still structures our contemporary hypervisors. The hardware interface as an isolation boundary is a central paradigm. This transparent simulation of hardware resources flourishes today in cloud computing.