VM's CMS: An Elixir for Mainframe Productivity
VM's CMS component was an experiment in OS design explicitly created as a single-user system.
11/1/2018 9:28:34 AM |
By Gabe Goldberg
From humble beginnings as part of IBM's 1960s pioneering virtualization research project, VM's Conversational Monitor System (CMS) component was an experiment in OS design explicitly created as a single-user system; it provided what would later be called "personal computing." When Bill Gates and Steve Jobs—themselves pioneers of consumerized computing—were teenagers, CMS was an industrial-strength mainstream platform for personalizing computing, developing applications and enhancing productivity in small, medium, and large organizations.
The Conversational Monitor System Emerges
After starting life as the Cambridge Monitor System running under the CP-67 control program, CMS was renamed and reborn in 1972 as the Conversational Monitor System component of VM/370 (the many-generations ago ancestor of today's z/VM). Long before other mass-market or commercial virtualization alternatives, VMs—which originated the term "virtual machine"—provided separate individual and isolated computing environments. By replicating and partitioning real hardware, as well as creating virtual devices, VMs allow dozens, hundreds, or thousands of users to work as though they each had a real computer.
CMS was sufficiently used to rate a full program track at SHARE conferences, with dozens of sessions covering its structure, use, IBM/vendor products and application development/production.
While CMS only runs in a VM, current OSes run in VMs exactly as on real hardware. This allows running z/OS, z/TPF, z/VSE and development/test/production on single mainframe systems. CMS also motivated developing virtualization, which led to today’s pervasive virtualization and VMs.
The Evolution of CMS
CMS evolved as a flexible environment for solving problems and developing tools, utilities, applications and powerful systems. Its command/scripting language progressed from primitive EXEC through improved EXEC 2 to IBMer Mike Cowlishaw's magnificent Rexx programming language, used for everything from quick solutions to complex systems with tens of thousands of lines of code. Rexx's power and flexibility led to its adoption across all of IBM and many other computing platforms. IBMer John Hartmann's CMS Pipelines complemented Rexx and added a comprehensive set of tools for data manipulation and event coordination.
Rexx and pipelines can combine, for example, to create a CMS server submitting MVS jobs periodically to browse syslog and extract messages to reveal where in a store-and-forward network congestion is causing service-level agreement (SLA) impact.
Around the same time, IBMer Xavier de Lamberterie developed the powerful full-screen editor XEDIT, which simplified creating or changing files and could be programmed with Rexx.
While CMS production use has greatly declined, installations typically run dozens of CMS VMs alongside other OSes for personal tasks and productivity, editing, job submission, system administration, service tasks and automation. CMS also simplifies and facilitates setup for other guest systems.
In the mainframe's childhood and adolescence—during the 1970s and 1980s—there was competition and occasional sniping between VM and MVS, along with CMS and TSO. What started as mostly good natured banter—e.g., VM's claim that "TSO may be slow but it sure is hard to use"—has long since evolved to cooperation and recognition that mainframers have much more in common with each other than with other platforms.
Enhancing VM’s CMS
CMS blossomed in the era of 4300 and 9370 mainframes, with systems such as Profs/OfficeVision providing tool suites including communication, document management, personal/facility scheduling, printer management and much more—supporting large organizations with thousands of networked users.
As IBM enhanced VM with new facilities in the underlying Control Program (CP) and CMS itself, it became possible to implement powerful facilities which run unattended—with no attached user console—and provide various aspects of system automation. Examples of these are:
- An automatic operator providing human operator-like functions when the system runs unattended (e.g., attaching real devices to users needing them, scheduling users to log on during off-peak hours and executing long-running jobs)
- A process to automatically share a dedicated printer between different print file queues, depending on the sort of files being processed.
CMS is also flexible enough to allow support a graphic display editor driving a set of unique and proprietary coax-connected video monitors for presentation preparation and delivery.
The Value of CMS
As technology and the industry evolved, pure CMS computing declined but CMS value continued in supporting Linux and other hybrid mainframe work. Romney White, IBM senior technical staff member, notes that CMS plays a new role supporting Linux guests. "Folks often IPL CMS in VMs to set things up before they boot Linux there", he says. And "CMS runs the vast majority of service machines supporting Linux: directory maintenance, backup, performance, provisioning, monitoring, log collection, security and so on." He adds that these are as much "production" as OfficeVision was in its day.
Modern service VMs (SVMs) also enhance z/OS operation by, for example, analyzing z/OS print files aimed at unknown destinations, using internal file attributes for electronic routing and reducing printed output.
David Boyes, president/CTO at Sine Nomine Associates, observes that most CMS SVM-enabling tooling is centered on system interface access and "capturing processes into a maintainable and documentable form." He says that "CMS Pipelines and Rexx, and utilities like PROP, IUCVTRAP and WAKEUP are probably the easiest ways to create online services."
Alan Altmark, IBM senior managing z/VM and Linux consultant, believes that most noteworthy SVMs are IBM or third party-provided as part of VM's system stack: network, performance, security, automation, provisioning, etc., with a few homegrown solving customer-specific problems. "The value of CMS," he says, "is really that it is geared to drive the hypervisor” with interfaces such as:
- CP reads CMS files (SYSTEM CONFIG, etc.)
- Various CP utilities are CMS commands (DIRECTXA)
- Rexx DIAG() provides more direct access to CP functions
- CMS functions PIPE and WAKEUP are built to deal with CP (external interrupts, IUCV, SMSG, etc.)
Altmark appreciates CMS being lightweight, and without its own IP stack, so creating SVMs is also a lightweight exercise. He adds that you can create as many as you want. “With its one server, one app philosophy, if one CMS server goes out, the others stay lit, so it enables a certain amount of experimentation,” he says.
Boyes notes that Rexx does a stellar job of orchestrating activities to prepare for Linux use: readying disks, establishing connectivity and network infrastructure, etc., with a minimum of arcane syntax or tooling. He adds that while most functions can be done in Linux, Rexx simplicity and readability is superior to most Linux tools.
Mark Boonie, in IBM's z/TPF development, describes using CMS for similar functions, including:
- Linking to proper system disks based on development project, PUT level, etc.
- Setting up links to users’ VPARS disks and optionally clearing them
- Setting up TPF environment (subsystems, loosely-coupled, etc.)
- Setting VM characteristics (storage size, number of CPUs, console addresses, virtual console routing, virtual tapes, etc.)
While these are almost all CP commands, Boonie says, "CMS is required to read configuration files and provide the Rexx environment."
The year 2022 will mark 50 years of CP/CMS partnership and synergy; CP needs CMS and CMS requires CP. CMS provides flexible, powerful computing under VM, demonstrating forward compatibility as a strength of z/VM and the mainframe in general.
A Powerful Built-in Tool Foundry
z/VM's transition from CMS-based timesharing to hosting Linux as its most popular guest system shows its elegance and flexibility. VM’s survival of that transition shows CMS relevance, providing technology to create the world’s most programmable BIOS. The BIOS is CP, and CMS makes it sit up, speak, roll over and do cartwheels!
It's said that "When all you have is an ‘X,’ everything looks like a ‘Y.’” But even a 500-piece tool chest just gives you 500 kinds of “X” to manipulate 500 instances of “Y.” On the other hand, only your imagination limits CMS' problem/solution combinations. So whether you're a VM veteran or just learning the system, remember the power of its elegant and powerful built-in tool foundry. Don't reinvent the wheel; exploit your mainframe's CMS fundamentals such as Rexx, Pipelines, XEDIT and other native facilities to solve problems and create innovative, powerful applications.
Gabe Goldberg has developed, worked with and written about technology for decades. He can be contacted at Destination.firstname.lastname@example.org.