Conversational Monitor System
| Company type | Operating system component |
|---|---|
| Industry | Computer software |
| Founded | 1967 |
| Founder | IBM |
| Headquarters | United States |
| Products | Operating system for IBM mainframe hardware |
| Parent | IBM VM family |
The Conversational Monitor System (CMS, initially known as the Cambridge Monitor System) is a straightforward, interactive operating system designed for single users. It was developed as a component of IBM's CP/CMS operating system, which became operational in 1967. CMS belongs to IBM's VM family and runs on IBM mainframe hardware. Announced in 1972, VM continues to evolve today under the name z/VM.
CMS functions as a "guest" operating system within a dedicated virtual machine managed by the VM control program. Together, CMS and the control program create a multi-user time-sharing environment.
History
CMS was created as part of IBM's CP/CMS system, with its name originally standing for "Cambridge Monitor System" or alternatively "Console Monitor System."
- The initial implementation of CMS operated under CP-40, an experimental setup featuring custom hardware at IBM's Cambridge Scientific Center. It entered production in January 1967. The user interface drew inspiration from the pioneering time-sharing system CTSS, whose developers also contributed to CP/CMS. CTSS additionally functioned as an early platform for development.
- Later in 1967, CP/CMS was made widely available on the IBM System/360 Model 67. Although the control program, CP-67, represented a significant redesign of CP-40, CMS itself saw minimal changes. IBM distributed CP/CMS "as is," without support and in source code form, through the IBM Type-III Library, effectively treating it as an open source product. Despite the lack of official backing, CP/CMS gained traction as a time-sharing solution; by 1972, approximately 44 installations existed, including those operated by commercial resellers.
In 1972, IBM introduced VM/370, a supported redevelopment of CP/CMS tailored for the System/370, coinciding with the introduction of virtual memory hardware on that platform. VM has undergone numerous upgrades and remains active today under the name z/VM.
Through its various versions, CMS has preserved fundamental features dating back to its original CP-40 iteration, with key aspects of its user interface established during the CP-40 project in 1965. For more information, see CMS under CP-40.
The development histories of both VM and CP/CMS within IBM are intricate. VM was not prioritized among IBM's main operating system lines—which focused on the OS and DOS families—and internal disagreements arose between time-sharing advocates and batch processing proponents. This environment led to CP/CMS being initially released without official support and limited IBM investment in VM's advancement. Nonetheless, a dedicated user community emerged during this self-supported phase and persisted after VM’s release, playing a crucial role in its ongoing development despite IBM’s limited involvement.
Architecture
CMS forms a core part of the VM/CMS framework established with CP/CMS. Each CMS user operates within an isolated virtual machine, which emulates physical hardware and runs CMS as an independent operating system instance. This structure relies on:
- Full virtualization, enabling multiple distinct virtual machines that fully replicate hardware behavior
- Paravirtualization, providing access to a hypervisor interface through the unvirtualized DIAG (diagnose) instruction
Additional technical information can be found in the articles on VM and CP/CMS.
While CMS was originally capable of running directly on physical hardware, it now depends on the VM environment’s hypervisor interface to perform essential operations.
Features
CMS provides a platform for executing applications, processing batch jobs, file management, application development and debugging, cross-platform programming, and facilitating system communication.
The system continues to be actively maintained and enjoys broad usage.
Basic environment
Users access VM by entering their credentials and starting their virtual machine, commonly through the "IPL CMS" command ("IPL" stands for initial program load). Individual preferences are configured via the "PROFILE EXEC," a shell script that defines user-specific defaults such as disk drives and library permissions.
Terminal support
Originally designed for teletype-style terminals, CMS later adapted to full-screen devices like the IBM 3270—a pivotal product in IBM mainframe deployments within large-scale data centers. The 3270's local buffering capabilities allowed users to edit data on-screen before sending it in bulk upon pressing ENTER or function keys.
The 3270 series incorporated intelligent control units and networking components that communicated over dedicated lines using the bisync synchronous protocol. These systems provided device addressing, routing, error correction, and supported multipoint and multidrop setups—essential features for enterprise-grade environments.
In contrast to lower-cost asynchronous dumb terminals connected via modems commonly used in commercial time-sharing, 3270 terminals required dedicated circuits. Although this limited their practicality in some settings, their block-oriented design aligned well with IBM’s batch processing approach, making them preferred in mainframe data centers.
Asynchronous terminals depended on controllers such as the IBM 270x or Memorex 1270, which buffered input line-by-line until the RETURN key was pressed. This imposed input length restrictions not found in 3270 terminals.
The block-based architecture of the 3270 enabled mainframes to support screen-oriented text editors, enhancing user interaction beyond the line-oriented editors typical of other systems. This distinction created a divide between the page-focused transaction processing of 3270-based mainframes (e.g., through CICS) and character-based asynchronous terminal systems prevalent in minicomputers and dial-up time-sharing environments.
Although asynchronous terminals included some advanced features accessible via escape codes, they seldom rivaled 3270 users; IBM retained a dominant position in mainframe hardware procurement.
This split illustrates a core distinction between IBM’s preference for block-oriented computing with transaction-driven interfaces like CICS and character-oriented systems exemplified by UNIX. VM/CMS occupies an intermediate position with its command-centric, stateful interactive environment that processes input one page or line at a time rather than reacting to individual characters or stateless transactions.
Performance
CMS earned recognition for its efficiency and user-centric design during an era preceding widespread graphical interfaces. It could support hundreds to thousands of interactive users simultaneously on a single VM mainframe while maintaining response times under one second for routine operations. In managing concurrent interactive workloads, VM/CMS consistently outperformed IBM operating systems such as MVS.
Programming and prominent applications
Users of CMS frequently developed software utilizing languages such as COBOL, FORTRAN, PL/I, C/370, APL, along with the scripting language REXX. It was commonly employed as a development environment for production applications operating on IBM's other systems like MVS.
Commercial software packages compatible with CMS included notable products such as FOCUS, NOMAD, SPSS, and SAS.
Historically, CMS played a significant role in supporting e-mail and office productivity through IBM’s PROFS system, which later evolved into OfficeVision.
Among the key tools associated with CMS are the text editor XEDIT and the REXX scripting language. Both have been adapted to other platforms and continue to be widely utilized beyond the mainframe environment.
See also
References
- Primary CP/CMS sources
- 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 from the CP-40 project leader on the history of CP/CMS and VM - E.W. Pugh, L.R. Johnson, and John H. Palmer, IBM's 360 and early 370 systems, MIT Press
― comprehensive coverage of IBM’s systems during that era - Melinda Varian, VM and the VM community, past present, and future, SHARE 89 Sessions 9059–61, 1997
― an exceptional resource on the history of CP/CMS and VM - Bitsavers, Index of /pdf/ibm/360/cp67
- Additional CP/CMS references
- R. J. Adair et al., A Virtual Machine System for the 360/40, IBM Corporation Report No. 320‐2007 (May 1966)
― foundational document describing virtual machine concepts and CP-40 architecture - International Business Machines Corporation, CP-67/CMS, Program 360D-05.2.005 (June 1969)
― IBM official reference guide - R. A. Meyer and L. H. Seawright, "A virtual machine time-sharing system," IBM Systems Journal, Vol. 9, No. 3 (September 1970)
― details on CP-67/CMS features and their applications - R. P. Parmelee et al., "Virtual storage and virtual machine concepts," IBM Systems Journal, Vol. 11, No. 2 (June 1972)
- Background CP/CMS literature
- 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 (1962)
- F. J. Corbató and V. A. Vyssotsky, "Introduction and Overview of the MULTICS System", Proc. Fall Joint Computer Conference (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 concepts pertinent 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. Electron Computers EC-11 (1962)
― Manchester/Ferranti Atlas system - R. A. Nelson, "Mapping Devices and the M44 Data Processing System," IBM Research Report RC 1303 (1964)
― discussion of IBM M44/44X - R.P. Parmelee et al., "Virtual Storage and Virtual Machine Concepts", IBM Systems Journal, Vol. 11 (1972)
- Additional online CP/CMS resources
- febcm.club.fr — Information Technology Timeline, 1964–74
- www.multicians.org — Tom Van Vleck's 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 brief overview of the "Blaauw Box"