The Conversational Monitor System (CMS, originally Cambridge Monitor System)
is a simple
interactive
Across the many fields concerned with interactivity, including information science, computer science, human-computer interaction, communication, and industrial design, there is little agreement over the meaning of the term "interactivity", but mo ...
single-user
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
. CMS was originally developed as part of IBM's
CP/CMS operating system, which went into production use in 1967. CMS is part of IBM's
VM family, which runs on
IBM mainframe
IBM mainframes are large computer systems produced by IBM since 1952. During the 1960s and 1970s, IBM dominated the computer market with the 7000 series and the later System/360, followed by the System/370. Current mainframe computers in IBM' ...
computers. VM was first announced in 1972, and is still in use today as
z/VM
z/VM is the current version in IBM's VM family of virtual machine operating systems. First released in October 2000, z/VM remains in active use and development . It is directly based on technology and concepts dating back to the 1960s, particu ...
.
CMS runs as a "guest" operating system in a private
virtual machine
In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
created by the
VM ''control program''. The control program plus CMS together create a multi-user time-sharing operating system.
History
CMS was originally developed as part of IBM's
CP/CMS operating system. At the time, the acronym meant "Cambridge Monitor System" (but also: "Console Monitor System").
* CMS first ran under
CP-40, a one-off research system using custom hardware at IBM's
Cambridge Scientific Center. Production use at CSC began in January 1967. The CMS user interface drew heavily on experience with the influential first-generation time-sharing system
CTSS, some of whose developers worked on
CP/CMS. (CTSS was used as an early
CP/CMS development platform.)
* Later in 1967,
CP/CMS became generally available on the
IBM System/360 Model 67
IBM mainframes are large computer systems produced by IBM since 1952. During the 1960s and 1970s, IBM dominated the computer market with the 7000 series and the later System/360, followed by the System/370. Current mainframe computers in IBM' ...
, where, although the new control program
CP-67
CP-67 is a hypervisor, or Virtual Machine Monitor, from IBM for its System/360 Model 67 computer.
CP-67 is the control program portion of CP/CMS, a virtual machine operating system developed by IBM's Cambridge Scientific Center in Cambridge, ...
was a substantial re-implementation of
CP-40, CMS remained essentially the same. IBM provided
CP/CMS "as is" – without any support, in source code form, as part of the
IBM Type-III Library.
CP/CMS was thus an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
system. Despite this lack of support from IBM,
CP/CMS achieved great success as a time-sharing platform; by 1972, there were some 44
CP/CMS systems in use, including commercial sites that resold access to
CP/CMS.
In 1972, IBM released its
VM/370 operating system, a re-implementation of
CP/CMS for the
System/370
The IBM System/370 (S/370) is a range of IBM mainframe computers announced as the successors to the IBM System/360, System/360 family on June 30, 1970. The series mostly maintains backward compatibility with the S/360, allowing an easy migrati ...
, in an announcement that also added
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 ver ...
hardware to the
System/370
The IBM System/370 (S/370) is a range of IBM mainframe computers announced as the successors to the IBM System/360, System/360 family on June 30, 1970. The series mostly maintains backward compatibility with the S/360, allowing an easy migrati ...
series. Unlike
CP/CMS, VM/370 ''was'' supported by IBM. VM went through a series of versions, and is still in use today as
z/VM
z/VM is the current version in IBM's VM family of virtual machine operating systems. First released in October 2000, z/VM remains in active use and development . It is directly based on technology and concepts dating back to the 1960s, particu ...
.
Through all its distinct versions and releases, the CMS platform remained still quite recognizable as a close descendant of the original CMS version running under
CP-40. Many key user interface decisions familiar to today's users had already been made in 1965, as part of the
CP-40 effort. See
CMS under CP-40 for examples.
Both
VM and
CP/CMS had checkered histories at IBM. VM was not one of IBM's "strategic" operating systems, which were primarily the
OS and
DOS
DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
families, and it suffered from IBM political infighting over
time-sharing
In computing, time-sharing is the Concurrency (computer science), concurrent sharing of a computing resource among many tasks or users by giving each Process (computing), task or User (computing), user a small slice of CPU time, processing time. ...
versus
batch processing
Computerized batch processing is a method of running software programs called jobs in batches automatically. While users are required to submit the jobs, no other interaction by the user is required to process the batch. Batches may automatically ...
goals. This conflict is why
CP/CMS was originally released as an unsupported system, and why VM often had limited development and support resources within IBM. An exceptionally strong user community, first established in the self-support days of
CP/CMS but remaining active after the launch of VM, made substantial contributions to the operating system, and mitigated the difficulties of running IBM's "other operating system".
Architecture
CMS is an intrinsic part of the VM/CMS architecture, established with
CP/CMS. Each CMS user has control over a private
virtual machine
In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
– a simulated copy of the underlying physical computer – in which CMS runs as a stand-alone operating system. This approach has remained consistent through the years, and is based on:
*
Full virtualization, used to create multiple independent virtual machines that each completely simulate the underlying hardware
*
Paravirtualization
In computing, virtualization (abbreviated v12n) is a series of technologies that allows dividing of physical computing resources into a series of virtual machines, operating systems, processes or containers.
Virtualization began in the 1960s with ...
, used to provide 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 ...
interface that CMS uses to access VM services; this is implemented by the non-virtualized DIAG (diagnose) instruction
More details on how CMS interacts with the virtual machine environment can be found in the
VM and
CP/CMS articles.
CMS was originally built as a stand-alone operating system, capable of running on a
bare machine
In information technology, bare machine (or bare-metal computer) is a computer which has no operating system. The software executed by a bare machine, commonly called a "bare metal program" or "bare metal application", is designed to interact dir ...
(though of course nobody would choose to do so). However, CMS can no longer run outside the VM environment, which provides the
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 ...
interface needed for various critical functions.
Features
CMS provides users an environment for running
applications
Application may refer to:
Mathematics and computing
* Application software, computer software designed to help the user to perform specific tasks
** Application layer, an abstraction layer that specifies protocols and interface methods used in a ...
or
batch jobs, managing
data files, creating and
debug
In engineering, debugging is the process of finding the root cause, workarounds, and possible fixes for bugs.
For software, debugging tactics can involve interactive debugging, control flow analysis, log file analysis, monitoring at the ap ...
ging applications, doing
cross-platform
Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
development, and communicating with other systems or users.
CMS is still in development and wide use today.
Basic environment
Users log into VM, providing a userid and password, and then boot their own virtual machine. This can be done by issuing the command "IPL CMS" ("IPL" = ''initial program load'', traditional IBM jargon for
booting
In computing, booting is the process of starting a computer as initiated via Computer hardware, hardware such as a physical button on the computer or by a software command. After it is switched on, a computer's central processing unit (CPU) h ...
a machine); though this is normally done automatically for the user. Personal customization is done by a standard shell script file named "PROFILE EXEC", which sets up user-specified environmental defaults, such as which disks and libraries are accessed.
Terminal support
CMS started in the era of teletype-style paper terminals, and the later "glass teletype"
dumb terminals. By the late 1970s, however, most VM users were connecting via full-screen terminals – particularly the
IBM 3270
The IBM 3270 is a family of Block-oriented terminal, block oriented display and printer computer terminals introduced by IBM in 1971
and normally used to communicate with IBM mainframes. The 3270 was the successor to the IBM 2260 display ter ...
, the ubiquitous transaction processing terminal on IBM mainframes. The 3270 played a strategic role in IBM's product line, making its selection a natural choice for large data centers of the day. Many other manufacturers eventually offered bisync terminals that emulated the 3270 protocol.
3270s had local buffer storage, some processing capabilities, and generally dealt with an entire screen of data at a time. They handled editing tasks locally, and then transmitted a set of fields (or the entire page) at once when the ENTER key or a
program function key (PFK) was pressed.
The 3270 family incorporated "smart" control units, concentrators, and other network processing elements, communicating with the mainframe over dedicated circuits at relatively high speeds, via a
bisync synchronous
communication protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics (computer science), sem ...
. (These mainframe-oriented communication technologies provided some of the capabilities taken for granted in modern communication networks, such as device addressing, routing, error correction, and support for a variety of configurations such as
multipoint and
multidrop topologies.)
The 3270 approach differed from lower-cost
dumb terminal
A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. Most early computers only had a front panel to input or display ...
s of the period, which were
point-to-point and
asynchronous
Asynchrony is any dynamic far from synchronization. If and as parts of an asynchronous system become more synchronized, those parts or even the whole system can be said to be in sync.
Asynchrony or asynchronous may refer to:
Electronics and com ...
. Commercial
time-sharing
In computing, time-sharing is the Concurrency (computer science), concurrent sharing of a computing resource among many tasks or users by giving each Process (computing), task or User (computing), user a small slice of CPU time, processing time. ...
users, an important segment of early
CP/CMS and VM sites, relied on such devices because they could connect via 300- or 1200 bit/s modems over normal voice-grade telephone circuits. Installing a dedicated circuit for a 3270 was often not practical, economical, or timely.
The 3270's
block-oriented approach was more consistent with IBM's batch- and punched card-oriented view of computing, and was particularly important for IBM mainframes of the day. Unlike contemporary minicomputers, most IBM mainframes were not equipped for character-at-a-time interrupts. Dumb terminal support relied on terminal control units such as the IBM
270x (see
IBM 3705) or Memorex 1270. These
asynchronous
Asynchrony is any dynamic far from synchronization. If and as parts of an asynchronous system become more synchronized, those parts or even the whole system can be said to be in sync.
Asynchrony or asynchronous may refer to:
Electronics and com ...
terminal controllers assembled a line of characters, up to a fixed maximum length, until the RETURN key was pressed. Typing too many characters would result in an error, a familiar situation to users of the day. (Most data centers did not include this equipment, except as needed for dial-up access. The 3270 approach was preferred.)
Block-oriented terminals like the 3270 made it practical to implement
screen-oriented editors on mainframes – as opposed to
line-oriented editors, the previous norm. This had been an important advantage of contemporary minicomputers and other character-oriented systems, and its availability via the 3270 was warmly welcomed.
A gulf developed between the 3270 world, focused on page-oriented mainframe transaction processing (especially via
CICS
IBM CICS (Customer Information Control System) is a family of mixed-language application servers that provide online business transaction management, transaction management and connectivity for applications on IBM mainframe systems under z/OS ...
), and the asynch terminal world, focused on character-oriented minicomputers and dial-up timesharing. Asynchronous terminal vendors gradually improved their products with a range of
smart terminal features, usually accessed via
escape sequences. However, these devices rarely competed for 3270 users; IBM maintained its dominance over mainframe data center hardware purchase decisions.
Viewed in retrospect, there was a major philosophical divergence between block-oriented and character-oriented computing. Asynchronous terminal controllers and 3270s both provided the mainframe with block-oriented interactions – essentially, they made the terminal input look like a card reader. This approach, preferred by IBM, led to the development of entirely different user interface paradigms and programming strategies. Character-oriented systems evolved differently. The difference is apparent when comparing the
atomic transaction
In database systems, atomicity (; from ) is one of the ACID (''Atomicity, Consistency, Isolation, Durability'') transaction properties. An atomic transaction is an ''indivisible'' and '' irreducible'' series of database operations such that eithe ...
approach of dominant
CICS
IBM CICS (Customer Information Control System) is a family of mixed-language application servers that provide online business transaction management, transaction management and connectivity for applications on IBM mainframe systems under z/OS ...
with the interactive, stream-oriented style of
UNIX
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
. VM/CMS evolved somewhere between these extremes. CMS has a command-driven,
stateful, interactive environment, rather than adopting the CICS approach of a
stateless transaction-oriented interface. Yet CMS responds to page- or line-at-a-time interaction, instead of character interrupts.
Performance
CMS earned a very good reputation for being efficient, and for having good human factors for ease of use, relative to the standards of the time (and of course prior to widespread use of
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
environments such as are commonly used today). It was not uncommon to have hundreds (later: thousands) of concurrent CMS interactive users on the same VM mainframe, with sub-second response times for common, 'trivial' functions. VM/CMS consistently outperformed MVS and other IBM operating systems in terms of support for simultaneous interactive users.
Programming and major applications
Many CMS users programmed in such languages as
COBOL
COBOL (; an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use. It is an imperative, procedural, and, since 2002, object-oriented language. COBOL is primarily ...
,
FORTRAN,
PL/I
PL/I (Programming Language One, pronounced and sometimes written PL/1) is a procedural, imperative computer programming language initially developed by IBM. It is designed for scientific, engineering, business and system programming. It has b ...
,
C/370,
APL, and the scripting language
REXX
Rexx (restructured extended executor) is a high-level programming language developed at IBM by Mike Cowlishaw. Both proprietary and open-source software, open source Rexx interpreter (computing), interpreters exist for a wide range of comput ...
. VM/CMS was often used as a development platform for production systems that ran under IBM's other operating systems, such as
MVS.
Other CMS users worked with commercial software packages such as
FOCUS
Focus (: foci or focuses) may refer to:
Arts
* Focus or Focus Festival, former name of the Adelaide Fringe arts festival in East Australia Film
*Focus (2001 film), ''Focus'' (2001 film), a 2001 film based on the Arthur Miller novel
*Focus (2015 ...
,
NOMAD
Nomads are communities without fixed habitation who regularly move to and from areas. Such groups include hunter-gatherers, pastoral nomads (owning livestock), tinkers and trader nomads. In the twentieth century, the population of nomadic pa ...
,
SPSS
SPSS Statistics is a statistical software suite developed by IBM for data management, advanced analytics, multivariate analysis, business intelligence, and criminal investigation. Long produced by SPSS Inc., it was acquired by IBM in 2009. Versi ...
, and
SAS.
At one time, CMS was also a major environment for e-mail and office productivity; an important product was IBM's PROFS (later renamed
OfficeVision).
Two commonly used CMS tools are the editor
XEDIT
XEDIT is a visual editor for VM (operating system), VM/CMS using block-oriented terminal, block mode IBM 3270 Computer terminal, terminals. (Line-mode terminals are also supported.)
XEDIT is much more line-oriented than modern Personal compu ...
and the
REXX
Rexx (restructured extended executor) is a high-level programming language developed at IBM by Mike Cowlishaw. Both proprietary and open-source software, open source Rexx interpreter (computing), interpreters exist for a wide range of comput ...
programming language. Both of these products have been ported to other platforms, and are now widely used outside the mainframe environment.
See also
*
CMS file system
CMS may refer to:
Computing
* Call management system
* CMS-2, a programming language implemented for and used by the United States Navy
* Code Morphing Software, a technology used by Transmeta
* Collection management system for a museum coll ...
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,
PDF
Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
― 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,
― 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:
* 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:
* 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
The GE 645 mainframe computer was a development of the GE 635 for use in the Multics project. This was the first computer that implemented a configurable hardware protected memory system. It was designed to satisfy the requirements of Project M ...
* 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
An atlas is a collection of maps; it is typically a bundle of world map, maps of Earth or of a continent or region of Earth. Advances in astronomy have also resulted in atlases of the celestial sphere or of other planets.
Atlases have traditio ...
* 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
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 a modified IBM 7044 (the 'M44'), and simulated multiple 7044 vi ...
* 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:
* febcm.club.fr —
Information Technology Timeline 1964–74''
* www.multicians.org — Tom Van Vleck's short essay
'
* www.cap-lore.com — Norman Hardy's
'
* www.cap-lore.com — Norman Hardy'
{{IBM operating systems
1967 software
IBM mainframe operating systems
Command shells
VM (operating system)