Introduction to IBM VM ====================== This is just a brief explanation and overview of IBMs virtualization solution VM. Anyone interested in a bit more detail should check out the Wikipedia entry[1] (and associated links), which is a pretty decent source. History ------- VM as a generally-available product began with VM/370 in 1972. It's history stretches back a little further than that, beginning with research projects in the late 60s. But broadly, the timeline goes: VM/370 (1972) | VM/SP (1980) | VM/XA (1984) | VM/ESA (1990) | z/VM (2000-present) For those of you mainly familiar with x86-based systems: no, those dates are not typos - virtualization really has been around for nearly half a century! Structure --------- Most techies these days are familiar with the concept of a 'hypervisor' - it being the software that provides the capability of running multiple virtual machines inside the same host system. The hypervisor component in VM is called the Control Program (CP). It is CP that manages the division of real resources (RAM, CPUs, devices) between the active 'guest' virtual machines. While CP does provide a command-line interface, it's use is limited to operations on virtual machines and real hardware and devices, resource monitoring and so on. Besides CP, all other VM functionality is achieved via virtual machines. Naturally, end-user guest OSes run in virtual machines. What may be a little surprising is that other facilities generally recognized as parts of a modern OS (services/daemons, networking stacks etc.) are also all provisioned within their own virtual machines. These are commonly referred to as 'service virtual machines'. To illustrate, a VM system by default will run one TCP/IP stack, usually under the 'TCPIP' virtual machine. There's no reason why you couldn't run a number of separate stacks if you wished, but they'd all need to be unique virtual machines. TCPIP would normally handle TN3270 (3270 telnet) connections itself, but eg. FTP, SSL connections, SMTP, and so on would run as separate virtual machines. On a recent VM system, you might see something similar to: Ready; T=0.01/0.01 17:24:22 q names SSL00001 - DSC , SSLDCSSM - DSC , TCPIP - DSC , DTCVSW2 - DSC DTCVSW1 - DSC , VMSERVP - DSC , VMSERVR - DSC , VMSERVU - DSC VMSERVS - DSC , OPERSYMP - DSC , DISKACNT - DSC , EREP - DSC OPERATOR - 0020, MAINT -L0004 ... ('Ready...' is the prompt from CMS, 'q names' is the CP command to list the active virtual machines. CMS will get it's own article.) TCPIP (default IP stack) SSLDCSSM (SSL management process) SSL0001 (SSL connection pool) DTCVSW* (Virtual switches) OPERATOR (provides the interactive system console) EREP (error reporting and monitoring) DISKACNT (disk accounting) MAINT (system admin user) and so on. 'DSC' indicates that the virtual machine is running disconnected, somewhat similar to VirtualBox or VMWare where a machine can be running 'in the background', but there's no open console window. Guest OSes ---------- A number of operating systems are supported under VM. Unsurprisingly the list skews a little towards IBM, but here they are: MVS (also known as OS/390, z/OS [2]) VSE (I know nothing at all about this and its predecessor DOS [3]) VM (yes, VM will run many levels deep under VM. See also [4]) CMS (to be covered in another article. CMS is provided with VM) Linux (the s390 and s390x ports [really? you need a link?]) MUSIC (I guess? [5]) TPF (probably, but I wouldn't expect a production TPF system to be run under VM due to response time requirements. [6]) Links ----- [1] https://en.wikipedia.org/wiki/VM_(operating_system) [2] https://en.wikipedia.org/wiki/MVS [3] https://en.wikipedia.org/wiki/VSE_(operating_system) [4] https://www.theregister.co.uk/2018/07/23/sysadmin_sank_ibm_mainframe_by_going_one_vm_too_deep/ [5] https://en.wikipedia.org/wiki/MUSIC/SP [6] https://en.wikipedia.org/wiki/Transaction_Processing_Facility