fbpx
Wikipedia

CP/CMS

CP/CMS (Control Program/Cambridge Monitor System) is a discontinued time-sharing operating system of the late 1960s and early 1970s. It is known for its excellent performance and advanced features.[1][2] Among its three versions, CP-40/CMS was an important 'one-off' research system that established the CP/CMS virtual machine architecture. It was followed by CP-67/CMS, a reimplementation of CP-40/CMS for the IBM System/360-67, and the primary focus of this article. Finally, CP-370/CMS was a reimplementation of CP-67/CMS for the System/370. While it was never released as such, it became the foundation of IBM's VM/370 operating system, announced in 1972.

CP/CMS
DeveloperIBM Cambridge Scientific Center
Written inAssembler (F)
OS familyVM
Working stateHistoric
Source modelSource code (see text for details)
Initial releaseMay 1968; 55 years ago (1968-05)
Latest release3.2 / 1972; 52 years ago (1972)
Available inEnglish
PlatformsIBM System/360-67; also System/370 with virtual memory hardware (not present in original S/370 models); also used on experimental hardware
Default
user interface
Command-line interface
LicenseIBM Type-III Library (free in source code form at no charge to IBM customers, without support)

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) and CP-40 (which used full virtualization).

In addition to its role as the predecessor of the VM family, CP/CMS played an important role in the development of operating system (OS) theory, the design of IBM's System/370, the time-sharing industry, and the creation of a self-supporting user community that anticipated today's free software movement.

History edit

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.

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 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 and Bell Laboratories. 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[citation needed].
  • 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 edit

→ derivation     >> strong influence     > some influence/precedence
 CTSS 
> IBM M44/44X
>> CP-40/CMS CP[-67]/CMS  VM/370 → VM/SE versions → VM/SP versions → VM/XA versions → VM/ESAz/VM
VP/CSS
> TSS/360
> TSO for MVT → for OS/VS2 → for MVS → ... → for z/OS
>> MULTICS and most other time-sharing platforms

CP/CMS was built by IBM's Cambridge Scientific Center (CSC), a research and development lab with ties to MIT, 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 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[3] – but renamed Conversational Monitor System 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 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.)

CP/CMS as free software edit

CP/CMS was distributed in source code 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[clarification needed]. IBM provided optional source code for, e.g., OS/360, DOS/360, and several later mainstream IBM operating systems. With all these systems, some awareness of system source code was also involved in the SYSGEN process, comparable to a kernel build in modern systems also in installing a Starter Set. (Forty years later, the Hercules emulator 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 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 software 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 contributions from IBM staff members (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.

Source code distribution of other IBM operating systems may have continued for some time (e.g. OS/360, DOS/360, DOS/VSE, MVS, and even TSS/370, which all today are generally considered to be in the public domain) since they were arguably published without a copyright notice before 1978.[4][5][This quote needs a citation]} 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. This decision has been described as a form of collusion to outmaneuver the IBM political forces opposed to time-sharing[citation needed]. It is thought that it may also reflect the amount of formal and informal input from MIT and Union Carbide 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, 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 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.[6][7]) 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 edit

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 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. 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 operating systems.

IBM's decision to implement virtualization and virtual memory 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, such as VMware Workstation, Xen, and Microsoft Virtual PC.

Related terminology edit

  • 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 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 project. It was well established in CP/CMS by the time IBM introduced VM/370.
  • hypervisor: a mechanism for paravirtualization. This term was coined in IBM's reimplementation of CP-67 as VM/370.

See also edit

Footnotes edit

  1. ^ Stuart E. Madnick (1969) "Time-Sharing Systems: Virtual Machine Concept vs. Conventional Approach" (PDF). Retrieved 2012-09-13. Modern Data Systems, Vol. 2, No. 3, pp. 34-36.
  2. ^ Stuart Madnick (1976) "Virtual Machine Advantages in Security, Integrity, and Decision Support Systems" (PDF). Retrieved 2012-09-13. IBM Systems Journal, Vol. 15, No. 3.
  3. ^ Creasy, op. cit., p. 488 – "Console Monitor System"
  4. ^ cf. Hercules emulator, which is apparently used to run these historic systems without raising complaints from IBM; the systems were published by IBM as machine readable source code and as microfiche
  5. ^ public domain: "Until the Berne Convention Implementation Act of 1988, the lack of a proper copyright notice would force an otherwise copyrightable work into the public domain...."
  6. ^ Pugh et al., p. 737, note 166 – citing the C. H. Reynolds August 1965 PL/I policy statement mandating use of PL/I
  7. ^ W. R. Brittenham, The development of PL/S, IBM Technical Report (1974) – cited in Pugh

Citations edit

Primary CP/CMS sources edit

  • R. J. Creasy, "The origin of the VM/370 time-sharing system", IBM Journal of Research & Development, Vol. 25, No. 5 (September 1981), pp. 483–90, PDF
    ― perspective on CP/CMS and VM history by the CP-40 project lead, also a CTSS author
  • E.W. Pugh, L.R. Johnson, and John H. Palmer, IBM's 360 and early 370 systems, MIT Press, Cambridge MA and London, ISBN 0-262-16123-0
    ― extensive (819 pp.) treatment of IBM's offerings during this period; the limited coverage of CP/CMS in such a definitive work is telling
  • Melinda Varian, VM and the VM community, past present, and future, SHARE 89 Sessions 9059–61, 1997;
    ― an outstanding source for CP/CMS and VM history
  • Bitsavers, Index of /pdf/ibm/360/cp67

Additional CP/CMS sources edit

  • R. J. Adair, R. U. Bayles, L. W. Comeau and R. J. Creasy, A Virtual Machine System for the 360/40, IBM Corporation, Cambridge Scientific Center Report No. 320‐2007 (May 1966)
    ― a seminal paper describing implementation of the virtual machine concept, with descriptions of the customized CSC S/360-40 and the CP-40 design
  • International Business Machines Corporation, CP-67/CMS, Program 360D-05.2.005, IBM Program Information Department (June 1969)
    ― IBM's reference manual
  • R. A. Meyer and L. H. Seawright, "A virtual machine time-sharing system," IBM Systems Journal, Vol. 9, No. 3, pp. 199–218 (September 1970)
    ― describes the CP-67/CMS system, outlining features and applications
  • R. P. Parmelee, T. I. Peterson, C. C. Tillman, and D. J. Hatfield, "Virtual storage and virtual machine concepts," IBM Systems Journal, Vol. 11, No. 2 (June 1972)

Background CP/CMS sources edit

  • F. J. Corbató, et al., The Compatible Time-Sharing System, A Programmer’s Guide, M.I.T. Press, 1963
  • F. J. Corbató, M. Merwin-Daggett, and R. C. Daley, "An Experimental Time-sharing System," Proc. Spring Joint Computer Conference (AFIPS) 21, pp. 335–44 (1962) — description of CTSS
  • F. J. Corbató and V. A. Vyssotsky, "Introduction and Overview of the MULTICS System", Proc. Fall Joint Computer Conference (AFIPS) 27, pp. 185–96 (1965)
  • P. J. Denning, "Virtual Memory", Computing Surveys Vol. 2, pp. 153–89 (1970)
  • J. B. Dennis, "Segmentation and the Design of Multi-Programmed Computer Systems," JACM Vol. 12, pp. 589–602 (1965)
    ― virtual memory requirements for Project MAC, destined for GE 645
  • C. A. R. Hoare and R. H. Perrott, Eds., Operating Systems Techniques, Academic Press, Inc., New York (1972)
  • T. Kilburn, D. B. G. Edwards, M. J. Lanigan, and F. H. Sumner, "One-Level Storage System", IRE Trans. Electron. Computers EC-11, pp. 223–35 (1962)
    ― Manchester/Ferranti Atlas
  • R. A. Nelson, "Mapping Devices and the M44 Data Processing System," Research Report RC 1303, IBM Thomas J. Watson Research Center (1964)
    ― about the IBM M44/44X
  • R. P. Parmelee, T. I. Peterson, C. C. Tillman, and D. J. Hatfield, "Virtual Storage and Virtual Machine Concepts", IBM Systems Journal, Vol. 11, pp. 99–130 (1972)

Additional on-line CP/CMS resources edit

  • febcm.club.fr — Information Technology Timeline, 1964–74
  • www.multicians.org — Tom Van Vleck's short essay The IBM 360/67 and CP/CMS
  • www.cap-lore.com — Norman Hardy's Short history of IBM's virtual machines
  • www.cap-lore.com — Norman Hardy's short description of the "Blaauw Box"
Detailed citations for points made in this article can be found in History of CP/CMS.

External links edit

  • VM/CMS handbook
  • Andreas C. Hofmann: CP-370/CMS – Control Program 370 / Cambridge Monitor System, 1970, in: Computing History Dictionary (german) [¹10.12.2022]

this, article, multiple, issues, please, help, improve, discuss, these, issues, talk, page, learn, when, remove, these, template, messages, this, article, tone, style, reflect, encyclopedic, tone, used, wikipedia, wikipedia, guide, writing, better, articles, s. This article has multiple issues Please help improve it or discuss these issues on the talk page Learn how and when to remove these template messages This article s tone or style may not reflect the encyclopedic tone used on Wikipedia See Wikipedia s guide to writing better articles for suggestions April 2016 Learn how and when to remove this template message This article has an unclear citation style The references used may be made clearer with a different or consistent style of citation and footnoting April 2015 Learn how and when to remove this template message Learn how and when to remove this template message CP CMS Control Program Cambridge Monitor System is a discontinued time sharing operating system of the late 1960s and early 1970s It is known for its excellent performance and advanced features 1 2 Among its three versions CP 40 CMS was an important one off research system that established the CP CMS virtual machine architecture It was followed by CP 67 CMS a reimplementation of CP 40 CMS for the IBM System 360 67 and the primary focus of this article Finally CP 370 CMS was a reimplementation of CP 67 CMS for the System 370 While it was never released as such it became the foundation of IBM s VM 370 operating system announced in 1972 CP CMSDeveloperIBM Cambridge Scientific CenterWritten inAssembler F OS familyVMWorking stateHistoricSource modelSource code see text for details Initial releaseMay 1968 55 years ago 1968 05 Latest release3 2 1972 52 years ago 1972 Available inEnglishPlatformsIBM System 360 67 also System 370 with virtual memory hardware not present in original S 370 models also used on experimental hardwareDefaultuser interfaceCommand line interfaceLicenseIBM Type III Library free in source code form at no charge to IBM customers without support 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 and CP 40 which used full virtualization In addition to its role as the predecessor of the VM family CP CMS played an important role in the development of operating system OS theory the design of IBM s System 370 the time sharing industry and the creation of a self supporting user community that anticipated today s free software movement Contents 1 History 2 Overview 3 CP CMS as free software 4 Architecture 5 Related terminology 6 See also 7 Footnotes 8 Citations 8 1 Primary CP CMS sources 8 2 Additional CP CMS sources 8 3 Background CP CMS sources 8 4 Additional on line CP CMS resources 9 External linksHistory editMain article History of CP CMS See also IBM CP 40 Historical notes History of IBM mainframe operating systems System 360 and History of IBM 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 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 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 and Bell Laboratories 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 citation needed 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 editCP CMS family relationshipsvte derivation gt gt strong influence gt some influence precedence CTSS gt IBM M44 44X gt gt CP 40 CMS CP 67 CMS VM 370 VM SE versions VM SP versions VM XA versions VM ESA z VM VP CSS gt TSS 360 gt TSO for MVT for OS VS2 for MVS for z OS gt gt MULTICS and most other time sharing platforms CP CMS was built by IBM s Cambridge Scientific Center CSC a research and development lab with ties to MIT 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 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 3 but renamed Conversational Monitor System 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 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 CP CMS as free software editCP CMS was distributed in source code 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 clarification needed IBM provided optional source code for e g OS 360 DOS 360 and several later mainstream IBM operating systems With all these systems some awareness of system source code was also involved in the SYSGEN process comparable to a kernel build in modern systems also in installing a Starter Set Forty years later the Hercules emulator 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 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 software 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 contributions from IBM staff members 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 Source code distribution of other IBM operating systems may have continued for some time e g OS 360 DOS 360 DOS VSE MVS and even TSS 370 which all today are generally considered to be in the public domain since they were arguably published without a copyright notice before 1978 4 5 This quote needs a citation 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 This decision has been described as a form of collusion to outmaneuver the IBM political forces opposed to time sharing citation needed It is thought that it may also reflect the amount of formal and informal input from MIT and Union Carbide 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 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 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 6 7 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 editThe 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 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 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 operating systems IBM s decision to implement virtualization and virtual memory 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 such as VMware Workstation Xen and Microsoft Virtual PC Related terminology editCP 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 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 project It was well established in CP CMS by the time IBM introduced VM 370 hypervisor a mechanism for paravirtualization This term was coined in IBM s reimplementation of CP 67 as VM 370 See also editVP CSS History of IBM Time sharing system evolution CMS file systemFootnotes edit Stuart E Madnick 1969 Time Sharing Systems Virtual Machine Concept vs Conventional Approach PDF Retrieved 2012 09 13 Modern Data Systems Vol 2 No 3 pp 34 36 Stuart Madnick 1976 Virtual Machine Advantages in Security Integrity and Decision Support Systems PDF Retrieved 2012 09 13 IBM Systems Journal Vol 15 No 3 Creasy op cit p 488 Console Monitor System cf Hercules emulator which is apparently used to run these historic systems without raising complaints from IBM the systems were published by IBM as machine readable source code and as microfiche public domain Until the Berne Convention Implementation Act of 1988 the lack of a proper copyright notice would force an otherwise copyrightable work into the public domain Pugh et al p 737 note 166 citing the C H Reynolds August 1965 PL I policy statement mandating use of PL I W R Brittenham The development of PL S IBM Technical Report 1974 cited in PughCitations editPrimary CP CMS sources edit R J Creasy The origin of the VM 370 time sharing system IBM Journal of Research amp Development Vol 25 No 5 September 1981 pp 483 90 PDF perspective on CP CMS and VM history by the CP 40 project lead also a CTSS author E W Pugh L R Johnson and John H Palmer IBM s 360 and early 370 systems MIT Press Cambridge MA and London ISBN 0 262 16123 0 extensive 819 pp treatment of IBM s offerings during this period the limited coverage of CP CMS in such a definitive work is telling Melinda Varian VM and the VM community past present and future SHARE 89 Sessions 9059 61 1997 an outstanding source for CP CMS and VM history Bitsavers Index of pdf ibm 360 cp67 Additional CP CMS sources edit R J Adair R U Bayles L W Comeau and R J Creasy A Virtual Machine System for the 360 40 IBM Corporation Cambridge Scientific Center Report No 320 2007 May 1966 a seminal paper describing implementation of the virtual machine concept with descriptions of the customized CSC S 360 40 and the CP 40 design International Business Machines Corporation CP 67 CMS Program 360D 05 2 005 IBM Program Information Department June 1969 IBM s reference manual R A Meyer and L H Seawright A virtual machine time sharing system IBM Systems Journal Vol 9 No 3 pp 199 218 September 1970 describes the CP 67 CMS system outlining features and applications R P Parmelee T I Peterson C C Tillman and D J Hatfield Virtual storage and virtual machine concepts IBM Systems Journal Vol 11 No 2 June 1972 Background CP CMS sources edit F J Corbato et al The Compatible Time Sharing System A Programmer s Guide M I T Press 1963 F J Corbato M Merwin Daggett and R C Daley An Experimental Time sharing System Proc Spring Joint Computer Conference AFIPS 21 pp 335 44 1962 description of CTSS F J Corbato and V A Vyssotsky Introduction and Overview of the MULTICS System Proc Fall Joint Computer Conference AFIPS 27 pp 185 96 1965 P J Denning Virtual Memory Computing Surveys Vol 2 pp 153 89 1970 J B Dennis Segmentation and the Design of Multi Programmed Computer Systems JACM Vol 12 pp 589 602 1965 virtual memory requirements for Project MAC destined for GE 645 C A R Hoare and R H Perrott Eds Operating Systems Techniques Academic Press Inc New York 1972 T Kilburn D B G Edwards M J Lanigan and F H Sumner One Level Storage System IRE Trans Electron Computers EC 11 pp 223 35 1962 Manchester Ferranti Atlas R A Nelson Mapping Devices and the M44 Data Processing System Research Report RC 1303 IBM Thomas J Watson Research Center 1964 about the IBM M44 44X R P Parmelee T I Peterson C C Tillman and D J Hatfield Virtual Storage and Virtual Machine Concepts IBM Systems Journal Vol 11 pp 99 130 1972 Additional on line CP CMS resources edit febcm club fr Information Technology Timeline 1964 74 www multicians org Tom Van Vleck s short essay The IBM 360 67 and CP CMS www cap lore com Norman Hardy s Short history of IBM s virtual machines www cap lore com Norman Hardy s short description of the Blaauw Box Detailed citations for points made in this article can be found in History of CP CMS External links editVM CMS handbook Andreas C Hofmann CP 370 CMS Control Program 370 Cambridge Monitor System 1970 in Computing History Dictionary german 10 12 2022 Retrieved from https en wikipedia org w index php title CP CMS amp oldid 1213819928, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.