Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Conversational Monitor System
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Operating system}} {{main|VM (operating system)|CP/CMS|History of CP/CMS}} {{More footnotes needed|date=September 2023}} {{Infobox OS | name = Conversational Monitor System (CMS) | logo = IBM logo.svg | logo caption = | logo size = 120px | logo alt = | screenshot = | caption = | developer = [[IBM]] | family = | working_state = | source_model = | released = {{Start date and age|1967}} | latest_release_version = | latest_release_date = | latest_preview_version = | latest_preview_date = | frequently_updated = | repo = | marketing_target = | programmed_in = | language = <!-- number of human languages supported (English, French, Italian, Arabic, ...) --> | prog_language = | updatemodel = <!-- APT, Windows Update --> | package_manager = <!-- dpkg, rpm, Windows installer --> | supported_platforms = [[IBM CP-40]] | kernel_type = | userland = | influenced_by = [[Compatible Time-Sharing System]] | ui = | license = | preceded_by = | succeeded_by = | website = }} {{History of IBM mainframe operating systems|vm}} The '''Conversational Monitor System''' ('''CMS''', originally '''Cambridge Monitor System''')<ref>{{cite book |title=Control Program-67/Cambridge Monitor System (GH20-0857-1) |publisher=IBM |date=October 1971}}</ref> is a simple [[interactive computing|interactive]] single-user [[operating system]]. CMS was originally developed as part of IBM's [[CP/CMS]] operating system, which went into production use in 1967. CMS is part of IBM's [[VM (operating system)|VM family]], which runs on [[IBM mainframe]] computers. VM was first announced in 1972, and is still in use today as [[z/VM]]. CMS runs as a "guest" operating system in a private [[virtual machine]] created by the [[VM (operating system)|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 [[IBM CP-40|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 [[Compatible 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]], where, although the new control program [[CP-67]] was a substantial re-implementation of [[IBM CP-40|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 software|open source]] 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 (operating system)|VM/370]] operating system, a re-implementation of [[CP/CMS]] for the [[System/370]], in an announcement that also added [[virtual memory]] hardware to the [[System/370]] 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]]. 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 [[IBM CP-40|CP-40]]. Many key user interface decisions familiar to today's users had already been made in 1965, as part of the [[IBM CP-40|CP-40]] effort. See [[IBM CP-40#CMS under CP-40|CMS under CP-40]] for examples. Both [[VM (operating system)|VM]] and [[CP/CMS]] had checkered histories at IBM. VM was not one of IBM's "strategic" operating systems, which were primarily the [[OS/360|OS]] and [[DOS/360|DOS]] families, and it suffered from IBM political infighting over [[time-sharing]] versus [[batch processing]] 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]] – 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]], used to provide a [[hypervisor]] 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 (operating system)|VM]] and [[CP/CMS]] articles. CMS was originally built as a stand-alone operating system, capable of running on a [[bare machine]] (though of course nobody would choose to do so). However, CMS can no longer run outside the VM environment, which provides the [[hypervisor]] interface needed for various critical functions. ==Features== CMS provides users an environment for running [[application software|applications]] or [[batch processing|batch jobs]], managing [[computer file|data files]], creating and [[debug]]ging applications, doing [[cross-platform]] 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]] 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 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 [[function key|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]]. (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 [[Videoconferencing#Multipoint videoconferencing|multipoint]] and [[multidrop]] topologies.) The 3270 approach differed from lower-cost [[dumb terminal]]s of the period, which were [[Network topology#Point-to-point|point-to-point]] and [[asynchronous transmission|asynchronous]]. Commercial [[time-sharing]] 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 (telecommunications)|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 transmission|asynchronous]] [[terminal controller]]s 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 [[text editor|screen-oriented editors]] on mainframes – as opposed to [[line editor|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]]), 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 [[Block-oriented terminal|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]] approach of dominant [[CICS]] with the interactive, stream-oriented style of [[UNIX]]. VM/CMS evolved somewhere between these extremes. CMS has a command-driven, [[state (computer science)|stateful]], interactive environment, rather than adopting the CICS approach of a [[stateless server|stateless]] [[transaction processing|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]] 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]], [[FORTRAN]], [[PL/I]], [[C (programming language)|C/370]], [[APL programming language|APL]], and the scripting language [[REXX]]. 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]], [[Nomad software|NOMAD]], [[SPSS]], and [[SAS System|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 [[IBM OfficeVision|OfficeVision]]). Two commonly used CMS tools are the editor [[XEDIT]] and the [[REXX]] 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]] ==References== {{Reflist}} ; Primary CP/CMS sources: {{Refbegin}} * R. J. Creasy, "[http://pages.cs.wisc.edu/~stjones/proj/vm_reading/ibmrd2505M.pdf The origin of the VM/370 time-sharing system]", ''IBM Journal of Research & Development'', Vol. 25, No. 5 (September 1981), ''pp.'' 483–90, [[PDF]]<br/>― perspective on [[CP/CMS]] and [[VM (operating system)|VM]] history by the [[IBM CP-40|CP-40]] project lead, also a [[Compatible Time-Sharing System|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}}<br/>― 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, ''[http://www.leeandmelindavarian.com/Melinda/25paper.pdf VM and the VM community, past present, and future]'', SHARE 89 Sessions 9059–61, 1997;<br/>― an outstanding source for [[CP/CMS]] and [[VM (operating system)|VM]] history * Bitsavers, ''[http://bitsavers.org/pdf/ibm/360/cp67/ Index of /pdf/ibm/360/cp67]'' {{Refend}} ; Additional CP/CMS sources: {{Refbegin}} * 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)<br/>― a seminal paper describing implementation of the virtual machine concept, with descriptions of the customized CSC S/360-40 and the [[IBM CP-40|CP-40]] design * International Business Machines Corporation, ''CP-67/CMS'', Program 360D-05.2.005, IBM Program Information Department (June 1969)<br/>― 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)<br/>― 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) {{Refend}} ; Background CP/CMS sources: {{Refbegin}} * 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)<br/>― 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)<br/>― Manchester/Ferranti [[Atlas Computer (Manchester)|Atlas]] * R. A. Nelson, "Mapping Devices and the M44 Data Processing System," ''Research Report RC 1303'', IBM [[Thomas J. Watson Research Center]] (1964)<br/>― 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) {{Refend}} ; Additional on-line CP/CMS resources: {{Refbegin}} * febcm.club.fr — ''[http://febcm.club.fr/english/information_technology/information_technology_3.htm Information Technology Timeline], 1964–74'' * www.multicians.org — Tom Van Vleck's short essay ''[http://www.multicians.org/thvv/360-67.html The IBM 360/67 and CP/CMS]'' * www.cap-lore.com — Norman Hardy's ''[http://cap-lore.com/Software/CP.html Short history of IBM's virtual machines]'' * www.cap-lore.com — Norman Hardy's [http://www.cap-lore.com/Hardware/Blaauw.html short description of the "Blaauw Box"] {{Refend}} {{IBM operating systems}} [[Category:1967 software]] [[Category:IBM mainframe operating systems]] [[Category:Command shells]] [[Category:VM (operating system)]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:History of IBM mainframe operating systems
(
edit
)
Template:IBM operating systems
(
edit
)
Template:ISBN
(
edit
)
Template:Infobox OS
(
edit
)
Template:Main
(
edit
)
Template:More footnotes needed
(
edit
)
Template:Refbegin
(
edit
)
Template:Refend
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)