Jump to content

VM (operating system): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
VM versions; scare quotes; mainframe; SMSG
Citation bot (talk | contribs)
Added date. | Use this bot. Report bugs. | Suggested by Abductive | Category:Wikipedia introduction cleanup from September 2024 | #UCB_Category 225/251
 
(40 intermediate revisions by 25 users not shown)
Line 1: Line 1:
{{short description|Family of IBM operating systems}}
{{short description|Family of IBM operating systems}}
{{tooshort|date=September 2024}}
{{see also|CP/CMS|History of CP/CMS}}
{{Citation style|date=May 2012}}
{{Infobox OS
{{Infobox OS
| name = z/VM
| name = z/VM
| logo = VM mascot - teddy bear.png
| logo = VM mascot - teddy bear.png
| logo size = 64px
| logo size = 64px
| screenshot =
| screenshot =
| caption = Teddy bear – VM's mascot since 1983.
| caption = Teddy bear – VM's mascot since 1983.
| developer = [[IBM]]
| developer = [[IBM]]
| source_model = 1972–1986 [[Open-source software|Open source]], 1977–present [[Closed source]]
| source_model = 1972–1986 [[Open-source software|Open source]], 1977–present [[Closed source]]
| kernel_type =
| kernel_type =
| supported_platforms = [[System/370]], [[System/390]], [[zSeries]], [[IBM zEnterprise System]]
| supported_platforms = [[System/370]], [[System/390]], [[zSeries]], [[IBM zEnterprise System]]
| ui =
| ui =
| family = VM family
| family = VM family
| released = {{Start date and age|1972}}
| released = {{Start date and age|1972}}
| latest_release_version = IBM z/VM V7.2 <!-- If you update this, don't forget to update [[Comparison of operating systems]]-->
| latest_release_version = IBM z/VM V7.3 <!-- If you update this, don't forget to update [[Comparison of operating systems]]-->
| latest_release_date = {{Start date and age|2020|09|16}}
| latest_release_date = {{Start date and age|2022|09|16}}
| latest_test_version =
| latest_test_version =
| latest_test_date =
| latest_test_date =
| marketing_target = [[IBM mainframe]] computers
| marketing_target = [[IBM mainframe]] computers
| programmed_in =
| programmed_in =
| prog_language =
| prog_language =
| language = [[English language|English]]
| language = [[English language|English]]
| updatemodel =
| updatemodel =
| package_manager =
| package_manager =
| working_state = Current
| working_state = Current
| license = 1972–1981 [[Public domain]], 1976–present [[Proprietary software|Proprietary]]
| license = 1972–1981 [[Public domain]], 1976–present [[Proprietary software|Proprietary]]
Line 30: Line 29:
}}
}}
{{History of IBM mainframe operating systems|vm}}
{{History of IBM mainframe operating systems|vm}}
[[File:VM370 Rel 6 default login screen.png|thumb|The default login screen on VM/370 Release 6.]]
[[File:VM370 Rel 6 default login screen.png|thumb|The default login screen on VM/370 Release 6]]

'''VM''' (often: '''VM/CMS''') is a family of [[IBM]] [[virtual machine]] [[operating system]]s used on [[IBM mainframe]]s [[System/370]], [[System/390]], [[zSeries]], [[System z]] and compatible systems, including the [[Hercules (emulator)|Hercules emulator]] for personal computers.
'''VM''' (often: '''VM/CMS''') is a family of [[IBM]] [[virtual machine]] [[operating system]]s used on [[IBM mainframe]]s [[System/370]], [[System/390]], [[zSeries]], [[System z]] and compatible systems, including the [[Hercules (emulator)|Hercules emulator]] for personal computers.


== Design ==
The following versions are known:


The heart of the VM architecture is the ''Control Program'' or [[hypervisor]] abbreviated CP, VM-CP and sometimes, ambiguously, VM. It runs on the physical hardware, and creates the [[virtual machine]] environment. VM-CP provides [[full virtualization]] of the physical machine – including all I/O and other privileged operations. 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. VM-CP began life as CP-370, a reimplementation of [[CP-67]], itself a reimplementation of [[IBM CP-40|CP-40]].
;Virtual Machine Facility/370
:VM/370, released in 1972. is a [[System/370]] reimplementation of earlier [[CP/CMS]] operating system.


Running within each virtual machine is another operating system, a ''[[guest operating system]]''. This might be:
;VM/370 Basic System Extensions Program Product
:VM/BSE (BSEPP) is an enhancement to VM/370


* CMS ([[Conversational Monitor System]], renamed from the Cambridge Monitor System of [[CP/CMS]]). Most virtual machines run CMS, a lightweight, single-user operating system. Its interactive environment is comparable to that of a single-user PC, including a file system, programming services, device access, and command-line processing. (While an earlier version of CMS was uncharitably described as "[[CP/M]] on a mainframe", the comparison is an anachronism; the author of CP/M, [[Gary Kildall]], was an experienced CMS user.)
;VM/370 System Extensions Program Product
* GCS ([[Group Control System]]), which provides a limited simulation of the MVS API. IBM originally provided GCS in order to run [[VTAM]] without a service [[OS/VS1]] virtual machine and VTAM Communications Network Application (VCNA). RSCS V2 also ran under GCS.
:VM/SE (SEPP) is an enhancement to VM/370 that includes the facilities of VM/BSE
* A mainstream operating system. IBM's mainstream operating systems (e.g., the [[MVS]] and [[VSE (operating system)|DOS/VSE]] families, [[OS/VS1]], [[TSS/370]], or another layer of VM/370 itself (see below)) can be loaded and run without modification. The VM hypervisor treats guest operating systems as application programs with exceptional privileges – it prevents them from directly using privileged instructions (those which would let applications take over the whole system or significant parts of it), but simulates privileged instructions on their behalf. Most mainframe operating systems terminate a normal application which tries to usurp the operating system's privileges. The VM hypervisor can simulate several types of console terminals for the guest operating system, such as the hardcopy line-mode 3215, the graphical [[IBM 3270|3270]] family, and the integrated console on newer System/390 and System Z machines. Other users can then access running virtual machines using the DIAL command at the logon screen, which will connect their terminal to the first available emulated 3270 device, or the first available 2703 device if the user is DIALing from a typewriter terminal.
* Another copy of VM. A ''second level'' instance of VM can be fully virtualized inside a virtual machine. This is how VM development and testing is done (a second-level VM can potentially implement a ''different'' virtualization of the hardware). This technique was used to develop S/370 software before S/370 hardware was available, and it has continued to play a role in new hardware development at IBM. The literature cites practical examples of virtualization ''five levels deep''.<ref>{{cite web|title=VM AND THE VM COMMUNITY: Past, Present, and Future|first=Melinda|last=Varian|page=55|date=April 1991|url=http://www.leeandmelindavarian.com/Melinda/neuvm.pdf|access-date=June 9, 2022|archive-date=August 23, 2022|archive-url=https://web.archive.org/web/20220823152149/http://www.leeandmelindavarian.com/Melinda/neuvm.pdf|url-status=live}}</ref> Levels of VM below the top are also treated as applications but with exceptional privileges.
* A copy of the mainframe version of [[IBM AIX|AIX]] or [[Linux]]. In the mainframe environment, these operating systems often run under VM, and are handled like other guest operating systems. (They can also run as 'native' operating systems on the bare hardware.) There was also the short-lived IX/370, as well as S/370 and S/390 versions of AIX (AIX/370 and AIX/ESA).
* A specialized VM subsystem. Several non-CMS systems run within VM-CP virtual machines, providing services to CMS users such as spooling, interprocess communications, specialized device support, and networking. They operate behind the scenes, extending the services available to CMS without adding to the VM-CP control program. By running in separate virtual machines, they receive the same security and reliability protections as other VM users. Examples include:
** [[RSCS]] (Remote Spooling and Communication Subsystem, aka VNET) – communication and information transfer facilities between virtual machines and other systems<ref>Creasy, ''op. cit., p.'' 483 — role of RSCS.</ref>
** [[RACF]] (Resource Access Control Facility) — a security system
** Shared File System (SFS), which organizes shared files in a directory tree (the servers are commonly named "VMSERVx"
** [[VTAM]] (Virtual Telecommunications Access Method) – a facility that provides support for a [[Systems Network Architecture]] network
** PVM (VM/Pass-Through Facility) – a facility that provides remote access to other VM systems
** TCPIP, SMTP, FTPSERVE, PORTMAP, VMNFS – a set of service machines that provide [[TCP/IP]] networking to VM/CMS
** Db2 Server for VM – a SQL database system, the servers are often named similarly to "SQLMACH" and "SQLMSTR"
** DIRMAINT – A simplified user directory management system (the directory is a listing of every account on the system, including virtual hardware configuration, user passwords, and minidisks).
** MUMPS/VM — an implementation of the [[MUMPS]] database and programming language which could run as guest on VM/370.<ref>{{cite news|title=Two versions of MUMPS out|url=https://books.google.com/books?id=7RERQMhC7cYC&pg=PP23|date=1987-11-30|newspaper=Computerworld|volume=XXI|issue=48|access-date=2022-07-09|archive-date=March 6, 2023|archive-url=https://web.archive.org/web/20230306013159/https://books.google.com/books?id=7RERQMhC7cYC&pg=PP23|url-status=live}}</ref> MUMPS/VM was introduced in 1987 and discontinued in 1991.<ref>{{cite web|url=https://www.vm.ibm.com/techinfo/lpmigr/vmlp610.pdf|title=Licensed Products Migration Matrix for z/VM|date=2009-12-02|publisher=IBM|access-date=2022-07-09|archive-date=August 10, 2022|archive-url=https://web.archive.org/web/20220810221151/https://www.vm.ibm.com/techinfo/lpmigr/vmlp610.pdf|url-status=live}}</ref>
* A user-written or modified operating system, such as [[National CSS]]'s [[VP/CSS|CSS]] or [[Boston University]]'s [[VPS/VM]].


== Versions ==
;Virtual Machine/System Product
:VM/SP, a milestone version,<ref>{{cite web
| title = The Evolution of IBM Mainframes and VM
| last = Elliott
| first = Jim
| date = 2004-08-17
| url = http://www.linuxvm.org/Present/SHARE103/S9140jea.pdf
| publisher = SHARE Session 9140
| website = Linux for S/390 Linux for Big Iron
| access-date = 2007-10-21
}}
</ref>, replaces VM/370, VM/BSE and VM/SE. Release 1 added [[EXEC2]] and [[XEDIT]] System Product Editor; Release 3 added [[REXX]].
;Virtual Machine/System Product High Performance Option <ref>{{cite manual
| title = VM/SYSTEM PRODUCT HIGH PERFORMANCE OPTION ANNOUNCED
| id = ZP81-0805
| date = October 21, 1981
| url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/5/877/ENUSZP81-0805/index.html&request_locale=en
| work = Announcement Letters
| publisher = IBM
}}
</ref>
:VM/SP HPO adds additional device support and functionality to VM/SP
;Virtual Machine/Extended Architecture Migration Aid <ref>{{cite manual
| title = VIRTUAL MACHINE/EXTENDED ARCHITECTURE MIGRATION AID
| id = ZP81-0811
| date = October 21, 1981
| url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/1/877/ENUSZP81-0811/index.html&request_locale=en
| work = Announcement Letters
| publisher = IBM
}}
</ref>
: VM/XA MA is inteended to ease the migration from MVS/370 to MVS/XA by allowing both to run concurrently on the same processor complex.
;Virtual Machine/Extended Architecture System Facility <ref>{{cite manual
| title = VIRTUAL MACHINE/EXTENDED ARCHITECTURE (VM/XA) SYSTEMS FACILITY
| id = 285-044
| date = February 12, 1985
| url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/4/897/ENUS285-044/index.html
| work = Announcement Letters
| publisher = IBM
}}
</ref>
: VM/XA SF is an upgraded VM/XA MA with improved functionality and preformance.
;Virtual Machine/Extended Architecture System Product <ref>{{cite manual
| title = VIRTUAL MACHINE/EXTENDED ARCHITECTURE SYSTEM PRODUCT (VM/XA SP) RELEASE 1 RELEASE 1
| id = 287-239
| date = June 11, 1987
| url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/9/897/ENUS287-239/index.html
| work = Announcement Letters
| publisher = IBM
}}
</ref>
: VM/XA SF is an upgraded VM/XA MA with improved functionality and performance, offered as a replacement for VM/SP HPO on machines supporting S/370-XA. It includes a version of CMS that can run in either S/370 or S/370-XA mode.
;Virtual Machine/Enterprize Systems Architecture <ref>{{cite manual
| title = VIRTUAL MACHINE/ENTERPRISE SYSTEMS ARCHITECTURE VERSION 1 RELEASE 1.0 AND VERSION 1 RELEASE 1.1
| id = 290-499
| date = September 5, 1990
| url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/9/897/ENUS290-499/index.html
| work = Announcement Letters
| publisher = IBM
}}
</ref>
:VM/ESA provides the facilities of VM/SP, VM/SP HPO and VM/XA SP. VM/ESA can run in S/370, ESA/370 or ESA/390 mode; it does not support S/370 XA mode.
;[[z/VM]]<ref>{{cite manual
| title = z/VM V3R1 Enabled for 64-bit Architecture
| id = 200-358
| date = October 3, 2000
| url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/8/897/ENUS200-358/index.html
| work = Announcement Letters
| publisher = IBM
}}
</ref>


The following versions are known:
:z/VM, the last version still widely used as one of the main [[full virtualization]] solutions for the mainframe market.{{citation needed|date=March 2014}}


; Virtual Machine Facility/370:VM/370, released in 1972, is a [[System/370]] reimplementation of earlier [[CP/CMS]] operating system.
; VM/370 Basic System Extensions Program Product:VM/BSE (BSEPP) is an enhancement to VM/370 that adds support for more devices (such as 3370-type fixed-block-architecture DASD drives), improvements to the CMS environment (such as an improved editor), and some stability enhancements to CP.
; VM/370 System Extensions Program Product:VM/SE (SEPP) is an enhancement to VM/370 that includes the facilities of VM/BSE, as well as a few additional fixes and features.
; Virtual Machine/System Product:VM/SP, a milestone version, replaces VM/370, VM/BSE and VM/SE. Release 1 added [[EXEC2]] and [[XEDIT]] System Product Editor; Release 3 added [[REXX]]; Release 6 added the shared filesystem.<ref>{{cite conference | conference = SHARE August 2004 | title = The Evolution of IBM Mainframes and VM | id = Session 9140 | last = Elliott | first = Jim | date = August 17, 2004 | url = http://www.linuxvm.org/Present/SHARE103/S9140jea.pdf | publisher = [[SHARE (computing)|SHARE]] | website = Linux for S/390 Linux for Big Iron | access-date = October 21, 2007 | archive-date = October 13, 2006 | archive-url = https://web.archive.org/web/20061013194037/http://linuxvm.org/Present/SHARE103/S9140jea.pdf | url-status = live }}</ref>
; Virtual Machine/System Product High Performance Option:VM/SP HPO adds additional device support and functionality to VM/SP, and allows certain S/370 machines that can utilize more than 16 MB of real storage to do so, up to 64 MB. This version was intended for users that would be running multiple S/370 guests at once.<ref name=":0" /><ref>{{cite manual | title = VM/SYSTEM PRODUCT HIGH PERFORMANCE OPTION ANNOUNCED | id = ZP81-0805 | date = October 21, 1981 | url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/5/877/ENUSZP81-0805/index.html&request_locale=en | series = Announcement Letters | publisher = [[IBM]] | access-date = December 17, 2021 | archive-date = December 17, 2021 | archive-url = https://web.archive.org/web/20211217151308/https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/5/877/ENUSZP81-0805/index.html&request_locale=en | url-status = live }}</ref>
; Virtual Machine/Extended Architecture Migration Aid: VM/XA MA is intended to ease the migration from MVS/370 to MVS/XA by allowing both to run concurrently on the same processor complex.<ref>{{cite manual | title = VIRTUAL MACHINE/EXTENDED ARCHITECTURE MIGRATION AID | id = ZP81-0811 | date = October 21, 1981 | url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/1/877/ENUSZP81-0811/index.html&request_locale=en | series = Announcement Letters | publisher = [[IBM]] | access-date = December 17, 2021 | archive-date = December 17, 2021 | archive-url = https://web.archive.org/web/20211217151310/https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/1/877/ENUSZP81-0811/index.html&request_locale=en | url-status = live }}</ref>
; Virtual Machine/Extended Architecture System Facility: VM/XA SF is an upgraded VM/XA MA with improved functionality and performance.<ref>{{cite manual | title = VIRTUAL MACHINE/EXTENDED ARCHITECTURE (VM/XA) SYSTEMS FACILITY | id = 285-044 | date = February 12, 1985 | url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/4/897/ENUS285-044/index.html | series = Announcement Letters | publisher = IBM | access-date = December 17, 2021 | archive-date = December 17, 2021 | archive-url = https://web.archive.org/web/20211217151309/https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/4/897/ENUS285-044/index.html | url-status = live }}</ref>
; Virtual Machine/Extended Architecture System Product: VM/XA SP is an upgraded VM/XA MA with improved functionality and performance, offered as a replacement for VM/SP HPO on machines supporting S/370-XA. It includes a version of CMS that can run in either S/370 or S/370-XA mode.<ref>{{cite manual | title = VIRTUAL MACHINE/EXTENDED ARCHITECTURE SYSTEM PRODUCT (VM/XA SP) RELEASE 1 | id = 287-239 | date = June 11, 1987 | url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/9/897/ENUS287-239/index.html | series = Announcement Letters | publisher = IBM | access-date = December 17, 2021 | archive-date = December 17, 2021 | archive-url = https://web.archive.org/web/20211217151305/https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/9/897/ENUS287-239/index.html | url-status = live }}</ref>
; Virtual Machine/Enterprise Systems Architecture:VM/ESA provides the facilities of VM/SP, VM/SP HPO and VM/XA SP. VM/ESA version 1 can run in S/370, ESA/370 or ESA/390 mode; it does not support S/370 XA mode. Version 2 only runs in ESA/390 mode. The S/370-capable versions of VM/ESA were actually their own separate version from the ESA/390 versions of VM/ESA, as the S/370 versions are based on the older VM/SP HPO codebase, and the ESA/390 versions are based on the newer VM/XA codebase.<ref>{{cite manual | title = VIRTUAL MACHINE/ENTERPRISE SYSTEMS ARCHITECTURE VERSION 1 RELEASE 1.0 AND VERSION 1 RELEASE 1.1 | id = 290-499 | date = September 5, 1990 | url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/9/897/ENUS290-499/index.html | series = Announcement Letters | publisher = IBM | access-date = December 17, 2021 | archive-date = December 17, 2021 | archive-url = https://web.archive.org/web/20211217151305/https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/9/897/ENUS290-499/index.html | url-status = live }}</ref>
; [[z/VM]]:z/VM, the last version still widely used as one of the main [[full virtualization]] solutions for the mainframe market.{{citation needed|date=March 2014}} z/VM 4.4 was the last version that could run in ESA/390 mode; subsequent versions only run in z/Architecture mode.<ref>{{cite manual | title = z/VM V3R1 Enabled for 64-bit Architecture | id = 200-358 | date = October 3, 2000 | url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/8/897/ENUS200-358/index.html | series = Announcement Letters | publisher = IBM | access-date = December 17, 2021 | archive-date = December 17, 2021 | archive-url = https://web.archive.org/web/20211217151307/https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/8/897/ENUS200-358/index.html | url-status = live }}</ref>


The '''CMS''' in the name refers to the Conversational Monitor System, a component of the product that is a single-user operating system that runs in a virtual machine and provides conversational [[time-sharing]] in VM.
The CMS in the name refers to the Conversational Monitor System, a component of the product that is a single-user operating system that runs in a virtual machine and provides conversational [[time-sharing]] in VM.


== Hypervisor interface ==
==Overview==
The heart of the VM architecture is the ''Control Program'' or [[hypervisor]] abbreviated '''CP''', '''VM-CP''' and sometimes, ambiguously, '''VM'''. It runs on the physical hardware, and creates the [[virtual machine]] environment. VM-CP provides [[full virtualization]] of the physical machine – including all I/O and other privileged operations. 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. VM-CP began life as CP-370, a reimplementation of [[CP-67]], itself a reimplementation of [[IBM CP-40|CP-40]].


IBM coined the term ''hypervisor'' for the [[IBM System/360 Model 65|360/65]]<ref>{{cite conference | url = https://www.computer.org/csdl/proceedings/afips/1971/5077/00/50770163.pdf | title = System/370 integrated emulation under OS and DOS | author = Gary R. Allred | page = 164 | quote = The Hypervisor concept was relatively simple. It consisted of an addendum to the emulator program and a hardware modification on a Model 65 having a compatibility feature. The hardware modification divided the Model 65 into partitions, each addressable from 0-n. The program addendum, having overlaid the system Program Status Words (PSW) with its own, became the interrupt handler for the entire system. After determining which partition had initiated the event causing the interrupt, control was transferred accordingly. The Hypervisor required dedicated I/O devices fore each partition and, because of this, the I/O configurations were usually quite large, and, therefore, prohibitive to the majority of uses. | conference = 1971 [[Spring Joint Computer Conference]] | volume = 38 | doi = 10.1109/AFIPS.1971.58 | date = May 1971 | publisher = AFIPS Press | access-date = June 12, 2022 | archive-date = July 25, 2018 | archive-url = https://web.archive.org/web/20180725063513/https://www.computer.org/csdl/proceedings/afips/1971/5077/00/50770163.pdf | url-status = live }}</ref> and later used it for the DIAG handler of CP-67.
Running within each virtual machine is another operating system, a ''[[guest operating system]]''. This might be:
* '''CMS''' ([[Conversational Monitor System]], renamed from the Cambridge Monitor System of [[CP/CMS]]). Most virtual machines run CMS, a lightweight, single-user operating system. Its interactive environment is comparable to that of a single-user PC, including a file system, programming services, device access, and command-line processing. (While an earlier version of CMS was uncharitably described as "[[CP/M]] on a mainframe", the comparison is an anachronism; the author of CP/M, [[Gary Kildall]], was an experienced CMS user.)
* '''GCS''' ([[Group Control System]]), which provides a limited simulation of the MVS API. IBM originally provided GCS in order to run [[VTAM]] without a service [[OS/VS1]] virtual machine and VTAM Communications Network Application (VCNA). RSCS V2 also ran under GCS.
* '''A mainstream operating system.''' IBM's mainstream operating systems (i.e. the [[MVS]], [[VSE (operating system)|DOS/VSE]], or [[TSS/370]] families) can be loaded and run without modification. The VM hypervisor treats guest operating systems as application programs with exceptional privileges – it prevents them from directly using privileged instructions (those which would let applications take over the whole system or significant parts of it), but simulates privileged instructions on their behalf. Most mainframe operating systems terminate a normal application which tries to usurp the operating system's privileges. The VM hypervisor can simulate several types of console terminals for the guest operating system, such as the hardcopy line-mode 3215, the graphical [[IBM 3270|3270]] family, and the integrated console on newer System/390 and System Z machines.
* '''Another copy of VM.''' A ''second level'' instance of VM can be fully virtualized inside a virtual machine. This is how VM development and testing is done (a second-level VM can potentially implement a ''different'' virtualization of the hardware). This technique was used to develop S/370 software before S/370 hardware was available, and it has continued to play a role in new hardware development at IBM. The literature cites practical examples of virtualization ''five levels deep'' (see page 28 of ''VM and the VM Community''). Levels of VM below the top are also treated as applications but with exceptional privileges.
* '''A copy of the mainframe version of [[IBM AIX|AIX]] or [[Linux]].''' In the mainframe environment, these operating systems often run under VM, and are handled like other guest operating systems. (They can also run as 'native' operating systems on the bare hardware.) There was also the short-lived IX/370, as well as S/370 and S/390 versions of AIX (AIX/370 and AIX/ESA).
* '''A specialized VM subsystem.''' Several non-CMS systems run within VM-CP virtual machines, providing services to CMS users such as spooling, interprocess communications, specialized device support, and networking. They operate behind the scenes, extending the services available to CMS without adding to the VM-CP control program. By running in separate virtual machines, they receive the same security and reliability protections as other VM users. Examples include:
** '''[[RSCS]]''' (Remote Spooling and Communication Subsystem, aka VNET) – communication and information transfer facilities between virtual machines and other systems<ref>Creasy, ''op. cit., p.'' 483 — role of RSCS.</ref>
** '''[[RACF]]''' (Resource Access Control Facility) — a security system
** '''Shared File System''' (SFS), which organizes shared files in a directory tree (the servers are commonly named "VMSERVx"
**[[VTAM]] (Virtual Telecommunications Access Method) - a facility that provides support for a [[Systems Network Architecture]] network
**'''PVM''' (VM/Pass-Through Facility) - a facility that provides remote access to other VM systems
**'''TCPIP, SMTP, FTPSERVE, PORTMAP, VMNFS''' - a set of service machines that provide [[TCP/IP]] networking to VM/CMS
**'''Db2 Server for VM''' - a SQL database system, the servers are often named similarly to "SQLMACH" and "SQLMSTR"
**'''DIRMAINT''' - A simplified user directory management system (the directory is a listing of every account on the system, including virtual hardware configuration, user passwords, and minidisks).
* '''A user-written or modified operating system''', such as [[National CSS]]'s [[VP/CSS|CSS]] or [[Boston University]]'s [[VPS/VM]].


The ''Diagnose'' instruction ('83'x—no mnemonic) is a ''privileged instruction'' originally intended by IBM to perform "built-in diagnostic functions, or other model-dependent functions."<ref>{{cite manual |title=IBM System/370 Principles of Operation |date=1987 |page=10-5 |url=http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf |publisher=[[IBM]] |access-date=August 17, 2019 |archive-date=September 29, 2019 |archive-url=https://web.archive.org/web/20190929210055/http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf |url-status=live }}</ref> IBM repurposed DIAG for "communication between a virtual machine and CP."<ref name=SysProg>{{cite manual | title = IBM Virtual Machine Facility/370: System Programmer's Guide | id = GC20-1807-7 | date = Mar 1979 | edition = Eighth | pages = | section = DIAGNOSE Instruction in a Virtual Machine | section-url = http://bitsavers.org/pdf/ibm/370/VM_370/Release_6/GC20-1807-7_VM370_System_Programmers_Guide_Rel_6_4-81.pdf#page=213 | url = http://bitsavers.org/pdf/ibm/370/VM_370/Release_6/GC20-1807-7_VM370_System_Programmers_Guide_Rel_6_4-81.pdf | access-date = August 17, 2019 | ref = SysProg | publisher = IBM | archive-date = April 2, 2020 | archive-url = https://web.archive.org/web/20200402034703/http://bitsavers.org/pdf/ibm/370/VM_370/Release_6/GC20-1807-7_VM370_System_Programmers_Guide_Rel_6_4-81.pdf | url-status = live }}</ref><ref>{{cite manual | title = z/VM Version 7 Release 2 CP Programming Services | id = SC24-6272-04 | date = August 12, 2020 | section = Chapter 1. The DIAGNOSE Instruction in a Virtual Machine | section-url = https://www.vm.ibm.com/library/720pdfs/72627204.pdf#page=49 | page = 3 | quote = In a real processor, the DIAGNOSE instruction performs processor-dependent diagnostic functions. In a virtual machine, you use the DIAGNOSE interface to request that CP perform services for your virtual machine. When your virtual machine attempts to execute a DIAGNOSE instruction, control is returned to CP. CP uses information provided in the code portion of the instruction to determine what service it should perform. Once this service is provided, control returns to the virtual machine. | url = https://www.vm.ibm.com/library/720pdfs/72627204.pdf | publisher = IBM | access-date = May 9, 2021 | archive-date = April 30, 2021 | archive-url = https://web.archive.org/web/20210430064359/https://www.vm.ibm.com/library/720pdfs/72627204.pdf | url-status = live }}</ref> The instruction contains two four-bit register numbers, called Rx and Ry, which can "contain operand storage addresses or return codes passed to the DIAGNOSE interface," and a two-byte code "that CP uses to determine what DIAGNOSE function to perform."<ref name=SysProg /> The available diagnose functions include:
==Hypervisor interface==
IBM coined the term ''hypervisor'' for the [[IBM System/360 Model 65|360/65]]<ref>{{cite proceedings|url=https://www.computer.org/csdl/proceedings/afips/1971/5077/00/50770163.pdf|title=System/370 integrated emulation under OS and DOS|author=Gary R. Allred|conference=[[Spring Joint Computer Conference]]|year=1971}}</ref> and later used it for the DIAG handler of CP-67.


The ''Diagnose'' instruction ('83'x—no mnemonic) is a ''privileged instruction'' originally intended by IBM to perform "built-in diagnostic functions, or other model-dependent functions."<ref>{{cite book |last1=IBM Corporation |title=IBM System/370 Principles of Operation |date=1987 |page=10-5 |url=http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf |access-date=Aug 17, 2019}}</ref> IBM repurposed DIAG for "communication between a virtual machine and CP."<ref name=SysProg>{{cite manual
| title = IBM Virtual Machine Facility/370: System Programmer's Guide
| id = GC20-1807-7
| date = Mar 1979
| edition = Eighth
| pages =
| section = DIAGNOSE Instruction in a Virtual Machine
| section-url = http://bitsavers.org/pdf/ibm/370/VM_370/Release_6/GC20-1807-7_VM370_System_Programmers_Guide_Rel_6_4-81.pdf#page=213
| url = http://bitsavers.org/pdf/ibm/370/VM_370/Release_6/GC20-1807-7_VM370_System_Programmers_Guide_Rel_6_4-81.pdf
| access-date = Aug 17, 2019
| ref = SysProg
| publisher = IBM
}}
</ref><ref>{{cite manual
| title = z/VM Version 7 Release 2 CP Programming Services
| id = SC24-6272-04
| date = 2020-08-12
| section = Chapter 1. The DIAGNOSE Instruction in a Virtual Machine
| section-url = https://www.vm.ibm.com/library/720pdfs/72627204.pdf#page=49
| page = 3
| quote = In a real processor, the DIAGNOSE instruction performs processor-dependent diagnostic functions. In a virtual machine, you use the DIAGNOSE interface to request that CP perform services for your virtual machine. When your virtual machine attempts to execute a DIAGNOSE instruction, control is returned to CP. CP uses information provided in the code portion of the instruction to determine what service it should perform. Once this service is provided, control returns to the virtual machine.
| url = https://www.vm.ibm.com/library/720pdfs/72627204.pdf
| publisher = IBM
}}
</ref> The instruction contains two four-bit register numbers, called Rx and Ry, which can "contain operand storage addresses or return codes passed to the DIAGNOSE interface," and a two-byte code "that CP uses to determine what DIAGNOSE function to perform."<ref name=SysProg /> A few of the available diagnose functions are listed below.
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 192: Line 102:
|}
|}


===CMS use of DIAGNOSE===
At one time, CMS was capable of running on a [[bare machine]], as a true operating system (though such a configuration would be unusual). It now runs only as a guest OS under VM. This is because CMS relies on a [[hypervisor]] interface to VM-CP, to perform file system operations and request other VM services. This [[paravirtualization]] interface:
At one time, CMS was capable of running on a [[bare machine]], as a true operating system (though such a configuration would be unusual). It now runs only as a guest OS under VM. This is because CMS relies on a [[hypervisor]] interface to VM-CP, to perform file system operations and request other VM services. This [[paravirtualization]] interface:

* Provides a fast path to VM-CP, to avoid the overhead of full simulation.
* Provides a fast path to VM-CP, to avoid the overhead of full simulation.
* Was first developed as a performance improvement for [[CP/CMS]] release 2.1, an important early milestone in CP's efficiency.
* Was first developed as a performance improvement for [[CP/CMS]] release 2.1, an important early milestone in CP's efficiency.
* Uses a non-virtualized, model-dependent machine instruction as a signal between CMS and CP: '''DIAG''' (diagnose).
* Uses a non-virtualized, model-dependent machine instruction as a signal between CMS and CP: DIAG (diagnose).


==Minidisks==
== Minidisks ==
[[File:VM370 CMS 6.0.png|thumb|CMS starting up after the user MAINT (system administrator) has logged in.]]
[[File:VM370 CMS 6.0.png|thumb|CMS starting up after the user MAINT (system administrator) has logged in]]
[[File:VM370 Rel 6 editor.png|thumb|The CMS editor on VM/370, editing a COBOL program source file]]
CMS and other operating systems often have DASD requirements much smaller than the sizes of actual volumes. For this reason CP allows an installation to define virtual disks of any size up to the capacity of the device. For CKD volumes, a minidisk must be defined in full cylinders. A minidisk has the same attributes as the underlying real disk, except that it is usually smaller and the beginning of each minidisk is mapped to cylinder or block 0. The minidisk may be{{efn|CMS can use DIAG for I/O on CMS file systems.}} accessed using the same [[channel program]]s as the real disk.

CMS and other operating systems often have DASD requirements much smaller than the sizes of actual volumes. For this reason CP allows an installation to define virtual disks of any size up to the capacity of the device. For CKD volumes, a minidisk must be defined in full cylinders. A minidisk has the same attributes as the underlying real disk, except that it is usually smaller and the beginning of each minidisk is mapped to cylinder or block 0. The minidisk may be{{efn|CMS can use DIAG for I/O on CMS file systems.}} accessed using the same [[channel program]]s as the real disk.


A minidisk that has been initialized with a CMS file system is referred to as a CMS minidisk, although CMS is not the only system that can use them.
A minidisk that has been initialized with a CMS file system is referred to as a CMS minidisk, although CMS is not the only system that can use them.


It is common practice to define full volume minidisks for use by such guest operating systems as [[z/OS]] instead of using <code>DEDICATE</code> to assign the volume to a specific virtual machine. In addition, "full-pack links" are often defined for every DASD on the system, and are owned by the MAINT userid. These are used for backing up the system using the DASD Dump/Restore program, where the entire contents of a DASD are written to tape (or another DASD) exactly.
It is common practice to define full volume minidisks for use by such guest operating systems as [[z/OS]] instead of using <code>DEDICATE</code> to assign the volume to a specific virtual machine. In addition, "full-pack links" are often defined for every DASD on the system, and are owned by the MAINT userid. These are used for backing up the system using the DASD Dump/Restore program, where the entire contents of a DASD are written to tape (or another DASD) exactly.
[[File:VM370 Rel 6 editor.png|thumb|The CMS editor on VM/370, editing a COBOL program source file.]]


==Shared File System==
== Shared File System ==
[[File:VM370 Rel 6 COBOL compile.png|thumb|Invoking the System/360 COBOL compiler on VM/370 CMS, then loading and running the program]]
VM/SP Release 6 introduced the Shared File System <ref>http://bitsavers.org/pdf/ibm/370/VM_SP/Release_6_Jul88/SC19-6210-05_VM_SP_Release_6_CMS_Users_Guide_Jul1988.pdf VM/SP R6 CMS User's Guide, see chapter 4 (Using the Shared File System)</ref> which vastly improved CMS file storage capabilities. The CMS minidisk file system does not support directories (folders) at all, however, the SFS does. SFS also introduces more granular security. With CMS minidisks, the system can be configured to allow or deny users read-only or read-write access to a disk, but single files cannot have the same security. SFS alleviates this, and vastly improves performance.

The SFS is provided by service virtual machines. On a modern VM system, there are usually three that are required: VMSERVR, the "recovery machine" that does not actually serve any files; VMSERVS, the server for the VMSYS filepool; and VMSERVU, the server for the VMSYSU (user) filepool. <ref>https://www.ibm.com/docs/en/zvm/7.1?topic=overview-file-pool-server-machines File Pool Server Machines</ref> The file pool server machines own several minidisks, usually including a CMS A-disk (virtual device address 191, containing the file pool configuration files), a control disk, a log disk, and any number of data disks that actually store user files.
[[File:VM370 Rel 6 COBOL compile.png|thumb|Invoking the System/360 COBOL compiler on VM/370 CMS, then loading and running the program.]]
With modern VM versions, most of the system can be installed to SFS, with the few remaining minidisks being the ones absolutely necessary for the system to start up, and the ones being owned by the filepool server machines.
With modern VM versions, most of the system can be installed to SFS, with the few remaining minidisks being the ones absolutely necessary for the system to start up, and the ones being owned by the filepool server machines.
[[File:VM370 Rel 6 starting up DOSVS Rel 34.png|thumb|An example of a non-CMS guest operating system running under VM/370: DOS/VS Release 34. The DOS/VS system is now prompting the operator to enter a supervisor name to continue loading.]]
[[File:VM370 Rel 6 starting up DOSVS Rel 34.png|thumb|An example of a non-CMS guest operating system running under VM/370: DOS/VS Release 34. The DOS/VS system is now prompting the operator to enter a supervisor name to continue loading]]

If a user account is configured to only use SFS (and does not own any minidisks), the user's A-disk will be <code>FILEPOOL:USERID.</code> and any subsequent directories that the user creates will be <code>FILEPOOL:USERID.DIR1.DIR2.DIR3</code> where the equivalent UNIX file path is <code>/dir1/dir2/dir3</code>.
VM/SP Release 6 introduced the Shared File System <ref>{{cite manual|url=http://bitsavers.org/pdf/ibm/370/VM_SP/Release_6_Jul88/SC19-6210-05_VM_SP_Release_6_CMS_Users_Guide_Jul1988.pdf|title=VIrtual Machine/System Product CMS User's Guide Release 6|at=Chapter 4 (Using the Shared File System)|date=July 1988|id=SC19-6210-05|publisher=[[IBM]]|access-date=August 19, 2021|archive-date=June 17, 2022|archive-url=https://web.archive.org/web/20220617123632/http://bitsavers.org/pdf/ibm/370/VM_SP/Release_6_Jul88/SC19-6210-05_VM_SP_Release_6_CMS_Users_Guide_Jul1988.pdf|url-status=live}}</ref> which vastly improved CMS file storage capabilities. The CMS minidisk file system does not support directories (folders) at all, however, the SFS does. SFS also introduces more granular security. With CMS minidisks, the system can be configured to allow or deny users read-only or read-write access to a disk, but single files cannot have the same security. SFS alleviates this, and vastly improves performance.

The SFS is provided by service virtual machines. On a modern VM system, there are usually three that are required: VMSERVR, the "recovery machine" that does not actually serve any files; VMSERVS, the server for the VMSYS filepool; and VMSERVU, the server for the VMSYSU (user) filepool.<ref>{{cite manual | title = CMS File Pool Planning, Administration, and Operation | id = SC24-6261-02 | date = November 12, 2021 | url = https://www.vm.ibm.com/library/720pdfs/72626102.pdf | section = File Pool Server Machines | section-url = https://www.vm.ibm.com/library/720pdfs/72626102.pdf#page=18 | pages = 18–23 | series = z/VM 7.2 | access-date = June 10, 2022 | publisher = [[IBM]] | archive-date = October 6, 2022 | archive-url = https://web.archive.org/web/20221006041027/http://www.vm.ibm.com/library/720pdfs/72626102.pdf | url-status = live }}</ref> The file pool server machines own several minidisks, usually including a CMS A-disk (virtual device address 191, containing the file pool configuration files), a control disk, a log disk, and any number of data disks that actually store user files.

If a user account is configured to only use SFS (and does not own any minidisks), the user's A-disk will be <code>FILEPOOL:USERID.</code> and any subsequent directories that the user creates will be <code>FILEPOOL:USERID.DIR1.DIR2.DIR3</code> where the equivalent UNIX file path is <code>/dir1/dir2/dir3</code>. SFS directories can have much more granular access controls when compared to minidisks (which, as mentioned above, can often only have a read password, a write password, and a multi-write password). SFS directories also solve the issues that may arise when two users write to the same CMS minidisk at the same time, which may cause disk corruption (as the CMS VM performing the writes may be unaware that another CMS instance is also writing to the minidisk).

The file pool server machines also serve a closely related filesystem: the Byte File System. BFS is used to store files on a UNIX-style filesystem. Its primary use is for the VM OpenExtensions POSIX environment for CMS. The CMS user virtual machines themselves communicate with the SFS server virtual machines through the IUCV mechanism.<ref>{{Cite web |title=IUCV Overview |url=https://www.ibm.com/docs/en/zvm/7.1?topic=vehicle-iucv-overview |access-date=2022-07-31 |website=www.ibm.com |language=en-us |archive-date=July 31, 2022 |archive-url=https://web.archive.org/web/20220731215201/https://www.ibm.com/docs/en/zvm/7.1?topic=vehicle-iucv-overview |url-status=live }}</ref>


== History ==
The file pool server machines also serve a closely related filesystem: the Byte File System. BFS is used to store files on a UNIX-style filesystem. Its primary use is for the VM OpenExtensions POSIX environment for CMS.
[[File:VM370 Rel 6 OSVS1 IPL.png|thumb|OS/VS1 starting under VM/370 ]]
[[File:VM370 DASD Dump Restore.png|thumb|Using DASD Dump/Restore (DDR) to back up a VM/370 system]]


==History==
The early history of VM is described in the articles [[CP/CMS]] and [[History of CP/CMS]]. VM/370 is a reimplementation of CP/CMS, and was 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 through VM/370 Release 6 continued in [[Open-source software|open source]] through 1981, and today are considered to be in the [[public domain]]. This policy ended in 1977 with the chargeable VM/SE and VM/BSE upgrades and in 1980 with VM/System Product (VM/SP). However, IBM continued providing updates in source form for existing code for many years, although the upgrades to all but the free base required a license. As with CP-67, privileged instructions in a virtual machine cause a program interrupt, and CP simulated the behavior of the privileged instruction.
The early history of VM is described in the articles [[CP/CMS]] and [[History of CP/CMS]]. VM/370 is a reimplementation of CP/CMS, and was 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 through VM/370 Release 6 continued in [[Open-source software|open source]] through 1981, and today are considered to be in the [[public domain]]. This policy ended in 1977 with the chargeable VM/SE and VM/BSE upgrades and in 1980 with VM/System Product (VM/SP). However, IBM continued providing updates in source form for existing code for many years, although the upgrades to all but the free base required a license. As with CP-67, privileged instructions in a virtual machine cause a program interrupt, and CP simulated the behavior of the privileged instruction.
[[File:VM370 Rel 6 OSVS1 IPL.png|thumb|OS/VS1 starting under VM/370. ]]
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 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.


Melinda Varian provides this fascinating quote, illustrating VM's unexpected success:
Melinda Varian provides this fascinating quote, illustrating VM's unexpected success:<ref>Varian, ''op. cit., p.'' 30 – extent of VM use; more VM licenses than MVS licenses</ref>


<blockquote>
<blockquote>The marketing forecasts for VM/370 predicted that no more than one 168 would ever run VM during the entire life of the product. In fact, the first 168 delivered to a customer ran only CP and CMS. Ten years later, ten percent of the large processors being shipped from Poughkeepsie would be destined to run VM, as would a very substantial portion of the mid-range machines that were built in Endicott. Before fifteen years had passed, there would be more VM licenses than MVS licenses.<ref>Varian, ''op. cit., p.'' 30 – extent of VM use; more VM licenses than MVS licenses</ref></blockquote>
The marketing forecasts for VM/370 predicted that no more than one 168 would ever run VM during the entire life of the product. In fact, the first 168 delivered to a customer ran only CP and CMS. Ten years later, ten percent of the large processors being shipped from Poughkeepsie would be destined to run VM, as would a very substantial portion of the mid-range machines that were built in Endicott. Before fifteen years had passed, there would be more VM licenses than MVS licenses.
[[File:VM370 DASD Dump Restore.png|thumb|Using DASD Dump/Restore (DDR) to back up a VM/370 system.]]
</blockquote>
A [[IBM PC DOS|PC DOS]] version that runs CMS on the [[XT/370]] (and later on the AT/370) is called VM/PC. VM/PC 1.1 was based on VM/SP release 3. When IBM introduced the P/370 and P/390 processor cards, a PC could now run full VM systems, including VM/370, VM/SP, VM/XA, and VM/ESA (these cards were fullly compatible with S/370 and S/390 mainframes, and could run any S/370 operating system from the 31-bit era, e.g., MVS/ESA, VSE/ESA).


A [[IBM PC DOS|PC DOS]] version that runs CMS on the [[XT/370]] (and later on the AT/370) is called VM/PC. VM/PC 1.1 was based on VM/SP release 3. When IBM introduced the P/370 and P/390 processor cards, a PC could now run full VM systems, including VM/370, VM/SP, VM/XA, and VM/ESA (these cards were fully compatible with S/370 and S/390 mainframes, and could run any S/370 operating system from the 31-bit era, e.g., MVS/ESA, VSE/ESA).
In addition to the base VM/SP releases, IBM also introduced VM/SP HPO (High Performance Option). This add-on (which is installed over the base VM/SP release) improved several key system facilities, including allowing the usage of more than 16 MB of storage (RAM) on supported models (such as the IBM 4381). With VM/SP HPO installed, the new limit was 64 MB; however, a single user (or virtual machine) could not use more than 16 MB. The functions of the spool filesystem were also improved, allowing 9900 spool files to be created per user, rather than 9900 for the whole system. The architecture of the spool filesystem was also enhanced, each spool file now had a unique user ID associated with it, and reader file control blocks were now held in virtual storage. The system could also be configured to deny certain users access to the vector facility (by means of user directory entries). <ref>http://bitsavers.org/pdf/ibm/370/VM_SP/HPO/SC23-0189-3_VM_SP_HPO_Release_5_Guide_Jul1987.pdf, the Virtual Machine/System Product Release 5 Guide</ref>


In addition to the base VM/SP releases, IBM also introduced VM/SP HPO (High Performance Option). This add-on (which is installed over the base VM/SP release) improved several key system facilities, including allowing the usage of more than 16&nbsp;MB of storage (RAM) on supported models (such as the IBM 4381). With VM/SP HPO installed, the new limit was 64&nbsp;MB; however, a single user (or virtual machine) could not use more than 16&nbsp;MB. The functions of the spool filesystem were also improved, allowing 9900 spool files to be created per user, rather than 9900 for the whole system. The architecture of the spool filesystem was also enhanced, each spool file now had a unique user ID associated with it, and reader file control blocks were now held in virtual storage. The system could also be configured to deny certain users access to the vector facility (by means of user directory entries).<ref name=":0">{{cite manual|url=http://bitsavers.org/pdf/ibm/370/VM_SP/HPO/SC23-0189-3_VM_SP_HPO_Release_5_Guide_Jul1987.pdf|title=Virtual Machine/System Product High Performance Option Release 5 Guide|id=SC23-0189-3|date=July 1987|publisher=[[IBM]]|access-date=August 19, 2021|archive-date=June 17, 2022|archive-url=https://web.archive.org/web/20220617123626/http://bitsavers.org/pdf/ibm/370/VM_SP/HPO/SC23-0189-3_VM_SP_HPO_Release_5_Guide_Jul1987.pdf|url-status=live}}</ref>
Releases of VM since VM/SP Release 1 supported multiprocessor systems. System/370 versions of VM (such as VM/SP and VM/SP HPO) supported a maximum of two processors, with the system operating in either UP (uniprocessor) mode, MP (multiprocessor) mode, or AP (attached processor) mode. <ref>http://bitsavers.org/pdf/ibm/370/VM_SP/Release_5_Dec86/SC24-5237-3_VM_SP_Release_5_Installation_Guide_Dec1986.pdf, the VM/SP Release 5 installation guide</ref> AP mode is the same as MP mode, except the second processor lacks I/O capability. System/370-XA releases of VM (such as VM/XA) supported more. System/390 releases (such as VM/ESA) almost removed the limit entirely, and some modern z/VM systems can have as many as 80 processors. <ref>{{Cite web|url=https://www.ibm.com/support/pages/apar/VM66265|title = Vm66265: Z/Vm Support for 80 Logical Processors|date = 27 August 2020}}</ref> The per-VM limit for defined processors is 64.

Releases of VM since VM/SP Release 1 supported multiprocessor systems. System/370 versions of VM (such as VM/SP and VM/SP HPO) supported a maximum of two processors, with the system operating in either UP (uniprocessor) mode, MP (multiprocessor) mode, or AP (attached processor) mode.<ref>{{cite manual|url=http://bitsavers.org/pdf/ibm/370/VM_SP/Release_5_Dec86/SC24-5237-3_VM_SP_Release_5_Installation_Guide_Dec1986.pdf|title=Virtual Machine/System Product Installation Guide Release 5|id=SC24-5237-3|date=December 1986|publisher=[[IBM]]|access-date=August 19, 2021|archive-date=June 17, 2022|archive-url=https://web.archive.org/web/20220617123631/http://bitsavers.org/pdf/ibm/370/VM_SP/Release_5_Dec86/SC24-5237-3_VM_SP_Release_5_Installation_Guide_Dec1986.pdf|url-status=live}}</ref> AP mode is the same as MP mode, except the second processor lacks I/O capability. System/370-XA releases of VM (such as VM/XA) supported more. System/390 releases (such as VM/ESA) almost removed the limit entirely, and some modern z/VM systems can have as many as 80 processors.<ref>{{Cite web|url = https://www.ibm.com/support/pages/apar/VM66265|title = Vm66265: Z/Vm Support for 80 Logical Processors|website = [[IBM]]|date = August 27, 2020|access-date = August 19, 2021|archive-date = August 19, 2021|archive-url = https://web.archive.org/web/20210819134033/https://www.ibm.com/support/pages/apar/VM66265|url-status = live}}</ref> The per-VM limit for defined processors is 64.


When IBM introduced the System/370 Extended Architecture on the [[IBM 308X|3081]], customers were faced with the need to run a production MVS/370 system while testing MVS/XA on the same machine. IBM's solution was VM/XA Migration Aid, which used the new Start Interpretive Execution (SIE) instruction to run the virtual machine. SIE automatically handled some privileged instructions and returned to CP for cases that it couldn't handle. The [[PR/SM|Processor Resource/System Manager]] (PR/SM) of the later [[IBM 3090|3090]] also used SIE. There were several VM/XA products before it was eventually supplanted by VM/ESA and z/VM.
When IBM introduced the System/370 Extended Architecture on the [[IBM 308X|3081]], customers were faced with the need to run a production MVS/370 system while testing MVS/XA on the same machine. IBM's solution was VM/XA Migration Aid, which used the new Start Interpretive Execution (SIE) instruction to run the virtual machine. SIE automatically handled some privileged instructions and returned to CP for cases that it couldn't handle. The [[PR/SM|Processor Resource/System Manager]] (PR/SM) of the later [[IBM 3090|3090]] also used SIE. There were several VM/XA products before it was eventually supplanted by VM/ESA and z/VM.


In addition to [[RSCS]] networking, IBM also provided users with [[VTAM]] networking. ACF/VTAM for VM was fully compatible with ACF/VTAM on MVS and VSE. <ref>http://bitsavers.org/pdf/ibm/sna/vtam/LY43-0047-1_VTAM_V3_R3_Reference_Summary_Sep1990.pdf, the ACF/VTAM V3R3 Reference Summary</ref> Like RSCS, VTAM on VM ran under the specialized GCS operating system. However, VM also supported TCP/IP networking. In the late 1980s, IBM produced a TCP/IP stack for VM/SP and VM/XA. <ref>http://bitsavers.org/pdf/ibm/370/9370/GG24-3227-0_IBM_9370_LAN_Vol_2_IEEE_802.3_Support_Apr88.pdf, LAN Support for the IBM 9370, explaining TCP/IP for VM and LAN hardware</ref> The stack supported IPv4 networks, and a variety of network interface systems (such as inter-mainframe channel-to-channel links, or a specialized IBM RT PC that would relay traffic out to a [[Token Ring]] or [[Ethernet]] network). The stack provided support for [[Telnet]] connections, from either simple line-mode terminal emulators or VT100-compatible emulators, or proper IBM 3270 terminal emulators. The stack also provided an FTP server. IBM also produced an optional NFS server for VM; early versions were rather primitive, but modern versions are much more advanced. <ref>https://www.vm.ibm.com/nfs/, z/VM support for NFS</ref>
In addition to [[RSCS]] networking, IBM also provided users with [[VTAM]] networking. ACF/VTAM for VM was fully compatible with ACF/VTAM on MVS and VSE.<ref>{{cite manual|url=http://bitsavers.org/pdf/ibm/sna/vtam/LY43-0047-1_VTAM_V3_R3_Reference_Summary_Sep1990.pdf|title=VTAM Reference Summary Version 3 Release 3 for MVS, VM, and VSE/ESA|id=LY43--0047-1|date=September 1990|publisher=[[IBM]]|access-date=August 19, 2021|archive-date=August 19, 2021|archive-url=https://web.archive.org/web/20210819134043/http://bitsavers.org/pdf/ibm/sna/vtam/LY43-0047-1_VTAM_V3_R3_Reference_Summary_Sep1990.pdf|url-status=live}}</ref> Like RSCS, VTAM on VM ran under the specialized GCS operating system. However, VM also supported TCP/IP networking. In the late 1980s, IBM produced a TCP/IP stack for VM/SP and VM/XA.<ref>{{cite manual|url=http://bitsavers.org/pdf/ibm/370/9370/GG24-3227-0_IBM_9370_LAN_Vol_2_IEEE_802.3_Support_Apr88.pdf|title=IBM 9370 LAN Volume 2 - IEE 802.3 Support|id=GG24-3227-0|date=April 1988|publisher=[[IBM]]|access-date=August 19, 2021|archive-date=August 19, 2021|archive-url=https://web.archive.org/web/20210819134044/http://bitsavers.org/pdf/ibm/370/9370/GG24-3227-0_IBM_9370_LAN_Vol_2_IEEE_802.3_Support_Apr88.pdf|url-status=live}}</ref> The stack supported IPv4 networks, and a variety of network interface systems (such as inter-mainframe channel-to-channel links, or a specialized IBM RT PC that would relay traffic out to a [[Token Ring]] or [[Ethernet]] network). The stack provided support for [[Telnet]] connections, from either simple line-mode terminal emulators or VT100-compatible emulators, or proper IBM 3270 terminal emulators. The stack also provided an FTP server. IBM also produced an optional NFS server for VM; early versions were rather primitive, but modern versions are much more advanced.<ref>{{cite web|url=https://www.vm.ibm.com/nfs/|title=VM TCP/IP NFS Server Support|website=[[IBM]]|date=May 29, 2001 |access-date=August 19, 2021|archive-date=April 26, 2021|archive-url=https://web.archive.org/web/20210426093936/https://www.vm.ibm.com/nfs/|url-status=live}}</ref>


There was also a fourth networking option, known as VM/Pass-Through Facility (or more commonly called, PVM). PVM, like VTAM, allowed for connections to remote VM/CMS systems, as well as other IBM systems. <ref>http://publibfp.dhe.ibm.com/epubs/pdf/c2455571.pdf, VM/Pass-Through Facility Administration and Operation</ref> If two VM/CMS nodes were linked together over a channel-to-channel link or bisync link (possibly using a dialup modem or leased line), a user could remotely connect to either system by entering "DIAL PVM" on the VM login screen, then entering the system node name (or choosing it from a list of available nodes). Alternatively, a user running CMS could use the PASSTHRU program that was installed alongside PVM, allowing for quick access to remote systems without having to log out of the user's session. PVM also supported accessing non-VM systems, by utilizing a 3x74 emulation technique. Later releases of PVM also featured a component that could accept connections from a [[Systems Network Architecture|SNA]] network.
There was also a fourth networking option, known as VM/Pass-Through Facility (or more commonly called, PVM). PVM, like VTAM, allowed for connections to remote VM/CMS systems, as well as other IBM systems.<ref>{{cite manual|url=http://publibfp.dhe.ibm.com/epubs/pdf/c2455571.pdf|title=VM/Pass-Through Facility Administration and Operation Version 2|id=SC24-5557-01|date=June 1993|publisher=[[IBM]]|access-date=August 19, 2021|archive-date=August 19, 2021|archive-url=https://web.archive.org/web/20210819134035/http://publibfp.dhe.ibm.com/epubs/pdf/c2455571.pdf|url-status=dead}}</ref> If two VM/CMS nodes were linked together over a channel-to-channel link or bisync link (possibly using a dialup modem or leased line), a user could remotely connect to either system by entering "DIAL PVM" on the VM login screen, then entering the system node name (or choosing it from a list of available nodes). Alternatively, a user running CMS could use the PASSTHRU program that was installed alongside PVM, allowing for quick access to remote systems without having to log out of the user's session. PVM also supported accessing non-VM systems, by utilizing a 3x74 emulation technique. Later releases of PVM also featured a component that could accept connections from a [[Systems Network Architecture|SNA]] network.


VM was also the cornerstone operating system of [[BITNET]], as the RSCS system available for VM provided a simple network that was easy to implement, and somewhat reliable. VM sites were interlinked by means of an RSCS VM on each VM system communicating with one another, and users could send and receive messages, files, and batch jobs through RSCS. The "NOTE" command used [[XEDIT]] to display a dialog to create an email, from which the user could send it. If the user specified an address in the form of <code>user at node</code>, the email file would be delivered to RSCS, which would then deliver it to the target user on the target system. If the site has TCP/IP installed, RSCS could work with the SMTP service machine to deliver notes (emails) to remote systems, as well as receive them. If the user specified <code>user at some.host.name</code>, the NOTE program would deliver the email to the SMTP service machine, which would then route it out to the destination site on the Internet.
VM was also the cornerstone operating system of [[BITNET]], as the RSCS system available for VM provided a simple network that was easy to implement, and somewhat reliable. VM sites were interlinked by means of an RSCS VM on each VM system communicating with one another, and users could send and receive messages, files, and batch jobs through RSCS. The "NOTE" command used [[XEDIT]] to display a dialog to create an email, from which the user could send it. If the user specified an address in the form of <code>user at node</code>, the email file would be delivered to RSCS, which would then deliver it to the target user on the target system. If the site has TCP/IP installed, RSCS could work with the SMTP service machine to deliver notes (emails) to remote systems, as well as receive them. If the user specified <code>user at some.host.name</code>, the NOTE program would deliver the email to the SMTP service machine, which would then route it out to the destination site on the Internet.


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 uses 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 utilized in data centers converting from DOS/VSE to MVS and is useful when running mainframe [[IBM AIX|AIX]] and [[Linux]], 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. z/VM was first released in October 2000<ref>{{cite web|url=http://www.vm.ibm.com/overview/ |title=IBM: About the z/VM Operating System | website=IBM z/VM virtualization technology|publisher=Vm.ibm.com |access-date=2015-07-02}}</ref> and remains in active use and development.
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 uses 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 utilized in data centers converting from DOS/VSE to MVS and is useful when running mainframe [[IBM AIX|AIX]] and [[Linux]], 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. z/VM was first released in October 2000<ref>{{cite web |url=http://www.vm.ibm.com/overview/ |title=IBM: About the z/VM Operating System |website=IBM z/VM virtualization technology |publisher=Vm.ibm.com |access-date=July 2, 2015 |archive-date=July 3, 2015 |archive-url=https://web.archive.org/web/20150703135421/http://www.vm.ibm.com/overview/ |url-status=live }}</ref> and remains in active use and development.


IBM and third parties have offered many applications and tools that run under VM. Examples include [[RAMIS]], [[FOCUS]], [[SPSS]], [[Nomad software|NOMAD]], [[IBM DB2|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.
IBM and third parties have offered many applications and tools that run under VM. Examples include [[RAMIS]], [[FOCUS]], [[SPSS]], [[Nomad software|NOMAD]], [[IBM DB2|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.


==CP commands==
== CP commands ==

As of release 6, the VM/370 Control Program has a number of commands for General Users, concerned with defining and controlling the user's virtual machine. Lower-case portions of the command are optional<ref>{{cite book |last1=IBM Corporation |title=IBM Virtual Machine Facility/370: CP Command Reference for General Users |date=August 1, 1979 |url=http://bitsavers.org/pdf/ibm/370/VM_370/Release_6/GC20-1820-3_VM370_CP_Command_Reference_for_General_Users_Rel_6_PLC_4_Aug79.pdf |access-date=Aug 15, 2019}}</ref>
As of release 6, the VM/370 Control Program has a number of commands for General Users, concerned with defining and controlling the user's virtual machine. Lower-case portions of the command are optional<ref>{{cite manual |title=IBM Virtual Machine Facility/370: CP Command Reference for General Users |date=August 1, 1979 |publisher=[[IBM]] |url=http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/370/VM/370/Release_6/GC20-1820-3_VM370_CP_Command_Reference_for_General_Users_Rel_6_PLC_4_Aug79.pdf |access-date=August 15, 2019 |archive-date=April 2, 2020 |archive-url=https://web.archive.org/web/20200402035145/http://bitsavers.org/pdf/ibm/370/VM_370/Release_6/GC20-1820-3_VM370_CP_Command_Reference_for_General_Users_Rel_6_PLC_4_Aug79.pdf |url-status=live }}</ref>

{| class="wikitable"
{| class="wikitable"
|-
|-
Line 271: Line 190:
| DETach || Remove a virtual device or channel from the current configuration
| DETach || Remove a virtual device or channel from the current configuration
|-
|-
| DIAL || Connect your terminal to a logged-on multi-access virtual machine
| DIAL || Connect your terminal at the logon screen to a logged-on multi-access virtual machine's simulated 3270 or typewriter terminals
|-
|-
| DISConn|| Disconnect your terminal while allowing your virtual machine to continue running
| DISConn|| Disconnect your terminal while allowing your virtual machine to continue running
Line 291: Line 210:
| LOADVFCB || Specify a ''forms control buffer'' (FCB) for a virtual printer
| LOADVFCB || Specify a ''forms control buffer'' (FCB) for a virtual printer
|-
|-
| LOGoff<br>LOGout || Terminate execution of the current virtual machine and disconnect from the system
| LOGoff<br />LOGout || Terminate execution of the current virtual machine and disconnect from the system
|-
|-
| Logon<br>Login || Sign on to the system
| Logon<br />Login || Sign on to the system
|-
|-
| Message<br>MSG || Send a one-line message to the system operator or another user
| Message<br />MSG || Send a one-line message to the system operator or another user
|-
|-
| NOTReady || Cause a virtual device to appear not ready
| NOTReady || Cause a virtual device to appear not ready
Line 311: Line 230:
| RESET || Clear all pending interrupts for a device
| RESET || Clear all pending interrupts for a device
|-
|-
| REWind || Rewind a real (non virtual) [[magnetic tape]] unit
| REWind || Rewind a real (non virtual) [[magnetic tape]] unit
|-
|-
| SET || Set various attributes for your virtual machine, including messaging or terminal [[function keys]]
| SET || Set various attributes for your virtual machine, including messaging or terminal [[function keys]]
|-
|-
| SLeep || Place your virtual machine in a dormant state indefinitely or for a specified period of time
| SLeep || Place your virtual machine in a dormant state indefinitely or for a specified period of time
|-
|-
| SMsg || Send a one-line special message to another virtual machine
| SMsg || Send a one-line special message to another virtual machine (usually used to control the operation of the virtual machine; commonly used with RSCS)
|-
|-
| SPool|| Set options for a spooled virtual device (printer, reader, or punch)
| SPool|| Set options for a spooled virtual device (printer, reader, or punch)
Line 333: Line 252:
| TRANsfer|| Transfer a spool file to or from another user
| TRANsfer|| Transfer a spool file to or from another user
|-
|-
| VMDUMP || Dump your virtual machine in a format readable by the Interactive Problem Control System (IPCS) [[License Program Product|program product]]
| VMDUMP || Dump your virtual machine in a format readable by the Interactive Problem Control System (IPCS) [[Software as a Product|program product]]
|}
|}


==OpenEdition Extensions==
== OpenEdition extensions ==
Starting with VM/ESA Version 2, IBM introduced ''OpenEdition for VM/ESA'',<ref>{{cite web
| title = Availability: VM/ESA Version 2 Release 1.0 with OpenEdition for VM/ESA
| id = 295-240
| date = June 12, 1995
| url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/0/897/ENUS295-240/index.html
| work = Announcement Letters
| publisher = IBM
}}
</ref> which provided POSIX compatibility for CMS. The stand-out feature was a UNIX shell for CMS. The C compiler for this UNIX environment is provided by either C/370 or C for VM/ESA. Neither the CMS filesystem nor the standard VM Shared File System has any support for UNIX-style files and paths; instead, the Byte File System is used. Once a BFS extent is created in an SFS file pool, the user can mount it using the <code>OPENVM MOUNT /../VMBFS:fileservername:filepoolname /path/to/mount/point</code>. The user must also mount the root filesystem, done with <code>OPENVM MOUNT /../VMBFS:VMSYS:ROOT/ /</code>, a shell can then be started with <code>OPENVM SHELL</code>. Unlike the normal SFS, access to BFS filesystems is controlled by POSIX permissions (with [[chmod]] and [[chown]]).


Starting with VM/ESA Version 2, IBM introduced the chargeable optional feature ''OpenEdition for VM/ESA Shell and Utilities Feature'',<ref>{{cite web | title = Availability: VM/ESA Version 2 Release 1.0 with OpenEdition for VM/ESA | id = 295-240 | date = June 12, 1995 | url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/0/897/ENUS295-240/index.html | series = Announcement Letters | publisher = IBM | access-date = October 28, 2021 | archive-date = October 28, 2021 | archive-url = https://web.archive.org/web/20211028222454/https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/0/897/ENUS295-240/index.html }}</ref> which provides POSIX compatibility for CMS. The stand-out feature was a UNIX shell for CMS. The C compiler for this UNIX environment is provided by either C/370 or C for VM/ESA. Neither the CMS filesystem nor the standard VM Shared File System has any support for UNIX-style files and paths; instead, the Byte File System is used. Once a BFS extent is created in an SFS file pool, the user can mount it using the <code>OPENVM MOUNT /../VMBFS:fileservername:filepoolname /path/to/mount/point</code>. The user must also mount the root filesystem, done with <code>OPENVM MOUNT /../VMBFS:VMSYS:ROOT/ /</code>, a shell can then be started with <code>OPENVM SHELL</code>. Unlike the normal SFS, access to BFS filesystems is controlled by POSIX permissions (with [[chmod]] and [[chown]]).
==VM mascot==
In the early 1980s, the VM group within [[SHARE (computing)|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 (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.<ref>{{cite web|url=http://www.vm.ibm.com/devpages/christin/vmwebart.html|title=Gallery of VM web GIFs|archive-url=https://web.archive.org/web/20061018022910/http://www.vm.ibm.com/devpages/christin/vmwebart.html | website=IBM z/VM site|archive-date=October 18, 2006}}</ref> 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>{{cite web|url=http://www.alanflavell.org.uk/vmteddy.html |title=Explain "official VM teddy" |website=Mr. Alan J. Flavell |publisher=Alanflavell.org.uk |access-date=2015-07-02}}</ref>


Starting with z/VM Version 3, IBM integrated OpenEdition into z/VM<ref>{{cite web | title = z/VM V3R1 Enabled for 64-bit Architecture | id = 200-358 | date = October 3, 2000 | url = https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/8/897/ENUS200-358/index.html | series = Announcement Letters | publisher = [[IBM]] | access-date = January 31, 2022 | archive-date = December 17, 2021 | archive-url = https://web.archive.org/web/20211217151307/https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/8/897/ENUS200-358/index.html | url-status = live }}</ref> and renamed it OpenExtensions. OpenEdition and OpenExtensions provide POSIX.2 compliance to CMS.<ref>{{Cite web |date=2020-08-21 |title=IBM z/VM: OpenExtensions POSIX Conformance Document (GC24-6298-01) |url=https://www.ibm.com/servers/resourcelink/svc0302a.nsf/pages/zVMV7R2gc246298?OpenDocument |access-date=2022-07-31 |website=www.ibm.com |language=en-US |archive-date=February 28, 2024 |archive-url=https://web.archive.org/web/20240228073121/https://www-40.ibm.com/servers/resourcelink/svc0302a.nsf/pages/zVMV7R2gc246298?OpenDocument |url-status=live }}</ref> Programs compiled to run under the OpenExtensions shell are stored in the same format as standard CMS executable modules. Visual editors, such as [[Vi (text editor)|vi]] are unavailable, as 3270 terminals are not capable. Users can use [[Ed (text editor)|ed]] or [[XEDIT]] instead of vi.
== Criticism ==
While VM was relatively light-weight (when compared to its counterparts, such as MVS), VM was somewhat unstable in its early days. It was considered quite a feat to keep a VM/370 system up for more than a week. Users also criticized the CMS file system, noting that other operating systems in the mid-1980s had directories, symbolic links, and other key features; CMS had none of these until 1988 when VM/SP release 6 came out, which introduced the Shared File System and alleviated these issues.


== Marketing ==
Some users also noted that VM OpenEdition was somewhat "unnecessary."

In the early 1980s, the VM group within [[SHARE (computing)|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 (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.<ref>{{cite web|url=http://www.vm.ibm.com/devpages/christin/vmwebart.html|title=Gallery of VM web GIFs|archive-url=https://web.archive.org/web/20061018022910/http://www.vm.ibm.com/devpages/christin/vmwebart.html | website=IBM z/VM site|archive-date=October 18, 2006}}</ref> 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>{{cite web |url=http://www.alanflavell.org.uk/vmteddy.html |title=Explain "official VM teddy" |website=Mr. Alan J. Flavell |publisher=Alanflavell.org.uk |access-date=July 2, 2015 |archive-date=March 4, 2016 |archive-url=https://web.archive.org/web/20160304120917/http://www.alanflavell.org.uk/vmteddy.html |url-status=live }}</ref>

== Notes ==


==Notes==
{{Notelist}}
{{Notelist}}


==See also==
== See also ==

* [[History of CP/CMS]]
* [[Time-sharing system evolution]]
* [[Time-sharing system evolution]]


==References==
== References ==

{{Reflist|30em}}
{{refs}}

== Further reading ==
; 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 &amp; 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&nbsp;''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}}


==External links==
== External links ==
===VM sources===
* Bob DuCharme, ''[http://www.snee.com/bob/opsys/part5vmcms.pdf Operating Systems Handbook, Part 5: VM/CMS]''<br/>– a fairly detailed user's guide to VM/CMS
* E. C. Hendricks and T. C. Hartmann, "Evolution of a Virtual Machine Subsystem", ''IBM Systems Journal'' Vol. 18, ''pp.'' 111–142 (1979)<br/>– RSCS design and implementation
* IBM Corporation, ''IBM Virtual Machine Facility/370 Introduction'', GC20-1800, (1972)<br/>– the original manual
{{bibliography CP/CMS}}


* Bob DuCharme, ''[http://www.snee.com/bob/opsys/part5vmcms.pdf Operating Systems Handbook, Part 5: VM/CMS]'': a fairly detailed user's guide to VM/CMS
===Other resources===
* E. C. Hendricks and T. C. Hartmann, "Evolution of a Virtual Machine Subsystem", ''IBM Systems Journal'' Vol. 18, ''pp.'' 111–142 (1979): RSCS design and implementation
* IBM Corporation, ''IBM Virtual Machine Facility/370 Introduction'', GC20-1800, (1972): the original manual
* [http://www.redbooks.ibm.com/abstracts/sg247316.html?Open IBM Redbooks Publication – z/VM textbook]
* [http://www.redbooks.ibm.com/abstracts/sg247316.html?Open IBM Redbooks Publication – z/VM textbook]
* [http://www.vm.ibm.com/ IBM: z/VM portal]
* [http://www.vm.ibm.com/ IBM: z/VM portal]
Line 381: Line 330:
{{Time-sharing operating systems}}
{{Time-sharing operating systems}}


{{Use mdy dates|date=December 2021}}
{{DEFAULTSORT:Vm (Operating System)}}
[[Category:Time-sharing operating systems]]
[[Category:Time-sharing operating systems]]
[[Category:IBM mainframe operating systems]]
[[Category:IBM mainframe operating systems]]

Latest revision as of 04:01, 11 October 2024

z/VM
DeveloperIBM
OS familyVM family
Working stateCurrent
Source model1972–1986 Open source, 1977–present Closed source
Initial release1972; 53 years ago (1972)
Latest releaseIBM z/VM V7.3 / September 16, 2022; 2 years ago (2022-09-16)
Marketing targetIBM mainframe computers
Available inEnglish
PlatformsSystem/370, System/390, zSeries, IBM zEnterprise System
License1972–1981 Public domain, 1976–present Proprietary
Official websitewww.vm.ibm.com
The default login screen on VM/370 Release 6

VM (often: VM/CMS) is a family of IBM virtual machine operating systems used on IBM mainframes System/370, System/390, zSeries, System z and compatible systems, including the Hercules emulator for personal computers.

Design

[edit]

The heart of the VM architecture is the Control Program or hypervisor abbreviated CP, VM-CP and sometimes, ambiguously, VM. It runs on the physical hardware, and creates the virtual machine environment. VM-CP provides full virtualization of the physical machine – including all I/O and other privileged operations. 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. VM-CP began life as CP-370, a reimplementation of CP-67, itself a reimplementation of CP-40.

Running within each virtual machine is another operating system, a guest operating system. This might be:

  • CMS (Conversational Monitor System, renamed from the Cambridge Monitor System of CP/CMS). Most virtual machines run CMS, a lightweight, single-user operating system. Its interactive environment is comparable to that of a single-user PC, including a file system, programming services, device access, and command-line processing. (While an earlier version of CMS was uncharitably described as "CP/M on a mainframe", the comparison is an anachronism; the author of CP/M, Gary Kildall, was an experienced CMS user.)
  • GCS (Group Control System), which provides a limited simulation of the MVS API. IBM originally provided GCS in order to run VTAM without a service OS/VS1 virtual machine and VTAM Communications Network Application (VCNA). RSCS V2 also ran under GCS.
  • A mainstream operating system. IBM's mainstream operating systems (e.g., the MVS and DOS/VSE families, OS/VS1, TSS/370, or another layer of VM/370 itself (see below)) can be loaded and run without modification. The VM hypervisor treats guest operating systems as application programs with exceptional privileges – it prevents them from directly using privileged instructions (those which would let applications take over the whole system or significant parts of it), but simulates privileged instructions on their behalf. Most mainframe operating systems terminate a normal application which tries to usurp the operating system's privileges. The VM hypervisor can simulate several types of console terminals for the guest operating system, such as the hardcopy line-mode 3215, the graphical 3270 family, and the integrated console on newer System/390 and System Z machines. Other users can then access running virtual machines using the DIAL command at the logon screen, which will connect their terminal to the first available emulated 3270 device, or the first available 2703 device if the user is DIALing from a typewriter terminal.
  • Another copy of VM. A second level instance of VM can be fully virtualized inside a virtual machine. This is how VM development and testing is done (a second-level VM can potentially implement a different virtualization of the hardware). This technique was used to develop S/370 software before S/370 hardware was available, and it has continued to play a role in new hardware development at IBM. The literature cites practical examples of virtualization five levels deep.[1] Levels of VM below the top are also treated as applications but with exceptional privileges.
  • A copy of the mainframe version of AIX or Linux. In the mainframe environment, these operating systems often run under VM, and are handled like other guest operating systems. (They can also run as 'native' operating systems on the bare hardware.) There was also the short-lived IX/370, as well as S/370 and S/390 versions of AIX (AIX/370 and AIX/ESA).
  • A specialized VM subsystem. Several non-CMS systems run within VM-CP virtual machines, providing services to CMS users such as spooling, interprocess communications, specialized device support, and networking. They operate behind the scenes, extending the services available to CMS without adding to the VM-CP control program. By running in separate virtual machines, they receive the same security and reliability protections as other VM users. Examples include:
    • RSCS (Remote Spooling and Communication Subsystem, aka VNET) – communication and information transfer facilities between virtual machines and other systems[2]
    • RACF (Resource Access Control Facility) — a security system
    • Shared File System (SFS), which organizes shared files in a directory tree (the servers are commonly named "VMSERVx"
    • VTAM (Virtual Telecommunications Access Method) – a facility that provides support for a Systems Network Architecture network
    • PVM (VM/Pass-Through Facility) – a facility that provides remote access to other VM systems
    • TCPIP, SMTP, FTPSERVE, PORTMAP, VMNFS – a set of service machines that provide TCP/IP networking to VM/CMS
    • Db2 Server for VM – a SQL database system, the servers are often named similarly to "SQLMACH" and "SQLMSTR"
    • DIRMAINT – A simplified user directory management system (the directory is a listing of every account on the system, including virtual hardware configuration, user passwords, and minidisks).
    • MUMPS/VM — an implementation of the MUMPS database and programming language which could run as guest on VM/370.[3] MUMPS/VM was introduced in 1987 and discontinued in 1991.[4]
  • A user-written or modified operating system, such as National CSS's CSS or Boston University's VPS/VM.

Versions

[edit]

The following versions are known:

Virtual Machine Facility/370
VM/370, released in 1972, is a System/370 reimplementation of earlier CP/CMS operating system.
VM/370 Basic System Extensions Program Product
VM/BSE (BSEPP) is an enhancement to VM/370 that adds support for more devices (such as 3370-type fixed-block-architecture DASD drives), improvements to the CMS environment (such as an improved editor), and some stability enhancements to CP.
VM/370 System Extensions Program Product
VM/SE (SEPP) is an enhancement to VM/370 that includes the facilities of VM/BSE, as well as a few additional fixes and features.
Virtual Machine/System Product
VM/SP, a milestone version, replaces VM/370, VM/BSE and VM/SE. Release 1 added EXEC2 and XEDIT System Product Editor; Release 3 added REXX; Release 6 added the shared filesystem.[5]
Virtual Machine/System Product High Performance Option
VM/SP HPO adds additional device support and functionality to VM/SP, and allows certain S/370 machines that can utilize more than 16 MB of real storage to do so, up to 64 MB. This version was intended for users that would be running multiple S/370 guests at once.[6][7]
Virtual Machine/Extended Architecture Migration Aid
VM/XA MA is intended to ease the migration from MVS/370 to MVS/XA by allowing both to run concurrently on the same processor complex.[8]
Virtual Machine/Extended Architecture System Facility
VM/XA SF is an upgraded VM/XA MA with improved functionality and performance.[9]
Virtual Machine/Extended Architecture System Product
VM/XA SP is an upgraded VM/XA MA with improved functionality and performance, offered as a replacement for VM/SP HPO on machines supporting S/370-XA. It includes a version of CMS that can run in either S/370 or S/370-XA mode.[10]
Virtual Machine/Enterprise Systems Architecture
VM/ESA provides the facilities of VM/SP, VM/SP HPO and VM/XA SP. VM/ESA version 1 can run in S/370, ESA/370 or ESA/390 mode; it does not support S/370 XA mode. Version 2 only runs in ESA/390 mode. The S/370-capable versions of VM/ESA were actually their own separate version from the ESA/390 versions of VM/ESA, as the S/370 versions are based on the older VM/SP HPO codebase, and the ESA/390 versions are based on the newer VM/XA codebase.[11]
z/VM
z/VM, the last version still widely used as one of the main full virtualization solutions for the mainframe market.[citation needed] z/VM 4.4 was the last version that could run in ESA/390 mode; subsequent versions only run in z/Architecture mode.[12]

The CMS in the name refers to the Conversational Monitor System, a component of the product that is a single-user operating system that runs in a virtual machine and provides conversational time-sharing in VM.

Hypervisor interface

[edit]

IBM coined the term hypervisor for the 360/65[13] and later used it for the DIAG handler of CP-67.

The Diagnose instruction ('83'x—no mnemonic) is a privileged instruction originally intended by IBM to perform "built-in diagnostic functions, or other model-dependent functions."[14] IBM repurposed DIAG for "communication between a virtual machine and CP."[15][16] The instruction contains two four-bit register numbers, called Rx and Ry, which can "contain operand storage addresses or return codes passed to the DIAGNOSE interface," and a two-byte code "that CP uses to determine what DIAGNOSE function to perform."[15] The available diagnose functions include:

Hexadecimal code Function
0000 Store Extended-Identification Code
0004 Examine Real Storage
0008 Virtual Console Function—Execute a CP command
0018 Standard DASD I/O
0020 General I/O—Execute any valid CCW chain on a tape or disk device
003C Update the VM/370 directory
0058 3270 Virtual Console Interface—perform full-screen I/O on an IBM 3270 terminal
0060 Determine Virtual Machine Storage Size
0068 Virtual Machine Communication Facility (VMCF)

At one time, CMS was capable of running on a bare machine, as a true operating system (though such a configuration would be unusual). It now runs only as a guest OS under VM. This is because CMS relies on a hypervisor interface to VM-CP, to perform file system operations and request other VM services. This paravirtualization interface:

  • Provides a fast path to VM-CP, to avoid the overhead of full simulation.
  • Was first developed as a performance improvement for CP/CMS release 2.1, an important early milestone in CP's efficiency.
  • Uses a non-virtualized, model-dependent machine instruction as a signal between CMS and CP: DIAG (diagnose).

Minidisks

[edit]
CMS starting up after the user MAINT (system administrator) has logged in
The CMS editor on VM/370, editing a COBOL program source file

CMS and other operating systems often have DASD requirements much smaller than the sizes of actual volumes. For this reason CP allows an installation to define virtual disks of any size up to the capacity of the device. For CKD volumes, a minidisk must be defined in full cylinders. A minidisk has the same attributes as the underlying real disk, except that it is usually smaller and the beginning of each minidisk is mapped to cylinder or block 0. The minidisk may be[a] accessed using the same channel programs as the real disk.

A minidisk that has been initialized with a CMS file system is referred to as a CMS minidisk, although CMS is not the only system that can use them.

It is common practice to define full volume minidisks for use by such guest operating systems as z/OS instead of using DEDICATE to assign the volume to a specific virtual machine. In addition, "full-pack links" are often defined for every DASD on the system, and are owned by the MAINT userid. These are used for backing up the system using the DASD Dump/Restore program, where the entire contents of a DASD are written to tape (or another DASD) exactly.

Shared File System

[edit]
Invoking the System/360 COBOL compiler on VM/370 CMS, then loading and running the program

With modern VM versions, most of the system can be installed to SFS, with the few remaining minidisks being the ones absolutely necessary for the system to start up, and the ones being owned by the filepool server machines.

An example of a non-CMS guest operating system running under VM/370: DOS/VS Release 34. The DOS/VS system is now prompting the operator to enter a supervisor name to continue loading

VM/SP Release 6 introduced the Shared File System [17] which vastly improved CMS file storage capabilities. The CMS minidisk file system does not support directories (folders) at all, however, the SFS does. SFS also introduces more granular security. With CMS minidisks, the system can be configured to allow or deny users read-only or read-write access to a disk, but single files cannot have the same security. SFS alleviates this, and vastly improves performance.

The SFS is provided by service virtual machines. On a modern VM system, there are usually three that are required: VMSERVR, the "recovery machine" that does not actually serve any files; VMSERVS, the server for the VMSYS filepool; and VMSERVU, the server for the VMSYSU (user) filepool.[18] The file pool server machines own several minidisks, usually including a CMS A-disk (virtual device address 191, containing the file pool configuration files), a control disk, a log disk, and any number of data disks that actually store user files.

If a user account is configured to only use SFS (and does not own any minidisks), the user's A-disk will be FILEPOOL:USERID. and any subsequent directories that the user creates will be FILEPOOL:USERID.DIR1.DIR2.DIR3 where the equivalent UNIX file path is /dir1/dir2/dir3. SFS directories can have much more granular access controls when compared to minidisks (which, as mentioned above, can often only have a read password, a write password, and a multi-write password). SFS directories also solve the issues that may arise when two users write to the same CMS minidisk at the same time, which may cause disk corruption (as the CMS VM performing the writes may be unaware that another CMS instance is also writing to the minidisk).

The file pool server machines also serve a closely related filesystem: the Byte File System. BFS is used to store files on a UNIX-style filesystem. Its primary use is for the VM OpenExtensions POSIX environment for CMS. The CMS user virtual machines themselves communicate with the SFS server virtual machines through the IUCV mechanism.[19]

History

[edit]
OS/VS1 starting under VM/370
Using DASD Dump/Restore (DDR) to back up a VM/370 system

The early history of VM is described in the articles CP/CMS and History of CP/CMS. VM/370 is a reimplementation of CP/CMS, and was 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 through VM/370 Release 6 continued in open source through 1981, and today are considered to be in the public domain. This policy ended in 1977 with the chargeable VM/SE and VM/BSE upgrades and in 1980 with VM/System Product (VM/SP). However, IBM continued providing updates in source form for existing code for many years, although the upgrades to all but the free base required a license. As with CP-67, privileged instructions in a virtual machine cause a program interrupt, and CP simulated the behavior of the privileged instruction. 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.

Melinda Varian provides this fascinating quote, illustrating VM's unexpected success:[20]

The marketing forecasts for VM/370 predicted that no more than one 168 would ever run VM during the entire life of the product. In fact, the first 168 delivered to a customer ran only CP and CMS. Ten years later, ten percent of the large processors being shipped from Poughkeepsie would be destined to run VM, as would a very substantial portion of the mid-range machines that were built in Endicott. Before fifteen years had passed, there would be more VM licenses than MVS licenses.

A PC DOS version that runs CMS on the XT/370 (and later on the AT/370) is called VM/PC. VM/PC 1.1 was based on VM/SP release 3. When IBM introduced the P/370 and P/390 processor cards, a PC could now run full VM systems, including VM/370, VM/SP, VM/XA, and VM/ESA (these cards were fully compatible with S/370 and S/390 mainframes, and could run any S/370 operating system from the 31-bit era, e.g., MVS/ESA, VSE/ESA).

In addition to the base VM/SP releases, IBM also introduced VM/SP HPO (High Performance Option). This add-on (which is installed over the base VM/SP release) improved several key system facilities, including allowing the usage of more than 16 MB of storage (RAM) on supported models (such as the IBM 4381). With VM/SP HPO installed, the new limit was 64 MB; however, a single user (or virtual machine) could not use more than 16 MB. The functions of the spool filesystem were also improved, allowing 9900 spool files to be created per user, rather than 9900 for the whole system. The architecture of the spool filesystem was also enhanced, each spool file now had a unique user ID associated with it, and reader file control blocks were now held in virtual storage. The system could also be configured to deny certain users access to the vector facility (by means of user directory entries).[6]

Releases of VM since VM/SP Release 1 supported multiprocessor systems. System/370 versions of VM (such as VM/SP and VM/SP HPO) supported a maximum of two processors, with the system operating in either UP (uniprocessor) mode, MP (multiprocessor) mode, or AP (attached processor) mode.[21] AP mode is the same as MP mode, except the second processor lacks I/O capability. System/370-XA releases of VM (such as VM/XA) supported more. System/390 releases (such as VM/ESA) almost removed the limit entirely, and some modern z/VM systems can have as many as 80 processors.[22] The per-VM limit for defined processors is 64.

When IBM introduced the System/370 Extended Architecture on the 3081, customers were faced with the need to run a production MVS/370 system while testing MVS/XA on the same machine. IBM's solution was VM/XA Migration Aid, which used the new Start Interpretive Execution (SIE) instruction to run the virtual machine. SIE automatically handled some privileged instructions and returned to CP for cases that it couldn't handle. The Processor Resource/System Manager (PR/SM) of the later 3090 also used SIE. There were several VM/XA products before it was eventually supplanted by VM/ESA and z/VM.

In addition to RSCS networking, IBM also provided users with VTAM networking. ACF/VTAM for VM was fully compatible with ACF/VTAM on MVS and VSE.[23] Like RSCS, VTAM on VM ran under the specialized GCS operating system. However, VM also supported TCP/IP networking. In the late 1980s, IBM produced a TCP/IP stack for VM/SP and VM/XA.[24] The stack supported IPv4 networks, and a variety of network interface systems (such as inter-mainframe channel-to-channel links, or a specialized IBM RT PC that would relay traffic out to a Token Ring or Ethernet network). The stack provided support for Telnet connections, from either simple line-mode terminal emulators or VT100-compatible emulators, or proper IBM 3270 terminal emulators. The stack also provided an FTP server. IBM also produced an optional NFS server for VM; early versions were rather primitive, but modern versions are much more advanced.[25]

There was also a fourth networking option, known as VM/Pass-Through Facility (or more commonly called, PVM). PVM, like VTAM, allowed for connections to remote VM/CMS systems, as well as other IBM systems.[26] If two VM/CMS nodes were linked together over a channel-to-channel link or bisync link (possibly using a dialup modem or leased line), a user could remotely connect to either system by entering "DIAL PVM" on the VM login screen, then entering the system node name (or choosing it from a list of available nodes). Alternatively, a user running CMS could use the PASSTHRU program that was installed alongside PVM, allowing for quick access to remote systems without having to log out of the user's session. PVM also supported accessing non-VM systems, by utilizing a 3x74 emulation technique. Later releases of PVM also featured a component that could accept connections from a SNA network.

VM was also the cornerstone operating system of BITNET, as the RSCS system available for VM provided a simple network that was easy to implement, and somewhat reliable. VM sites were interlinked by means of an RSCS VM on each VM system communicating with one another, and users could send and receive messages, files, and batch jobs through RSCS. The "NOTE" command used XEDIT to display a dialog to create an email, from which the user could send it. If the user specified an address in the form of user at node, the email file would be delivered to RSCS, which would then deliver it to the target user on the target system. If the site has TCP/IP installed, RSCS could work with the SMTP service machine to deliver notes (emails) to remote systems, as well as receive them. If the user specified user at some.host.name, the NOTE program would deliver the email to the SMTP service machine, which would then route it out to the destination site on the Internet.

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 uses 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 utilized in data centers converting from DOS/VSE to MVS and is useful when running mainframe AIX and Linux, 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. z/VM was first released in October 2000[27] and remains in active use and development.

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.

CP commands

[edit]

As of release 6, the VM/370 Control Program has a number of commands for General Users, concerned with defining and controlling the user's virtual machine. Lower-case portions of the command are optional[28]

Command Description
#CP Allows the user to issue a CP command from a command environment, or any other virtual machine after pressing the break key (defaults to PA1)
ADSTOP Sets an address stop to halt the virtual machine at a specific instruction
ATTN Causes an attention interruption allowing CP to take control in a command environment
Begin Continue or resume execution of the user's virtual machine, optionally at a specified address
CHange Alter attributes of a spool file or files. For example, the output class or the name of the file can be changed, or printer-specific attributes set
Close Closes an open printer, punch, reader, or console file and releases it to the spooling system
COUPLE Connect a virtual channel-to-channel adapter (CTCA) to another. Also used to connect simulated QDIO Ethernet cards to a virtual switch.
CP Execute a CP command in a CMS environment
DEFine Alter the current virtual machine configuration. Add virtual devices or change available storage size
DETach Remove a virtual device or channel from the current configuration
DIAL Connect your terminal at the logon screen to a logged-on multi-access virtual machine's simulated 3270 or typewriter terminals
DISConn Disconnect your terminal while allowing your virtual machine to continue running
Display Display virtual machine storage or (virtual) hardware registers
DUMP Print a snapshot dump of the current virtual machine on the virtual spooled printer
ECHO Set the virtual machine to echo typed lines
EXTernal Cause an external interrupt to the virtual machine
INDicate Display current system load or your resource usage
Ipl IPL (boot) an operating system on your virtual machine
LINK Attach a device from another virtual machine, if that machine's definition allows sharing
LOADVFCB Specify a forms control buffer (FCB) for a virtual printer
LOGoff
LOGout
Terminate execution of the current virtual machine and disconnect from the system
Logon
Login
Sign on to the system
Message
MSG
Send a one-line message to the system operator or another user
NOTReady Cause a virtual device to appear not ready
ORDer Reorder closed spool files by ID or class
PURge Delete closed spool files for a device by class,m ID, or ALL
Query Display status information for your virtual machine, or the message of the day, or number or names of logged-in users
READY Cause a device end interruption for a device
REQuest Cause an interrupt on your virtual console
RESET Clear all pending interrupts for a device
REWind Rewind a real (non virtual) magnetic tape unit
SET Set various attributes for your virtual machine, including messaging or terminal function keys
SLeep Place your virtual machine in a dormant state indefinitely or for a specified period of time
SMsg Send a one-line special message to another virtual machine (usually used to control the operation of the virtual machine; commonly used with RSCS)
SPool Set options for a spooled virtual device (printer, reader, or punch)
STore Alter the contents of registers or storage of your virtual machine
SYStem Reset or restart your virtual machine or clear storage
TAg Set a tag associated with a spooled device or file. The tag is usually used by VM's Remote Spooling Communications Subystem (RSCS) to identify the destination of a file
TERMinal Set characteristics of your terminal
TRace Start or stop tracing of specified virtual machine activities
TRANsfer Transfer a spool file to or from another user
VMDUMP Dump your virtual machine in a format readable by the Interactive Problem Control System (IPCS) program product

OpenEdition extensions

[edit]

Starting with VM/ESA Version 2, IBM introduced the chargeable optional feature OpenEdition for VM/ESA Shell and Utilities Feature,[29] which provides POSIX compatibility for CMS. The stand-out feature was a UNIX shell for CMS. The C compiler for this UNIX environment is provided by either C/370 or C for VM/ESA. Neither the CMS filesystem nor the standard VM Shared File System has any support for UNIX-style files and paths; instead, the Byte File System is used. Once a BFS extent is created in an SFS file pool, the user can mount it using the OPENVM MOUNT /../VMBFS:fileservername:filepoolname /path/to/mount/point. The user must also mount the root filesystem, done with OPENVM MOUNT /../VMBFS:VMSYS:ROOT/ /, a shell can then be started with OPENVM SHELL. Unlike the normal SFS, access to BFS filesystems is controlled by POSIX permissions (with chmod and chown).

Starting with z/VM Version 3, IBM integrated OpenEdition into z/VM[30] and renamed it OpenExtensions. OpenEdition and OpenExtensions provide POSIX.2 compliance to CMS.[31] Programs compiled to run under the OpenExtensions shell are stored in the same format as standard CMS executable modules. Visual editors, such as vi are unavailable, as 3270 terminals are not capable. Users can use ed or XEDIT instead of vi.

Marketing

[edit]

In the early 1980s, 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 (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.[32] Bears were awarded to inductees of the "Order of the Knights of VM", individuals who made "useful contributions" to the community.[33][34]

Notes

[edit]
  1. ^ CMS can use DIAG for I/O on CMS file systems.

See also

[edit]

References

[edit]
  1. ^ Varian, Melinda (April 1991). "VM AND THE VM COMMUNITY: Past, Present, and Future" (PDF). p. 55. Archived (PDF) from the original on August 23, 2022. Retrieved June 9, 2022.
  2. ^ Creasy, op. cit., p. 483 — role of RSCS.
  3. ^ "Two versions of MUMPS out". Computerworld. Vol. XXI, no. 48. November 30, 1987. Archived from the original on March 6, 2023. Retrieved July 9, 2022.
  4. ^ "Licensed Products Migration Matrix for z/VM" (PDF). IBM. December 2, 2009. Archived (PDF) from the original on August 10, 2022. Retrieved July 9, 2022.
  5. ^ Elliott, Jim (August 17, 2004). The Evolution of IBM Mainframes and VM (PDF). SHARE August 2004. Linux for S/390 Linux for Big Iron. SHARE. Session 9140. Archived (PDF) from the original on October 13, 2006. Retrieved October 21, 2007.
  6. ^ a b Virtual Machine/System Product High Performance Option Release 5 Guide (PDF). IBM. July 1987. SC23-0189-3. Archived (PDF) from the original on June 17, 2022. Retrieved August 19, 2021.
  7. ^ VM/SYSTEM PRODUCT HIGH PERFORMANCE OPTION ANNOUNCED. Announcement Letters. IBM. October 21, 1981. ZP81-0805. Archived from the original on December 17, 2021. Retrieved December 17, 2021.
  8. ^ VIRTUAL MACHINE/EXTENDED ARCHITECTURE MIGRATION AID. Announcement Letters. IBM. October 21, 1981. ZP81-0811. Archived from the original on December 17, 2021. Retrieved December 17, 2021.
  9. ^ VIRTUAL MACHINE/EXTENDED ARCHITECTURE (VM/XA) SYSTEMS FACILITY. Announcement Letters. IBM. February 12, 1985. 285-044. Archived from the original on December 17, 2021. Retrieved December 17, 2021.
  10. ^ VIRTUAL MACHINE/EXTENDED ARCHITECTURE SYSTEM PRODUCT (VM/XA SP) RELEASE 1. Announcement Letters. IBM. June 11, 1987. 287-239. Archived from the original on December 17, 2021. Retrieved December 17, 2021.
  11. ^ VIRTUAL MACHINE/ENTERPRISE SYSTEMS ARCHITECTURE VERSION 1 RELEASE 1.0 AND VERSION 1 RELEASE 1.1. Announcement Letters. IBM. September 5, 1990. 290-499. Archived from the original on December 17, 2021. Retrieved December 17, 2021.
  12. ^ z/VM V3R1 Enabled for 64-bit Architecture. Announcement Letters. IBM. October 3, 2000. 200-358. Archived from the original on December 17, 2021. Retrieved December 17, 2021.
  13. ^ Gary R. Allred (May 1971). System/370 integrated emulation under OS and DOS (PDF). 1971 Spring Joint Computer Conference. Vol. 38. AFIPS Press. p. 164. doi:10.1109/AFIPS.1971.58. Archived (PDF) from the original on July 25, 2018. Retrieved June 12, 2022. The Hypervisor concept was relatively simple. It consisted of an addendum to the emulator program and a hardware modification on a Model 65 having a compatibility feature. The hardware modification divided the Model 65 into partitions, each addressable from 0-n. The program addendum, having overlaid the system Program Status Words (PSW) with its own, became the interrupt handler for the entire system. After determining which partition had initiated the event causing the interrupt, control was transferred accordingly. The Hypervisor required dedicated I/O devices fore each partition and, because of this, the I/O configurations were usually quite large, and, therefore, prohibitive to the majority of uses.
  14. ^ IBM System/370 Principles of Operation (PDF). IBM. 1987. p. 10-5. Archived (PDF) from the original on September 29, 2019. Retrieved August 17, 2019.
  15. ^ a b "DIAGNOSE Instruction in a Virtual Machine" (PDF). IBM Virtual Machine Facility/370: System Programmer's Guide (PDF) (Eighth ed.). IBM. March 1979. GC20-1807-7. Archived (PDF) from the original on April 2, 2020. Retrieved August 17, 2019.
  16. ^ "Chapter 1. The DIAGNOSE Instruction in a Virtual Machine" (PDF). z/VM Version 7 Release 2 CP Programming Services (PDF). IBM. August 12, 2020. p. 3. SC24-6272-04. Archived (PDF) from the original on April 30, 2021. Retrieved May 9, 2021. In a real processor, the DIAGNOSE instruction performs processor-dependent diagnostic functions. In a virtual machine, you use the DIAGNOSE interface to request that CP perform services for your virtual machine. When your virtual machine attempts to execute a DIAGNOSE instruction, control is returned to CP. CP uses information provided in the code portion of the instruction to determine what service it should perform. Once this service is provided, control returns to the virtual machine.
  17. ^ VIrtual Machine/System Product CMS User's Guide Release 6 (PDF). IBM. July 1988. Chapter 4 (Using the Shared File System). SC19-6210-05. Archived (PDF) from the original on June 17, 2022. Retrieved August 19, 2021.
  18. ^ "File Pool Server Machines" (PDF). CMS File Pool Planning, Administration, and Operation (PDF). z/VM 7.2. IBM. November 12, 2021. pp. 18–23. SC24-6261-02. Archived (PDF) from the original on October 6, 2022. Retrieved June 10, 2022.
  19. ^ "IUCV Overview". www.ibm.com. Archived from the original on July 31, 2022. Retrieved July 31, 2022.
  20. ^ Varian, op. cit., p. 30 – extent of VM use; more VM licenses than MVS licenses
  21. ^ Virtual Machine/System Product Installation Guide Release 5 (PDF). IBM. December 1986. SC24-5237-3. Archived (PDF) from the original on June 17, 2022. Retrieved August 19, 2021.
  22. ^ "Vm66265: Z/Vm Support for 80 Logical Processors". IBM. August 27, 2020. Archived from the original on August 19, 2021. Retrieved August 19, 2021.
  23. ^ VTAM Reference Summary Version 3 Release 3 for MVS, VM, and VSE/ESA (PDF). IBM. September 1990. LY43--0047-1. Archived (PDF) from the original on August 19, 2021. Retrieved August 19, 2021.
  24. ^ IBM 9370 LAN Volume 2 - IEE 802.3 Support (PDF). IBM. April 1988. GG24-3227-0. Archived (PDF) from the original on August 19, 2021. Retrieved August 19, 2021.
  25. ^ "VM TCP/IP NFS Server Support". IBM. May 29, 2001. Archived from the original on April 26, 2021. Retrieved August 19, 2021.
  26. ^ VM/Pass-Through Facility Administration and Operation Version 2 (PDF). IBM. June 1993. SC24-5557-01. Archived from the original (PDF) on August 19, 2021. Retrieved August 19, 2021.
  27. ^ "IBM: About the z/VM Operating System". IBM z/VM virtualization technology. Vm.ibm.com. Archived from the original on July 3, 2015. Retrieved July 2, 2015.
  28. ^ IBM Virtual Machine Facility/370: CP Command Reference for General Users (PDF). IBM. August 1, 1979. Archived (PDF) from the original on April 2, 2020. Retrieved August 15, 2019.
  29. ^ "Availability: VM/ESA Version 2 Release 1.0 with OpenEdition for VM/ESA". Announcement Letters. IBM. June 12, 1995. 295-240. Archived from the original on October 28, 2021. Retrieved October 28, 2021.
  30. ^ "z/VM V3R1 Enabled for 64-bit Architecture". Announcement Letters. IBM. October 3, 2000. 200-358. Archived from the original on December 17, 2021. Retrieved January 31, 2022.
  31. ^ "IBM z/VM: OpenExtensions POSIX Conformance Document (GC24-6298-01)". www.ibm.com. August 21, 2020. Archived from the original on February 28, 2024. Retrieved July 31, 2022.
  32. ^ "Gallery of VM web GIFs". IBM z/VM site. Archived from the original on October 18, 2006.
  33. ^ Varian, op. cit., p. 2 – the teddy bear story
  34. ^ "Explain "official VM teddy"". Mr. Alan J. Flavell. Alanflavell.org.uk. Archived from the original on March 4, 2016. Retrieved July 2, 2015.

Further reading

[edit]
Primary CP/CMS sources
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
  • 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
  • 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
  • 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
[edit]
→ derivation     >> strong influence     > some influence/precedence
 CTSS 
> IBM M44/44X
>> CP-40/CMS CP[-67]/CMS  VM/370 → VM/SE versions → VM/SP versions → VM/XA versions → VM/ESAz/VM
VP/CSS
> TSS/360
> TSO for MVT → for OS/VS2 → for MVS → ... → for z/OS
>> MULTICS and most other time-sharing platforms