CP/CMS
   HOME

TheInfoList



OR:

CP/CMS (Control Program/Cambridge Monitor System) is a discontinued
time-sharing In computing, time-sharing is the sharing of a computing resource among many users at the same time by means of multiprogramming and multi-tasking.DEC Timesharing (1965), by Peter Clark, The DEC Professional, Volume 1, Number 1 Its emergence ...
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
of the late 1960s and early 1970s, known for its excellent performance and advanced features. It had three distinct versions: * CP-40/CMS, an important "one-off" research system that established the CP/CMS
virtual machine In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized h ...
architecture *
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 on ...
/CMS, a reimplementation of CP-40/CMS for the IBM System/360-67, and the primary focus of this article *
CP-370 VM (often: VM/CMS) is a family of IBM virtual machine operating systems used on IBM mainframes System/370, System/390, zSeries, System z and compatible systems, including the Hercules emulator for personal computers. The following versions ...
/CMS, a reimplementation of CP-67/CMS for the
System/370 The IBM System/370 (S/370) is a model range of IBM mainframe computers announced on June 30, 1970, as the successors to the System/360 family. The series mostly maintains backward compatibility with the S/360, allowing an easy migration path ...
– never released as such, but became the foundation of IBM's VM/370 operating system, announced in 1972. Each implementation was a substantial redesign of its predecessor and an evolutionary step forward. CP-67/CMS was the first widely available virtual machine architecture. IBM pioneered this idea with its research systems M44/44X (which used
partial virtualization Hardware virtualization is the virtualization of computers as complete hardware platforms, certain logical abstractions of their componentry, or only the functionality required to run various operating systems. Virtualization hides the physica ...
) and CP-40 (which used
full virtualization In computer science, virtualization is a modern technique developed in late 1990s and is different from simulation and emulation. Virtualization employs techniques used to create instances of an environment, as opposed to simulation, which model ...
). In addition to its role as the predecessor of the VM family, CP/CMS played an important role in the development of
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
(OS) theory, the design of IBM's System/370, the
time-sharing In computing, time-sharing is the sharing of a computing resource among many users at the same time by means of multiprogramming and multi-tasking.DEC Timesharing (1965), by Peter Clark, The DEC Professional, Volume 1, Number 1 Its emergence ...
industry, and the creation of a self-supporting user community that anticipated today's
free software movement The free software movement is a social movement with the goal of obtaining and guaranteeing certain freedoms for software users, namely the freedoms to run the software, to study the software, to modify the software, and to share copies of the s ...
.


History

Fundamental CP/CMS architectural and strategic parameters were established in CP-40, which began production use at IBM's Cambridge Scientific Center in early 1967. This effort occurred in a complex political and technical ''milieu'', discussed at some length and supported by first-hand quotes in the Wikipedia article
History of CP/CMS This article covers the History of CP/CMS — the historical context in which the IBM time-sharing virtual machine operating system was built. CP/CMS development occurred in a complex political and technical ''milieu''. Historical notes, below, ...
. In a nutshell: * In the early 1960s, IBM sought to maintain dominance over scientific computing, where time-sharing efforts such as CTSS and MIT's
Project MAC Computer Science and Artificial Intelligence Laboratory (CSAIL) is a research institute at the Massachusetts Institute of Technology (MIT) formed by the 2003 merger of the Laboratory for Computer Science (LCS) and the Artificial Intelligence Lab ...
gained focus. But IBM had committed to a huge project, the System/360, which took the company in a different direction. * The time-sharing community was disappointed with the S/360's lack of time-sharing capabilities. This led to key IBM sales losses at
Project MAC Computer Science and Artificial Intelligence Laboratory (CSAIL) is a research institute at the Massachusetts Institute of Technology (MIT) formed by the 2003 merger of the Laboratory for Computer Science (LCS) and the Artificial Intelligence Lab ...
and
Bell Laboratories Nokia Bell Labs, originally named Bell Telephone Laboratories (1925–1984), then AT&T Bell Laboratories (1984–1996) and Bell Labs Innovations (1996–2007), is an American industrial research and scientific development company owned by mult ...
. IBM's Cambridge Scientific Center (CSC), originally established to support Project MAC, began an effort to regain IBM's credibility in time-sharing, by building a time-sharing operating system for the S/360. This system would eventually become CP/CMS. In the same spirit, IBM designed and released a S/360 model with time-sharing features, the IBM System/360-67, and a time-sharing operating system, TSS/360. TSS failed; but the 360-67 and CP/CMS succeeded, despite internal political battles over time-sharing, and concerted efforts at IBM to scrap the CP/CMS effort. * In 1967, CP/CMS production use began, first on CSC's CP-40, then later on CP-67 at Lincoln Laboratories and other sites. It was made available via the IBM Type-III Library in 1968. By 1972, CP/CMS had gone through several releases; it was a robust, stable system running on 44 systems; it could support 60 timesharing users on a S/360-67; and at least two commercial timesharing vendors ( National CSS and IDC) were reselling S/360-67 time using CP/CMS technology. * In 1972, IBM announced the addition of virtual memory to the S/370 series, along with the VM/370 operating system, a reimplementation of CP/CMS for the S/370. This marked the end of CP/CMS releases, although the system continued its independent existence for some time. VM releases continued to include source code for some time and members of the VM community long remained active contributors.


Overview

CP/CMS was built by IBM's
Cambridge Scientific Center The IBM Cambridge Scientific Center was a company research laboratory established in February 1964 in Cambridge, Massachusetts. Situated at 545 Technology Square (''Tech Square''), in the same building as MIT's Project MAC, it was later renamed ...
(CSC), a research and development lab with ties to
MIT The Massachusetts Institute of Technology (MIT) is a private land-grant research university in Cambridge, Massachusetts. Established in 1861, MIT has played a key role in the development of modern technology and science, and is one of the m ...
, under the leadership of Robert Creasy. The system's goals, development process, release, and legacy of breakthrough technology, set this system apart from other operating systems of its day and from other large IBM projects. It was an open-source system, made available in source code form to all IBM customers at no charge – as part of the unsupported IBM Type-III Library. CP/CMS users supported themselves and each other. Unusual circumstances, described in the
History History (derived ) is the systematic study and the documentation of the human activity. The time period of event before the invention of writing systems is considered prehistory. "History" is an umbrella term comprising past events as well ...
section below, led to this situation. CP/CMS consisted of two main components: * CP, the ''Control Program'', created the virtual machine environment. The widely used version was CP-67, ran on the S/360-67. (The research system CP-40 established the architecture. A third version, CP-370, became VM/370.) Instead of explicitly dividing up memory and other resources among users, which had been the traditional approach, CP provided each user with a simulated stand-alone System/360 computer. Each system was able to run any S/360 software that ran on the bare machine and in effect gave each user a private computer system. * CMS, the ''Cambridge Monitor System'' (and also ''Console Monitor System'' – but renamed
Conversational Monitor System The Conversational Monitor System (CMS – originally: "Cambridge Monitor System") is a simple interactive computing, interactive single-user operating system. CMS was originally developed as part of IBM's CP/CMS operating system, which went ...
in VM) was a lightweight single-user operating system, for interactive time-sharing use. By running many copies of CMS in CP's virtual machines – instead of multiple copies of large, traditional multi-tasking OS – the overhead per user was less. This allowed a great number of simultaneous users to share a single S/360. The CP/CMS virtual machine concept was an important step forward in operating system design. * By isolating users from each other, CP/CMS greatly improved system reliability and security. * By simulating a full, stand-alone computer for each user, CP/CMS could run ''any'' S/360 software in a time-sharing environment, not just applications specifically designed for time-sharing. * By using lightweight CMS as the primary user interface, CP/CMS achieved unprecedented time-sharing performance. In addition, the simplicity of CMS made it easier to implement user interface enhancements than in traditional OS. IBM reimplemented CP/CMS as its VM/370 product line, released in 1972 when
virtual memory In computing, virtual memory, or virtual storage is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a very ...
was added to the
S/370 The IBM System/370 (S/370) is a model range of IBM mainframe computers announced on June 30, 1970, as the successors to the System/360 family. The series mostly maintains backward compatibility with the S/360, allowing an easy migration path f ...
series. VM/370's successors (such as
z/VM z/VM is the current version in IBM's VM family of virtual machine operating systems. z/VM was first released in October 2000 and remains in active use and development . It is directly based on technology and concepts dating back to the 1960s, wi ...
) 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.)


CP/CMS as free software

CP/CMS was distributed in
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the w ...
form, and many CP/CMS users were actively involved in studying and modifying that source code. Such direct user involvement with a vendor-supplied operating system was unusual. In the CP/CMS era, many vendors distributed operating systems in machine-readable source code. IBM provided optional source code for, e.g.,
OS/360 OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB ...
, DOS/360, several later mainstream IBM operating systems. With all these systems, some awareness of system source code was also involved in the
SYSGEN CONFIG.SYS is the primary configuration file for the DOS and OS/2 operating systems. It is a special ASCII text file that contains user-accessible setup or configuration directives evaluated by the operating system's DOS BIOS (typically residing ...
process, comparable to a kernel build in modern systems also in installing a Starter Set. (Forty years later, the
Hercules emulator Hercules is a computer emulator allowing software written for IBM mainframe computers (System/370, System/390, and zSeries/System z) and for plug compatible mainframes (such as Amdahl machines) to run on other types of computer hardware, not ...
can be used to run fossilized versions of these systems, based on source code that is now treated as part of the
public domain The public domain (PD) consists of all the creative work to which no exclusive intellectual property rights apply. Those rights may have expired, been forfeited, expressly waived, or may be inapplicable. Because those rights have expired, ...
.) The importance of operating system source code has changed over time. Before IBM unbundled software from hardware in 1969, the OS (and most other software) was included in the cost of the hardware. Each vendor had complete responsibility for the entire system, hardware and software. This made the distribution medium relatively unimportant. After IBM's unbundling, OS software was delivered as IBM System Control Program (SCP) software, eventually in object code only (OCO) form. For complicated reasons, CP/CMS was not released in the normal way. It was not supported by IBM, but was made part of the unsupported IBM Type-III Library, a collection of software contributed by IBM personnel (similarly software contributed by customers formed the Type-IV Library). IBM distributed this library to its customers for use 'as is'. The lack of direct IBM support for such products forced active users to support themselves and encouraged modifications and mutual support. CP/CMS and other Type-III products were early forms of
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
. Source code distribution of other IBM operating systems may have continued for some time (e.g.
OS/360 OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB ...
, DOS/360, DOS/VSE, MVS, and even TSS/370, which all today are generally considered to be in the
public domain The public domain (PD) consists of all the creative work to which no exclusive intellectual property rights apply. Those rights may have expired, been forfeited, expressly waived, or may be inapplicable. Because those rights have expired, ...
) since they were arguably published without a copyright notice before 1978.} However, the unsupported status of CP/CMS placed different pressures on its user community and created the need for source code distribution. CP/CMS was contributed to the Type-III Library by MIT's Lincoln Laboratory and ''not'' by IBM, despite the fact that the system was built by IBM's
Cambridge Scientific Center The IBM Cambridge Scientific Center was a company research laboratory established in February 1964 in Cambridge, Massachusetts. Situated at 545 Technology Square (''Tech Square''), in the same building as MIT's Project MAC, it was later renamed ...
. This decision has been described as a form of collusion to outmaneuver the IBM political forces opposed to time-sharing. It is thought that it may also reflect the amount of formal and informal input from MIT and
Union Carbide Union Carbide Corporation is an American chemical corporation wholly owned subsidiary (since February 6, 2001) by Dow Chemical Company. Union Carbide produces chemicals and polymers that undergo one or more further conversions by customers befo ...
that contributed to the design and implementation of CP-40, the S/360-67, CP-67, and CMS. See History of CP/CMS (historical notes) for further insights and references on this topic. Many CP/CMS users made extensive modifications to their own copies of the source code. Much of this work was shared among sites, and important changes found their way back into the core system. Other users, such as National CSS and some academic sites, continued independent development of CP/CMS, rather than switching to VM/370 when it became available. These efforts diverged from the community, in what today would be termed a software fork. After IBM released VM/370, source code distribution of VM continued for several releases. (The VM project did not adopt the use of
PL/S PL/S, short for Programming Language/Systems, is a "machine-oriented" programming language based on PL/I. It was developed by IBM in the late 1960s, under the name Basic Systems Language (BSL), as a replacement for assembly language on internal ...
, an internal systems programming language mandated for use within IBM on many comparable projects. The use of PL/S would have made source code distribution impossible. IBM attempted to turn away from assembly language to higher level languages as early as 1965, and was making substantial use of
PL/S PL/S, short for Programming Language/Systems, is a "machine-oriented" programming language based on PL/I. It was developed by IBM in the late 1960s, under the name Basic Systems Language (BSL), as a replacement for assembly language on internal ...
by 1969, e.g. in MVS. PL/S was considered a trade secret at the time and was not available to customers. IBM apparently made exceptions to this policy much later.W. R. Brittenham, ''The development of PL/S'', IBM Technical Report (1974) – cited in Pugh) The VM user community continued to make important contributions to the software, as it had during the CP/CMS Type-III period. Few OS or DOS sites exhibited active user involvement in deep operating system internals, but this was found at many VM sites. This reverse support helped CP/CMS concepts survive and evolve, despite VM's second class citizen status at IBM.


Architecture

The CP/CMS architecture was revolutionary for its time. The system consisted of a virtualizing control program (CP) which created multiple independent virtual machines (VMs).
Platform virtualization Hardware virtualization is the virtualization of computers as complete hardware platforms, certain logical abstractions of their componentry, or only the functionality required to run various operating systems. Virtualization hides the physica ...
was possible because of two elements of the IBM System/360-67: * Segregation of privileged "supervisor state" instructions from normal "problem state" instructions * Address translation hardware When a program was running in "problem state," using a privileged instruction or an invalid memory address would cause the hardware to raise an exception condition. By trapping these conditions, CP could simulate the appropriate behavior, e.g. performing I/O or paging operations. A guest operating system, which would run in "supervisor state" on a bare machine, was run in "problem state" under CP. The result was a fully virtualized environment. Each virtual machine had its own set of virtual devices, mapped from the system's real hardware environment. Thus a given dial-up teletype was presented to its VM instance as its ''virtual console''. Note that, in CP-67, certain model-dependent and diagnostic instructions were not virtualized, notably the DIAG instruction. Ultimately, in later development at IBM and elsewhere, DIAG instructions were used to create a non-virtualized interface, to what became called a
hypervisor A hypervisor (also known as a virtual machine monitor, VMM, or virtualizer) is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called ...
. Client operating systems could use this mechanism to communicate directly with the control program; this offered dramatic performance improvements. Any S/360 operating system could in fact be run under CP, but normal users ran Cambridge Monitor System (CMS), a simple, single-user operating system. CMS allowed users to run programs and manage their virtual devices. CP-67 versions 1 and 2 did not support virtual memory inside a virtual machine. This was added in version 3. At that point, testing and development of CP itself could be done by running a full copy of CP/CMS inside a single virtual machine. Some CP/CMS operating system work, such as CP-370 development and MVS testing, ran four- or five-level deep stacks of hardware and OS simulations. The CP/CMS design is different from IBM's previous monolithic operating systems, it separates complex "big system" (dispatching, hardware management, mass storage) from "little system" (application program execution, file I/O, console input/output). The re-categorization of both systems into their own entities prevents a bug in one users' system from affecting both. This is a model feature in
microkernel In computer science, a microkernel (often abbreviated as μ-kernel) is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, ...
operating systems. IBM's decision to implement
virtualization In computing, virtualization or virtualisation (sometimes abbreviated v12n, a numeronym) is the act of creating a virtual (rather than actual) version of something at the same abstraction level, including virtual computer hardware platforms, stor ...
and
virtual memory In computing, virtual memory, or virtual storage is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a very ...
features in the subsequent S/370 design (although missing from the initial S/370 series) reflects, at least in part, the success of the CP/CMS approach. In turn the survival and success of IBM's VM operating system family, and of virtualization technology in general, owe much to the S/360-67. In many respects, IBM's CP-67 and CP/CMS products anticipated (and heavily influenced) contemporary
virtualization software In computing, virtualization or virtualisation (sometimes abbreviated v12n, a numeronym) is the act of creating a virtual (rather than actual) version of something at the same abstraction level, including virtual computer hardware platforms, stor ...
, such as
VMware VMware, Inc. is an American cloud computing and virtualization technology company with headquarters in Palo Alto, California. VMware was the first commercially successful company to virtualize the x86 architecture. VMware's desktop software ru ...
Workstation, Xen, and
Microsoft Virtual PC Windows Virtual PC (successor to Microsoft Virtual PC 2007, Microsoft Virtual PC 2004, and Connectix Virtual PC) is a virtualization program for Microsoft Windows. In July 2006, Microsoft released the Windows version free of charge. In August ...
.


Related terminology

*CP: ''Control Program''. CP-40 and CP-67 were implementations for CSC's customized S/360-40 and the standard S/360-67, respectively. *CMS: ''Cambridge Monitor System''. This portion of the CP/CMS system was renamed
Conversational Monitor System The Conversational Monitor System (CMS – originally: "Cambridge Monitor System") is a simple interactive computing, interactive single-user operating system. CMS was originally developed as part of IBM's CP/CMS operating system, which went ...
when IBM released VM/370. Unlike the CP-to-VM transition, however, which was a reimplementation, much of CMS was moved without modification from CP/CMS into VM/370. *VM: ''Virtual Machine'', initially the term ''pseudo-machine'' was used, but soon ''virtual machine'' was borrowed from the
IBM M44/44X The IBM M44/44X was an experimental computer system from the mid-1960s, designed and operated at IBM's Thomas J. Watson Research Center at Yorktown Heights, New York. It was based on an IBM 7044 (the 'M44'), and simulated multiple 7044 virtual mach ...
project. It was well established in CP/CMS by the time IBM introduced VM/370. *hypervisor: a mechanism for
paravirtualization In computing, paravirtualization or para-virtualization is a virtualization technique that presents a software interface to the virtual machines which is similar, yet not identical, to the underlying hardware–software interface. The intent o ...
. This term was coined in IBM's reimplementation of CP-67 as VM/370.


See also

* VP/CSS *
History of IBM International Business Machines (IBM), nicknamed "Big Blue", is a multinational computer technology and IT consulting corporation headquartered in Armonk, New York, United States. IBM originated from the unification of several companies that w ...
* Time-sharing system evolution *
CMS file system The CMS file system is the native file system of IBM's Conversational Monitor System (CMS), a component of VM . It was the only file system for CMS until the introduction of the CMS Shared File System with VM/SP. Minidisks CP-67 and VM allow a ...


Footnotes


Citations

:''Detailed citations for points made in this article can be found in
History of CP/CMS This article covers the History of CP/CMS — the historical context in which the IBM time-sharing virtual machine operating system was built. CP/CMS development occurred in a complex political and technical ''milieu''. Historical notes, below, ...
.''


External links


VM/CMS handbook
* Andreas C. Hofmann
CP-370/CMS – Control Program 370 / Cambridge Monitor System, 1970
in: Computing History Dictionary (german) ¹10.12.2022 {{DEFAULTSORT:Cp Cms History of software IBM mainframe operating systems Time-sharing operating systems Virtualization software VM (operating system) 1960s software