CP/CMS

CP-40 CP[-67]/CMSCMS
CP/CMS consisted of two main components: The CP/CMS virtual machine concept was an important step forward in operating system design. IBM reimplemented CP/CMS as its VM/370 product line, released in 1972 when virtual memory was added to the S/370 series. VM/370's successors (such as z/VM) remain in wide use today. (It is important to note that IBM reimplemented CP-67, as it had CP-40, and did not simply rename and repackage it. VM coexisted with CP/CMS and its successors for many years. It is thus appropriate to view CP/CMS as an independent OS, distinct from the VM family.)

IBM CP-40

CP-40CP-40/CMS
CP-40 took the bold step of full virtualization, creating fourteen virtual S/360 environments, each with a fixed virtual memory size of 256K, mapped access to disk partitions, and spooled access to unit record devices (e.g. printers). Comeau: "[Creating full virtualization] permitted simultaneous development of CP and CMS; it allowed us to measure non-virtual systems, OS and DOS, in a virtual memory environment, and it also provided a high level of integrity and security.".

Hypervisor

hypervisorsvirtual machine monitorhost machine
Full virtualization on SPARC processors proved straightforward: since its inception in the mid-1980s Sun deliberately kept the SPARC architecture clean of artifacts that would have impeded virtualization. (Compare with virtualization on x86 processors below.) HP calls its technology to host multiple OS technology on its Itanium powered systems "Integrity Virtual Machines" (Integrity VM). Itanium can run HP-UX, Linux, Windows and OpenVMS. Except for OpenVMS, to be supported in a later release, these environments are also supported as virtual servers on HP's Integrity VM platform.

IBM System/360

System/360IBM 360IBM/360
CP-67, the original virtual machine system, was also known as CP/CMS. CP/67 was developed outside the IBM mainstream at IBM's Cambridge Scientific Center, in cooperation with MIT researchers. CP/CMS eventually won wide acceptance, and led to the development of VM/370 (Virtual Machine) which had a primary interactive "sub" operating system known as VM/CMS (Conversational Monitoring System). This evolved into today's z/VM. The Model 20 offered a simplified and rarely used tape-based system called TPS (Tape Processing System), and DPS (Disk Processing System) that provided support for the 2311 disk drive.

Conversational Monitor System

CMSVM/CMSCambridge Monitor System
Full virtualization, used to create multiple independent virtual machines that each completely simulate the underlying hardware. Paravirtualization, used to provide a hypervisor interface that CMS uses to access VM services; this is implemented by the non-virtualized DIAG (diagnose) instruction.

Hardware-assisted virtualization

virtualizationaccelerateshardware assists
In computing, hardware-assisted virtualization is a platform virtualization approach that enables efficient full virtualization using help from hardware capabilities, primarily from the host processors. Full virtualization is used to simulate a complete hardware environment, or virtual machine, in which an unmodified guest operating system (using the same instruction set as the host machine) effectively executes in complete isolation. Hardware-assisted virtualization was added to x86 processors (Intel VT-x or AMD-V) in 2005 and 2006 (respectively).

Paravirtualization

paravirtualizedvirtualizationpara-virtualized
The term "paravirtualization" was first used in the research literature in association with the Denali Virtual Machine Manager. The term is also used to describe the Xen, L4, TRANGO, VMware, Wind River and XtratuM hypervisors. All these projects use or can use paravirtualization techniques to support high performance virtual machines on x86 hardware by implementing a virtual machine that does not implement the hard-to-virtualize parts of the actual x86 instruction set. A hypervisor provides the virtualization of the underlying computer system. In full virtualization, a guest operating system runs unmodified on a hypervisor.

Virtual memory

virtual storagememoryswap
By 1969, the debate over virtual memory for commercial computers was over; an IBM research team led by David Sayre showed that their virtual memory overlay system consistently worked better than the best manually controlled systems. Throughout the 1970s, the IBM 370 series running their virtual-storage based operating systems provided a means for business users to migrate multiple older systems into fewer, more powerful, mainframes that had improved price/performance. The first minicomputer to introduce virtual memory was the Norwegian NORD-1; during the 1970s, other minicomputers implemented virtual memory, notably VAX models running VMS.

Hardware virtualization

virtualizationplatform virtualizationguest operating system
This issue can be addressed by appropriate installation techniques for temporal isolation among virtual machines. There are several approaches to platform virtualization. Examples of virtualization scenarios: In full virtualization, the virtual machine simulates enough hardware to allow an unmodified "guest" OS designed for the same instruction set to be run in isolation. This approach was pioneered in 1966 with the IBM CP-40 and CP-67, predecessors of the VM family. In hardware-assisted virtualization, the hardware provides architectural support that facilitates building a virtual machine monitor and allows guest OSes to be run in isolation.

PR/SM

Processor Resource/System Manager
In mainframe computing PR/SM (Processor Resource/System Manager) is a type-1 Hypervisor (a virtual machine monitor) that allows multiple logical partitions to share physical resources such as CPUs, I/O channels and LAN interfaces; when sharing channels, the LPARs can share I/O devices such as direct access storage devices (DASD). PR/SM is integrated with all IBM System z machines. Similar facilities exist on the i and p versions of IBM Power Systems. IBM introduced PR/SM in 1988 with the IBM 3090 processors. IBM developed the concept of hypervisors in their CP-40 and CP-67, and in 1972 provided it for the S/370 as Virtual Machine Facility/370.

System virtual machine

In addition to CMS communication and other system tasks are performed by multitasking VMs (RSCS, GCS, TCP/IP, UNIX), and users can run any of the other IBM operating systems, such as MVS, even a new CP itself or now z/OS. Even the simple CMS could be run in a threaded environment (LISTSERV, TRICKLE). z/VM 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 on IBM Z to run Web servers, where Linux runs as the operating system within many virtual machines.

IBM M44/44X

M44/44X
Unlike CP-40 and later CP/CMS control programs, M44/44X did not implement a complete simulation of the underlying hardware (i.e. full virtualization). CP-40 project leader Robert Creasy observed: The M44/44X "was about as much of a virtual machine system as CTSS – which is to say that it was close enough to a virtual machine system to show that 'close enough' did not count. I never heard a more eloquent argument for virtual machines than from Dave Sayre."

Logical partition

LPARlogical partitioningLogical partition (virtual computing platform)
VM (operating system). Full virtualization. Dynamic Logical Partitioning (DLPAR). Workload Partitions (WPAR). HiperSocket, Hypervisor. Virtualization. PowerVM. Fujitsu XPAR. Sun Solaris Containers. Sun LDOM. Security on the Mainframe, December 2009, by Karan Singh, Chapter 4. Virtualization, page 24 and page 83. System i and System p: Logical Partitioning Guide. IBM System p Virtualization — The most complete virtualization offering for UNIX and Linux. Hitachi Compute Blade LPARs. Fujitsu XPARs (SPARC) and "Flexible I/O and Partitioning" (x86_64).

Comparison of platform virtualization software

Comparison of platform virtual machineshardware levelplatform hypervisors
OS-level virtualization is described as "native" speed, however some groups have found overhead as high as 3% for some operations, but generally figures come under 1%, so long as secondary effects do not appear. See for a paper comparing performance of paravirtualization approaches (e.g. Xen) with OS-level virtualization. Requires patches/recompiling. Exceptional for lightweight, paravirtualized, single-user VM/CMS interactive shell: largest customers run several thousand users on even single prior models.

IBM System/360 Model 67

IBM System/360-67System/360 Model 67Model 67
Virtual memory support was added to MTS in October 1967. Multi-processor support for a duplex S/360-67 was added in October 1968. CP/CMS was the first virtual machine operating system. Developed at IBM's Cambridge Scientific Center (CSC) near MIT. CP/CMS was essentially an unsupported research system, built away from IBM's mainstream product organizations, with active involvement of outside researchers. Over time it evolved into a fully supported IBM operating system (VM/370 and today's z/VM). VP/CSS was developed by National CSS to provide commercial time-sharing services. It was based upon CP/CMS. E.W. Pugh, L.R. Johnson, and John H.

Kernel (operating system)

kerneloperating system kernelkernels
In the 1970s, IBM further abstracted the supervisor state from the hardware, resulting in a hypervisor that enabled full virtualization, i.e. the capacity to run multiple operating systems on the same machine totally independently from each other. Hence the first such system was called Virtual Machine or VM. Although Mach, developed at Carnegie Mellon University from 1985 to 1994, is the best-known general-purpose microkernel, other microkernels have been developed with more specific aims. The L4 microkernel family (mainly the L3 and the L4 kernel) was created to demonstrate that microkernels are not necessarily slow.

Timeline of virtualization development

Comparison of platform virtualization software. Comparison of application virtual machines. Emulator. Hypervisor. IBM SAN Volume Controller. Operating system-level virtualization. Physical-to-Virtual. Virtual machine monitor. Virtual tape library. X86 virtualization. Application Virtualization: Streamlining Distribution August 31, 2006—By James Drews. Windows Virtualization from Microsoft. Virtualization Overview from VMware. An introduction to Virtualization. Weblog post on the how virtualization can be used to implement Mandatory Access Control. The Effect of Virtualization on OS Interference in PDF format. VM/360 history. VM/360 history. .

VP/CSS

A control program (called CP in CP/CMS, VP in VP/CSS) created multiple independent virtual machines (VMs), implementing a full virtualization of the underlying hardware – meaning that each time-sharing user was provided with a private virtual machine. Each appeared to be an entire, stand-alone computer, capable of running any software that could run on the bare machine, including other operating systems. (This concept was pioneered with IBM's research system CP-40 in the first version of CP/CMS.) This design was a departure from IBM's other monolithic operating systems.

Popek and Goldberg virtualization requirements

Popek and Goldbergcritical operationsPopek and Goldberg requirements
System virtual machines are capable of virtualizing a full set of hardware resources, including a processor (or processors), memory and storage resources and peripheral devices. A virtual machine monitor (VMM, also called hypervisor) is the piece of software that provides the abstraction of a virtual machine. There are three properties of interest when analyzing the environment created by a VMM: In the terminology of Popek and Goldberg, a VMM must present all three properties.

CP-67

CP-67 was the control program portion of CP/CMS, a virtual machine operating system developed for the IBM System/360-67 by IBM's Cambridge Scientific Center. It was a reimplementation of their earlier research system CP-40, which ran on a one-off customized S/360-40. CP-67 was later reimplemented (again) as CP-370, which IBM released as VM/370 in 1972, when virtual memory was added to the System/370 series. Details on the development and circumstances of CP-67 can be found in the article History of CP/CMS.

OS-level virtualization

operating-system-level virtualizationcontainersoperating system-level virtualization
Operating-system-level virtualization implementations capable of live migration can also be used for dynamic load balancing of containers between nodes in a cluster. Operating-system-level virtualization usually imposes less overhead than full virtualization because programs in OS-level virtual partitions use the operating system's normal system call interface and do not need to be subjected to emulation or be run in an intermediate virtual machine, as is the case with full virtualization (such as VMware ESXi, QEMU or Hyper-V) and paravirtualization (such as Xen or User-mode Linux). This form of virtualization also does not require hardware support for efficient performance.

History of CP/CMS

time-sharing operating systems
Sayre, On Virtual Systems, IBM Thomas J. Watson Research Center (April 15, 1966) ― An early virtual machine paper, describing multiprogramming with the IBM M44/44X, an experimental paging system.

Operating system

operating systemsOScomputer operating system
In an OS, distributed and cloud computing context, templating refers to creating a single virtual machine image as a guest operating system, then saving it as a tool for multiple running virtual machines. The technique is used both in virtualization and cloud computing management, and is common in large server warehouses. Embedded operating systems are designed to be used in embedded computer systems. They are designed to operate on small machines like PDAs with less autonomy. They are able to operate with a limited number of resources. They are very compact and extremely efficient by design. Windows CE and Minix 3 are some examples of embedded operating systems.

Emulator

emulationemulatedemulate
Hardware-assisted virtualization. Virtual machine. Repertory of emulators and their respective histories (archived; site closed in 2010 due to copyright issues).

IBM System/370

System/370S/370IBM/370
Release 2, termed MVS (Multiple Virtual Storage) and planned to be available 20 months later (at the end of March 1974), and VM/370 – the re-implemented CP/CMS.