VM (operating system)
From Wikipedia, the free encyclopedia
- See also: CP/CMS and History of CP/CMS
VM (often: VM/CMS) refers to a family of IBM virtual machine operating systems used on IBM System/370, System/390, zSeries, and System z9 IBM mainframes and compatible systems. (VM also runs under Hercules, a S/370, S/390, and zSeries emulator.) The first version was VM/370, a System/370 reimplementation of IBM's CP/CMS from the IBM System/360-67. Later major VM versions include VM/ESA and the current z/VM. Other versions have included VM/SEPP, VM/BSEPP, VM/SP, VM/HPO, VMXA/SF, and VMXA/SP.
VM is quite different from other IBM mainframe operating systems, which include:
- The OS family (OS/360, OS/VS1, OS/VS2, MVS, OS/390, and the current z/OS)
- The DOS family (DOS/360, DOS/VSE, and the current z/VSE)
- Specialized systems, like TPF and the current z/TPF
- Systems originating outside IBM, like Linux on zSeries, MTS, and MUSIC/SP
VM's differences are primarily due to the unique circumstances in which CP/CMS was built and distributed. For an historical perspective on the development of VM, see History of CP/CMS.
Contents |
[edit] Overview
The VM architecture consists of three separate operating systems that run simultaneously:
- VM (also CP) is the control program that runs on the physical hardware and creates the virtual machine environment. It performs the system's resource-sharing, including device management, dispatching, virtual storage management, and other traditional operating system tasks. Each VM user is provided with a separate virtual machine having its own address space, virtual devices, etc., and which is capable of running any software that could be run on a stand-alone machine. A given VM mainframe typically runs hundreds or thousands of virtual machine instances. This part of the system is a reimplementation of CP-67 (itself a reimplementation of CP-40).
- CMS ("Conversational Monitor System", renamed from the "Cambridge Monitor System" of CP/CMS) is a lightweight, single-user operating system that is run in most VM virtual machines. It is an interactive environment comparable to that of a single-user PC, including a file system, programming services, device access, and command-line processing. (At one time, CMS was also capable of running on a bare machine, as a true operating system, though of course nobody would do this. It now only runs as a guest OS under VM.)
- RSCS ("Remote Spooling and Communication Subsystem") provides communication and information transfer facilities between virtual machines. It operates "behind the scenes", extending the capabilities of a CMS user.<ref>Creasy, op. cit., p. 483 – role of RSCS</ref>
In addition to VM's full virtualization of a physical machine – including all I/O and other privileged operations – VM also provides a hypervisor interface. This interface is used by CMS to invoke higher-level operations, via paravirtualization. This interfaces dates from the first release of VM/370, when the term "hypervisor" was coined, and was implemented by using a non-virtualized, model-dependent machine instruction: DIAG ("diagnose"). CMS uses this interface to perform file system operations and request other VM services, exploiting a fast path to VM that avoids the overhead of full simulation. This design was an important early milestone in VM's efficiency.
[edit] History
The early history of VM is described in the articles CP/CMS and History of CP/CMS. VM/370 was a reimplementation of CP/CMS, made available in 1972 as part of IBM's "System/370 Advanced Function" announcement (which added virtual memory hardware and operating systems to the System/370 series). Early releases of VM continued in open source, and today are considered to be in the public domain. This policy ended in the mid 80s, when VM became a "For-charge Licensed System Product".
VM remained an important platform within IBM, used for operating system development and time-sharing use; but for customers it remained IBM's "other operating system". The OS and DOS families remained IBM's strategic products, and customers were not encouraged to run VM. Those that did formed close working relationships, continuing the community-support model of early CP/CMS users. In the meantime, the system struggled with political infighting within IBM over what resources should be available to the project, as compared with other IBM efforts. A basic "problem" with the system was seen at IBM's field sales level: VM/CMS demonstrably reduced the amount of hardware needed to support a given number of time-sharing users. IBM was, after all, in the business of selling computer systems.
VM's role changed within IBM when hardware evolution led to significant changes in processor architecture. Backward compatibility remained a cornerstone of the IBM mainframe family, which still used the basic instruction set introduced with the original System/360; but the need for efficient use of the 64-bit zSeries made the VM approach much more attractive. VM was also necessary for mainframe AIX and Linux use, platforms that were to become increasingly important. The current z/VM platform has finally achieved the recognition within IBM that VM users long felt it deserved. Some z/VM sites run thousands of simultaneous virtual machine users on a single system.
IBM and third parties have offered many applications and tools that run under VM. Examples include RAMIS, FOCUS, SPSS, NOMAD, DB2, REXX, RACF, and OfficeVision. Current VM offerings run the gamut of mainframe applications, including HTTP servers, database managers, analysis tools, engineering packages, and financial systems.
[edit] VM trivia
- VM teddy bear: In the early 80s, the VM group within SHARE (the IBM user group) sought a mascot or logo for the community to adopt. This was in part a response to IBM's MVS users selecting the turkey as a mascot (hilariously chosen, according to legend, by the MVS Performance Group in the early days of MVS, when its performance was...a sore topic). In 1983, the teddy bear became VM's de facto mascot at SHARE 60, when teddy bear stickers were attached to the nametags of "cuddlier oldtimers" to flag them for newcomers as "friendly if approached." The bears were a hit and soon appeared widely. Bears were awarded to inductees of the "Order of the Knights of VM," individuals who made "useful contributions" to the community.<ref>Varian, op. cit., p. 2 – the teddy bear story</ref><ref>ppewww.ph.gla.ac.uk – another version of the bear origin story, by physicist Alan Flavell, with an image</ref> See the references section for links to bear images.<ref>www.vm.ibm.com – VM bear images on an IBM site, contributed by VM developer Pam Christina</ref>
[edit] References
VM sources (also see CP/CMS sources below)
- Bob DuCharme, Operating Systems Handbook, Part 5: VM/CMS (available online at www.snee.com)
– a fairly detailed user's guide to VM/CMS
External VM links
- www-03.ibm.com – IBM: z/VM manuals
Citations <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-490, available on-line at research.ibm.com
– [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-9061, 1977; available online at www.princeton.edu/~melinda
– [The outstanding source for CP/CMS and VM history.]
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)
– [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)
Additional on-line CP/CMS resources
- febcm.club.fr – Information Technology Timeline, 1964-1974
- www.multicians.org – Tom Van Vleek'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"
[edit] Family tree
| CTSS > | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Major IBM time-sharing systems (plus successors) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| CP-40/CMS → CP[-67]/CMS | → VM/370 → VM/XA versions → VM/ESA → z/VM | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| → VP/CSS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > CP/M | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > MS-DOS >> OS/2 >> Windows | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| >> x86 virtualization | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TSS/360 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| OS/MVT-TSO → OS/VS2-TSO → MVS-TSO → z/OS-TSO | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| The MULTICS/UNIX family | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MULTICS >> UNIX family >> Linux | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Major DEC time-sharing systems | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TOPS-10 > TENEX >> TOPS-20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| OS/8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| RSTS/E | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| RSX-11M | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| VAX/VMS → VMS → OpenVMS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Other influential early time-sharing/interactive environments | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| APL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| LISP → InterLISP | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Smalltalk | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| KRONOS → NOS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This is a simplified framework providing links to major time-sharing systems. Many influences and systems are not shown. See specific articles for details on relationships. Dates indicate the period of production use. [Further entries, research, dates, and citations are pending; please contribute.]
Alphabetical listing of above links:
- APL ("A Programming Language," also "Iverson's Language": ??-present), a mathematically-oriented language and interactive environment, noted for incredible terseness and powerful set processing operators
- CP-40/CMS (1967): Experimental system built at IBM's Cambridge Scientific Center, and the first implementation of full virtualization
- CP/CMS (1966-??): Influential precursor to IBM's VM series, widely distributed as open source
- CP/M (??-??): A widely used pre-MS-DOS microcomputer system, inspired by CP/CMS
- CTSS (1961-1973): Grandfather of time-sharing systems, built at MIT
- Linux (??-present): Open-source operating system inspired by UNIX, dominating current open source activities
- LISP systems (1962?-present), an important platform used to build many interactive environments
- Microsoft Windows (??-??): Microsoft's ubiquitous GUI operating system, successor to MS-DOS but also incorporating much of OS/2
- MS-DOS (??-present): Microsoft's ubiquitous command-line operating system, delivered as PC-DOS on IBM PC computers
- MULTICS (1969-2000): Rich, important system built by MIT's Project MAC
- MVS/TSO (??-??): The most widely-used version of TSO
- NOS (??-??), Control Data Corporation's ubiquitous operating system
- OS/2 (??-present): Joint IBM/Microsoft effort, now moribund, strongly influenced by VMS
- OS/8 (??-??): PDP-8 operating system from DEC
- RSTS/E (??-??): Major PDP-11 operating system from DEC
- RSX-11M (??-??): Major PDP-11 operating system from DEC
- z/OS-TSO (??-??): The current implementation of TSO
- Smalltalk (1972-present), a seminal system for experimental programming built at Xerox PARC, responsible for creating and developing many modern user interface concepts
- TENEX (??-??): Influential system built by Bolt Beranek and Newman, widely used at research and government sites
- TOPS-10 (??-??): DEC's PDP-10 operating system
- TOPS-20 (??-??): DEC's popular operating system for the DECsystem 20 family; owed more to TENEX than to TOPS-10
- TSS/360 (1967-1971): IBM's original time-sharing system, built for the S/360-67; not a success
- UNIX and derivative systems (1969-present): Originally built at Bell Labs; ultimately came to dominate operating system thought in both proprietary and open-source descendents
- VM/370 (1972-1988): IBM's proprietary reimplementation of CP/CMS
- VM/ESA (1988-2000): Widely-used version of VM
- VMS and OpenVMS (??-present): DEC's popular operating system – originally VAX/VMS for VAX hardware, but subsequently also ported to Itanium and Alpha hardware
- VP/CSS (1968-1986?): A proprietary fork of CP/CMS developed by time-sharing vendor National CSS
- x86 virtualization (??-present): Current work on virtualization of the x86 family, inspired by concepts from CP/CMS
- z/VM (2000-present): IBM's latest incarnation of the CP/CMS/VM system

