7.3 What does z/VM provide?
z/VM is a mainframe operating system. Linux on the mainframe can particularly benefit from what z/VM provides:
z/VM's CP component is the hypervisor that manages resources for its guests. The hypervisor includes all the emulation code and an extremely efficient scheduler. The fact that hundreds of users can work concurrently and expect sub-second response times shows the efficiency of the scheduler.
The CMS operating system.
CMS has a simple user interface and is used by system administrators to manage both z/VM itself and its guests. It is also used as a utility operating system for various server functions such as TCP/IP.
A large set of systems management tools.
In the z/VM directory, system administrators can quickly and easily change the definitions of a guest or create a new guest. z/VM has both a user interface and a command line interface that can be driven by scripts to control the entire environment. z/VM's system administration facility includes functions that help the user create and manage multiple Linux images. Functions include assigning disks, starting and stopping Linux images, and more. System and hardware resources can be allocated among multiple Linux guests, which can also be managed by z/VM.
A scripting language (REXX) allows for programmatic response to events; for example, you can use the programmable operator (PROP) to filter messages from the z/VM operator console. You can specify a REXX program (called a PROP exit) to be invoked whenever a guest logoff message appears. The message includes the name of the guest that terminated. The exit could then take whatever action was appropriate, such as restarting the guest. There are also extensive logging capabilities for performance tracking or debugging.
z/VM has a large, active user community (much like the Open Source community) that provides tools and scripts for managing a z/VM environment.
Security and integrity.
z/VM is built on the mainframe architecture that highly values those attributes. We examine z/VM security and integrity in Chapter 8.
To understand the difference of z/VM compared to other virtualization techniques, we need to take a look at some technical issues.
Importantly, z/VM allows its guests to take advantage of the underlying mainframe architecture. In the interest of achieving good performance, z/VM guests run as much as possible as if the hardware were real. Only when z/VM must run privileged instructions for the guest does it take control from the guest.
In 1985, IBM announced and delivered a microcode assist for its 3081, 3083, and 3084 processor models called Start Interpretative Execution (SIE). The SIE assist reduced the number of instructions VM had to execute on behalf of a guest operating system. With SIE, the processor (in interpretative execution mode) could handle more guest I/O instructions and associated interrupts. Less VM intervention was required, thus significantly improving guest performance.
The distinguishing factor of z/VM is that all resources can be virtualized. CPU, memory, disks, and network communications can be virtual (see Chapter 10). Additionally, certain hardware that is supported on some mainframe models can sometimes be virtualized on other models. For example, it is possible to use virtual HiperSockets on machine models that do not support real HiperSockets (such as G5, G6, and Multiprise 3000 servers).
In summary, the guest operating system believes that it owns and controls the hardware. CP allows the guest control until an instruction occurs that CP must interpret. From the outside observer's perspective, there is a "duet" of the CP and the guest.