Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
VM (operating system)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Design == 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]]. 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 [[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]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)