History of CP/CMS
| Company type | Division of IBM |
|---|---|
| Industry | Computer software, Computer hardware |
| Founded | 1964 |
| Founder | Norm Rasmussen |
| Headquarters | Cambridge, Massachusetts , United States |
Key people | Norm Rasmussen, Robert Creasy |
| Products | CP-40, CP-67, CP/CMS, VM/370 |
| Parent | IBM |
This article explores the Origins of CP/CMS—detailing the developmental background of IBM’s time-sharing virtual machine operating system.
The evolution of CP/CMS took place amid a multifaceted technical and political landscape.
Historical notes, presented below, feature excerpts and references drawn from original documents.
Early 1960s: CTSS, Initial Time-Sharing, and Project MAC
The pioneering time-sharing system, known as the CTSS, was first showcased at MIT in 1961 and remained operational from 1964 through 1974. CTSS served as a foundational platform influencing systems such as Multics, CP/CMS, and later time-sharing developments. The concept of time-sharing arose in the late 1950s to address scientific computing needs, transitioning away from batch processing—which executed jobs sequentially using punch cards—to an interactive model providing immediate feedback.
Due to rapid adoption by scientific users, IBM was motivated to improve time-sharing technologies. At MIT, researchers spearheaded this initiative through Project MAC, which aimed to create cutting-edge time-sharing systems culminating in Multics—a sophisticated platform that later inspired UNIX. This group established rigorous technical specifications and sought appropriate hardware solutions. Early time-sharing often depended on novel languages like Dartmouth BASIC, accessible through interpreters or constrained environments; however, Project MAC pursued a shared, unrestricted general-purpose computing environment.
IBM submitted a bid for Project MAC but was unexpectedly bypassed in favor of General Electric as the Multics hardware provider. This decision played a direct role in motivating the development of CP/CMS.
IBM and the System/360
During the early 1960s, IBM faced significant challenges due to inconsistencies across its product lineup. Each new machine featured distinct processor designs, memory configurations, and instruction sets, compelling customers to adapt continuously and rewrite software. This lack of compatibility impeded hardware sales because of the high costs associated with software migration.
IBM responded by launching the System/360 initiative—a bold effort to unify its varied product range—including the IBM 7000 series, the canceled 8000 series, and IBM 1130—under a single architectural framework. The System/360 covered an extensive spectrum of processing capabilities, memory capacities, and price points while offering backward compatibility, enabling clients to upgrade without altering existing software. This strategy transformed the industry by standardizing processor architectures, instruction sets, I/O interfaces, and operating systems across different models, facilitating scalable system deployment. IBM primarily targeted large enterprises engaged in administrative and business data processing.
Although initially underestimated, the System/360 project became one of the most ambitious engineering undertakings ever attempted. Despite its eventual success in securing IBM’s market leadership, it nearly imperiled the company due to its complexity and managerial difficulties extensively analyzed by experts such as Fred Brooks.
At this time, Project MAC sought computers equipped with advanced time-sharing features essential for emerging interactive computing environments; however, System/360 emphasized batch processing aligned with IBM’s main customer base. Concepts like virtual memory were still experimental—for instance, challenges with the Manchester/Ferranti Atlas virtual memory system were not fully grasped then. As a result, when IBM introduced System/360 in 1964, it lacked virtual memory capabilities critical for time-sharing proponents, disappointing Project MAC researchers despite their protests.
In February 1964, IBM founded the Cambridge Scientific Center (CSC), under Norm Rasmussen’s leadership, to collaborate closely with MIT scientists and retain a leading role in scientific computing and time-sharing innovation. CSC submitted IBM’s proposal for Project MAC but lost out to GE’s modified 600-series computer (later known as the GE 645), which incorporated virtual memory hardware better suited for time-sharing demands. MIT dismissed IBM’s customized System/360 version featuring the "Blaauw Box" virtual memory device as overly specialized; they favored hardware that was broadly accessible. Similarly, Bell Laboratories selected GE over IBM for comparable reasons.
1964–67: CP-40, S/360-67, and TSS
The loss of Project MAC represented a significant challenge for CSC, compelling the company to redefine its mission. Rasmussen remained dedicated to advancing time-sharing technology and sought to restore MIT’s confidence by developing a time-sharing operating system tailored for the S/360. Robert Creasy departed from Project MAC to lead CSC’s effort on CP-40, the pioneering virtual machine OS that utilized fully virtualized hardware.
Following IBM’s failure to secure Project MAC and Bell Laboratories, internal restructuring took place:
- IBM established a corporate task force, incorporating CSC personnel, to tackle customer requirements for time-sharing. This initiative produced the IBM System/360-67, announced in 1965 and released in 1966, alongside plans for the new time-sharing OS, TSS/360, targeted for 1967.
- Development and manufacturing units within IBM were reorganized to address previous shortcomings and rebuild trust.
CSC won a contract with MIT’s Lincoln Laboratory for an S/360-67, which enhanced IBM’s reputation at MIT by committing to a genuine time-sharing product rather than an ad hoc RPQ solution. Concurrently, CSC advanced CP-40 development both as research and as insurance against possible TSS delays. Because the S/360-67 hardware was not yet available, CSC implemented custom hardware and microcode adaptations on an S/360-40 to support CP-40’s virtual machine design. CP-40 reached production status in January 1967.
Due to setbacks and technical challenges with TSS, CSC grew increasingly confident that the CP/CMS architecture was superior for implementing time-sharing on the S/360.
1967–68: CP-67
In September 1966, CSC initiated the porting of CP-40 and CMS to operate on the S/360-67. The resulting CP-67 greatly expanded on CP-40’s architecture by enabling more virtual machines with larger memory capacities, dynamic control block allocation, reentrant code, and enhanced modularity. While awaiting delivery of the S/360-67 hardware, CSC continued refining microcode modifications on their customized S/360-40 to emulate its virtual memory capabilities. Such simulation techniques were repeatedly employed by CSC to overcome hardware availability constraints during development.
Initial testing of CP-67 at IBM’s Yorktown Heights facility and MIT’s Lincoln Laboratory garnered positive reactions from users frustrated with TSS’s shortcomings. Lincoln Labs requested IBM distribute copies of CP/CMS—a decision that "shook the entire company" given IBM’s substantial investment in TSS. IBM acquiesced due to Lincoln Lab’s strategic importance; some believe Rasmussen orchestrated this move to secure funding for CP/CMS despite directives calling for its termination.
By April 1967—several months after CP-40 entered production—CP/CMS was in daily operational use at Lincoln Labs, where close collaboration with CSC began driving system improvements. Around this period, major client Union Carbide adopted CP/CMS and contributed both personnel and development resources.
CP-40, CP-67, and CMS were experimental systems developed outside IBM’s core product divisions with active participation from external partners. Project leader Robert Creasy characterized CP/CMS as a research-oriented platform created without rigid schedules or efficiency mandates, focusing instead on innovation and exploration.
Meanwhile, TSS encountered persistent stability and performance issues stemming from its rushed deployment. By SHARE 30 in February 1968, eighteen sites running S/360-67 operated TSS; however, IBM issued a "blue letter" announcing withdrawal of support—a severe setback for the time-sharing community. Although this decision was temporarily reversed until 1971, TSS’s decline ultimately cleared the path for CP/CMS as a practical alternative.
1968–72: CP/CMS Versions and Releases
- In May 1968, CP/CMS Version 1 was introduced to eight installations and subsequently included in the IBM Type-III Library by June. Two time-sharing enterprises, National CSS and IDC, began operations by reselling CP/CMS, showcasing the commercial viability of CP/CMS, the S/360-67, and virtual memory technology.
- By April 1969, CP/CMS had been deployed at fifteen locations.
- Version 2 of CP/CMS became available in June 1969.
- November 1971 saw the release of Version 3.1, which supported sixty CMS users on a -67 system, highlighting significant scalability achievements.
- Early in 1972, a maintenance update, Version 3.2, was issued. CP-67 was operational on 44 processors, with approximately one-quarter installed within IBM facilities.
During the S/360-67 period, IBM typically bundled software at no additional charge with hardware purchases; however, CP/CMS was distributed as unsupported Type-III software in source code form. This meant users ran an unsupported operating system. This distribution model encouraged vibrant user communities around both the S/360-67 and CP/CMS, laying groundwork for what would evolve into the contemporary open source approach.
In mid-1970, development commenced on a System/370 adaptation of CP/CMS—later named VM/370. The CP-370 allowed simulation of S/370 environments on existing S/360-67 hardware, expediting S/370's development and testing before its physical machines were available. This breakthrough addressed prototype shortages that had been delaying MVS development, earned accolades for the development team, and ensured the project's continuation despite cancellation risks.
August 1972 marked a significant shift with IBM’s "System/370 Advanced Function" announcement introducing the S/370-158 and -168 models equipped with address relocation hardware. Alongside these models came four new operating systems: DOS/VS, OS/VS1, OS/VS2 (which evolved into SVS and MVS), and VM/370—the reengineered version of CP/CMS. By this time, the VM/CP/CMS team had expanded to about 110 members including technical writers. VM/370 was officially recognized as an IBM product rather than Type-III software, although source code distribution continued for several subsequent releases.
1968–86?: VP/CSS Development
In 1968, Computer Software Systems (CSS), a modest consulting firm based in Connecticut, innovated by leasing an IBM System/360-67 to operate CP/CMS and resell computing time—an uncommon practice given IBM’s standard leasing policies for such expensive systems. Early notable recruits included Dick Orenstein, co-developer of CTSS, and Dick Bayles, lead architect of CP-67, alongside other experts like Harold Feinleib, Mike Field, and Bob Jay.
By November 1968, CSS obtained IBM’s consent and financial backing to purchase their initial S/360-67 system and commenced commercial time-sharing offerings in December. Initially, revenue from selling virtual machine time at list prices barely offset leasing expenses, prompting swift enhancements aimed at boosting CP/CMS performance to achieve profitability through resale. This effort led to a fifteen-year independent evolution of the operating system under the new name VP/CSS. The company ultimately went public as National CSS.
Although VP/CSS originated from CP/CMS and shared lineage with VM/370, it evolved distinctly due to commercial demands: profitability and customer retention were paramount because users could easily discontinue service. This drove a strong emphasis on performance optimization, user experience improvements, and customer support. VP/CSS gained recognition for supporting two to three times more interactive users compared to similar VM systems.
Initial upgrades encompassed enhancements in page migration techniques, dispatching mechanisms, file system improvements, device compatibility, and efficient fast-path hypervisor operations via the DIAG instruction. Subsequent developments introduced a packet-switched network capability, FILEDEF-level (pipe) mechanisms for interprocess and intermachine communication, as well as database integration—features that paralleled those found in VM. The NCSS development group grew substantially in size and expertise to rival IBM’s own teams. VP/CSS remained active until the mid-1980s.
In 1979, NCSS was acquired by Dun & Bradstreet, rebranded as DBCS (Dun & Bradstreet Computer Services), shifted focus towards the NOMAD product line, adopted a strategy embracing VM alongside other platforms, and gradually discontinued VP/CSS support—likely marking the end of non-VM forks derived from CP/CMS.
1964?–72?: IDC's Adoption of CP/CMS
Interactive Data Corporation (IDC) implemented a strategy comparable to that of National CSS, delivering time-sharing services centered on CP/CMS with an emphasis on financial applications. According to Varian, IDC operated several S/360-67 machines running CP/CMS alongside one of IBM’s pioneering relocatable S/370 systems—most likely the 1971 S/370-145 equipped with DAT storage or possibly the 1972 S/370 Advanced Function models (S/370-158/-168).
[Additional information regarding IDC’s history with CP/CMS time-sharing remains to be uncovered.]
Historical Observations
Presented below are notable excerpts from Pugh and Varian that shed light on the developmental background of CP/CMS, preserving the original authors' viewpoints.
- Foundations of early time-sharing and CTSS: In February 1959, Christopher Strachey filed a patent concerning "time-sharing." That June, he delivered a presentation titled "Time Sharing in Large Fast Computers" at the UNESCO Information Processing Conference, which influenced J. C. R. Licklider. The CTSS, demonstrated at MIT in 1961 on an IBM 709, was operational from 1964 through 1974. Key contributors included Marjorie Merwin-Daggett, Robert Daley, Robert Creasy, and Richard Orenstein (who later co-founded National CSS), all under Professor Fernando Corbató. IBM modified hardware specifically to support CTSS. Creasy highlighted that CTSS significantly shaped CP/CMS design, particularly its transparent batch program execution, user interface, terminal management, disk file system, and compatibility strategies.
- John McCarthy’s influence: In April 1961, McCarthy emphasized the future significance of time-sharing, proposing that computing might evolve into a "public utility," foreshadowing the Internet's role—contrasting with IBM executives’ batch processing focus.
- IBM-MIT partnership: Starting in 1955, IBM president T.J. Watson provided MIT with an IBM 704, fostering close collaboration through an MIT Liaison Office staffed by skilled technicians. Watson encouraged computer science education by offering substantial college discounts, stimulating market expansion. The IBM Cambridge Branch interpreted Watson’s grant as approval to upgrade MIT's systems as newer computers became available.
- Project MAC and MULTICS: Initiated at MIT in 1963 to develop a new time-sharing system succeeding CTSS. IBM proposed supplying a modified S/360 featuring address translation hardware ("Blaauw Box") but lost the contract to other vendors selected by MIT and Bell Labs. This represented a shift away from IBM processors as academic research platforms; MULTICS and UNIX emerged as leading research operating systems.
- MIT’s impact on S/360 design: IBM personnel closely connected to MIT advocated for integrating time-sharing capabilities into System/360 architecture, including CTSS-inspired hardware improvements. Nevertheless, IBM prioritized batch processing and introduced System/360 in 1964 without address relocation features, disappointing proponents of time-sharing.
- Significance of virtual memory: By mid-1964, MIT insisted on hardware-supported dynamic address translation (DAT) for effective multi-user time-sharing—allowing dynamic sharing of memory resources. Feeling let down by IBM's position, MIT turned to GE for MULTICS development.
- Cambridge Scientific Center (CSC): Established in 1964 by Norm Rasmussen, co-located with Project MAC amidst several time-sharing initiatives. CSC managed IBM contracts with MIT and became the origin point for CP-40 following the loss of Project MAC.
- IBM’s strategic divisions in 1964:
- One group aimed to unify computing architecture across commercial and scientific domains without relying on unproven technologies like dynamic address translation.
- Another faction aligned with MIT researchers advocated for time-sharing as a transformative approach to computing accessibility in academia and laboratories.
- Divergent opinions on S/360: CSC personnel supported System/360’s architecture despite skepticism elsewhere within IBM. Creasy commended its unified instruction set for scientific and commercial applications and backward compatibility, predicting extensive longevity with diverse operating systems and software.
- IBM reorganization in 1965: Time-sharing projects under Advanced Systems Development Division (ASDD) and Data Systems Division (DSD) were merged into Systems Development Division (SDD) and Systems Manufacturing Division (SMD), reflecting internal shifts away from prioritizing time-sharing.
- Development of S/360-67 and TSS: Rasmussen responded to IBM’s neglect by initiating a time-sharing system tailored for System/360. The S/360-67 incorporated advanced address translation hardware ("DAT Box") supporting segmentation and paging alongside the new Time Sharing System (TSS). Early adopters included Lincoln Laboratory and University of Michigan. Although launched in August 1965, TSS faced challenges with stability and performance.
- CSC funding approaches: Rasmussen employed innovative accounting methods by exchanging unused IBM 7094 machine time inherited from MIT contracts to support CP-40 development, employing part-time personnel including MIT students while maintaining discretion. This complex funding arrangement obscured clear attribution of CP/CMS authorship but undeniably involved external researcher contributions.
- IBM’s resistance to time-sharing: Following initial cooperation with MIT (1961–62), IBM task forces downplayed time-sharing's feasibility, favoring batch processing despite increasing installations—from one system in 1961 to approximately forty by 1967—some financed by Department of Defense research programs.
- Informal introduction of CP/CMS: CP-67/CMS was released informally due to its development outside official product divisions, excluding company politics or funding sources from public acknowledgment.
- Early commercial impact of time-sharing: Before handheld calculators like the HP-35 appeared in 1972, terminals primarily served scientific users requiring precise computation beyond slide rule capabilities—underscoring time-sharing’s importance in academic markets.
- IBM’s caution regarding virtual memory: After challenges with System/360, IBM leadership avoided high-risk projects such as virtual memory-based time-sharing systems, concentrating instead on mainstream batch processing. Ironically, the subsequent Future System project pursued similar ambitious goals but was discontinued after three years; key individuals like Gene Amdahl continued related efforts independently.
- Purpose and legacy of CP/CMS: Creasy observed that CMS was initially created mainly for system maintenance and VM/370 support, anticipating multiple operating systems would arise within the virtual machine environment as a platform for innovation—a vision only partially realized as CMS evolved into a comprehensive general-purpose system. This pattern reflects typical difficulties faced by research systems despite CP-40's lasting conceptual influence over more than forty years.
See also
- CP-40 – IBM's experimental platform that confirmed the virtual machine principle
- VM – the virtual machine operating system lineage developed by IBM, evolving from CP/CMS
- Virtualization and hypervisor – concepts initially developed through CP/CMS
- IBM System/360-67 – the main hardware environment for CP/CMS
- VP/CSS – a proprietary operating system by National CSS, originally derived as a fork from CP/CMS source code
- Time-sharing – a sector significantly shaped by CP/CMS innovations
- Time-sharing system evolution
References
- Core CP/CMS documentation
- 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 ― insights on CP/CMS and the history of VM by the lead of the CP-40 initiative, also a contributor to the CTSS
- E.W. Pugh, L.R. Johnson, and John H. Palmer, IBM's 360 and early 370 systems, MIT Press ― comprehensive review of IBM's systems from that era; includes limited coverage emphasizing CP/CMS’s specialized role
- Melinda Varian, VM and the VM community, past present, and future, SHARE 89 Sessions 9059–61, 1997 ― essential reference for the history of CP/CMS and VM
- Bitsavers, Index of /pdf/ibm/360/cp67
- Supplementary CP/CMS literature
- R. J. Adair et al., A Virtual Machine System for the 360/40, IBM Cambridge Scientific Center Report No. 320‐2007 (May 1966) ― foundational publication detailing virtual machine implementation on the modified S/360-40 and CP-40 architecture
- International Business Machines Corporation, CP-67/CMS, Program 360D-05.2.005 (June 1969) ― official IBM reference guide
- R. A. Meyer and L. H. Seawright, "A virtual machine time-sharing system," IBM Systems Journal, Vol. 9, No. 3 (September 1970) ― description of CP-67/CMS capabilities and practical uses
- R. P. Parmelee et al., "Virtual storage and virtual machine concepts," IBM Systems Journal, Vol. 11, No. 2 (June 1972)
- Foundational background sources
- F. J. Corbató et al., The Compatible Time-Sharing System, A Programmer’s Guide, M.I.T. Press, 1963
- F. J. Corbató et al., "An Experimental Time-sharing System," Proc. Spring Joint Computer Conference (AFIPS) (1962) — overview of CTSS
- F. J. Corbató and V. A. Vyssotsky, "Introduction and Overview of the MULTICS System", Proc. Fall Joint Computer Conference (AFIPS) (1965)
- P. J. Denning, "Virtual Memory", Computing Surveys Vol. 2 (1970)
- J. B. Dennis, "Segmentation and the Design of Multi-Programmed Computer Systems," JACM Vol. 12 (1965) ― virtual memory requirements related to Project MAC
- C. A. R. Hoare and R. H. Perrott, Eds., Operating Systems Techniques, Academic Press (1972)
- T. Kilburn et al., "One-Level Storage System", IRE Trans. EC-11 (1962) ― Manchester/Ferranti Atlas project
- R. A. Nelson, "Mapping Devices and the M44 Data Processing System," IBM Research Report RC 1303 (1964) ― concerning IBM M44/44X
- R. P. Parmelee et al., "Virtual Storage and Virtual Machine Concepts", IBM Systems Journal Vol. 11 (1972)
- Additional online resources on CP/CMS
- febcm.club.fr — Information Technology Timeline, covering years 1964–74
- www.multicians.org — Tom Van Vleck’s article The IBM 360/67 and CP/CMS
- www.cap-lore.com — Norman Hardy’s concise history titled Short history of IBM's virtual machines
- www.cap-lore.com — Norman Hardy’s explanation of the "Blaauw Box"
Background material
- Peter J. Denning, "Performance Modeling: Experimental Computer Science at its Best", Communications of the ACM, President's Letter (November 1981) ― references studies related to the IBM M44/44X:
- L. Belady, "A study of replacement algorithms for virtual storage computers," IBM Systems Journal Vol. 5 No. 2 (1966)
- L. Belady and C.J. Kuehner, "Dynamic space sharing in computer systems," Communications of ACM Vol.12 No.5 (1969)
- L.Belady et al., "An anomaly in space-time characteristics of certain programs running in paging machines," Communications of ACM Vol.12 No.6 (1969)
- L.W Comeau, "CP-40, the Origin of VM/370," SEAS AM82 (1982) ― discussion about CP-40 cited within Varian’s work above
- Harold Feinleib, "A technical history of National CSS", Computer History Museum (2005)
- W.O'Neill, "Experience using a time sharing multiprogramming system with dynamic address relocation hardware," Proc AFIPS Computer Conference 30 (1967) ― analysis of IBM M44/44X performance
- Dick Orenstein, "From the very beginning… from my vantage point", Computer History Museum (2005) ― early historical account concerning National CSS
- D.Sayre, On Virtual Systems, IBM Thomas J Watson Research Center (1966) ― pioneering paper on virtual machines describing multiprogramming with IBM M44/44X
Citations