z/OS and Friends: A Rich Heritage of Built-in Functions, From Nucleus to Networking
Veteran mainframer Joe Gulla catalogs the base elements of z/OS, starting with the essential services of the Base Control Program
Editor’s Note: This is the first of two articles to be featured in February as part of the “z/OS and Friends” series.
In my 40-plus years as a mainframer, I had never studied an operating system at the elemental level—until now. I hope the results of this inquiry make for an interesting compendium of what is built-in and what is optional.
In this article, I’ll focus on z/OS and its comprehensive base elements, such as the base control program, language support, device support, security, management, access methods and networking.
Mainframe Systems Programming Is a Diverse Profession
As a beginning application programmer, I quickly realized that the system programmers, especially the operating system ones, had the best jobs. They received education on new technology, had special skills and were paid well.
Four years later, I was one of them, and I realized that the job had awesome challenges. If you made a mistake, the computer system might not work and you would be on the hot seat. Also, testing changes to the OS meant working off hours, and sometimes when you were doing recovery testing at a shared backup site, you would work for 24 hours straight or more during your testing window.
When I got a job with IBM, I changed focus to upgrading software for clients and teaching Multiple Virtual Storage (MVS), Job Control. Language (JCL), Utilities, System Modification Program/Extended (SMP/E), NetView and other courses related to the OS. Later, I worked on a team that developed the IBM software that automated the start-up, recovery and shutdown of transaction processing middleware that runs as part of mainframe systems, including Customer Information Control System (CICS) and Information Management Systems (IMS). Over the years, I have been fortunate to experience the OS through different jobs, tasks and responsibilities that inform my understanding of z/OS.
Everything Starts With the Base Control Program
The Base Control Program (BCP) provides essential operating system services like system startup. When you initial program load (IPL) a z/OS system, you are essentially loading the “nucleus program,” which is a necessary part of the operating system. This program is responsible for initializing the system and bringing it online. The BCP provides additional essential operating system services including:
I/O Configuration Program (IOCP) | You run the IOCP to define I/O configuration data for Channels (all channel types including coupling links that connect between z/OS and a coupling facility), FICON directors (switches), Control units and I/O devices. |
Workload Management (WLM) | You use WLM to monitor a system or a sysplex to determine how much resource should be given to each item of work. Your motivation is for WLM to meet the goals that you have defined for it. In addition, you also can view reports with information about the work. |
System Management Facilities (SMF) | You use the information gathered by SMF and user-written exit routines to generate a variety of reports. SMF is made up of system routines and optional user-written exit routines that collect, format and record system- and job-related information. The real-time information is recorded on direct access volumes in one of the SMF data sets. |
z/OS UNIX System Services (z/OS UNIX) Kernel | You use z/OS UNIX to make it easier to implement or port applications in an open, distributed environment. z/OS UNIX is available to z/OS XL C/C++ application programs using the C/C++ language bindings. These bindings are supplied throughout the Language Environment element. The components, language, bindings and supporting environment work together to provide an application programming interface that supports industry standards. |
Program Management Binder (PMB) | You use z/OS program management services to create, load, modify, list, read and copy executable programs. With the PMB, you can create executable modules in different formats and store them in Partitioned Data Set (PDS) or Partitioned Data Set Extended (PDSE) libraries, or in z/OS UNIX files. |
IBM Health Checker for z/OS | You use Health Checker for z/OS to gather information about your system environment and system parameters to help identify potential configuration problems before they impact availability or cause outages. Health Checker for z/OS supplies a framework that can be used by other products. |
Support for the Unicode Standard | You use z/OS Unicode Services to perform services for example, character conversion, case conversion and normalization. z/OS Unicode support is based on Version 13.0 of the Unicode Standard, although lower versions are supported by some services. |
z/OS XML System Services (z/OS XML) | You use z/OS Extensible Markup Language (XML) because it contains a useful parser. This parser is intended for use by system components, middleware and applications that need a simple, efficient XML parsing solution. |
Capacity Provisioning | You use Capacity Provisioning to ensure that work is processed according to the service level agreements that are in place. A domain is controlled by the Provisioning Manager that runs on a z/OS system and controls the domain in real time. It observes the software elements, monitors workload demands and observes the physical utilization of the shared processor pool. It can recommend hardware configuration changes to the system operator or can activate or deactivate capacity to satisfy these demands. |
System REXX for z/OS Base | You use System Restructured Extended Executor (REXX) when you need REXX execs to be run outside of conventional Time Sharing Option/Extensions (TSO/E) and Batch environments. The System REXX environment provides a function package that allows a REXX exec to invoke system commands and to return results back to the invoker in a variety of ways. |
Additionally, a part of the BCP is the Job Entry Subsystem (JES2) which accepts the submission of work into the BCP and the z/OS Upgrade Workflow that provides the steps for upgrading to each BCP is the z/OS Upgrade Workflow.
Many Other Base Elements Are Part of This Dynamic z/OS
In addition to the BCP and its components, there are several other categories of elements that are a built-in part of z/OS. This built-in functionality is like a trust fund; think of them as assets in the z/OS account.
I have come up with 11 categories discussed in the section below. Some elements fit nicely into one category. For example, the Alternate Library for REXX is a good fit for the Language Support category. The Network File System fits Networking and Access Methods and UNIX. I picked Networking—you might have picked UNIX.
1. Language Support
Every operating system needs programming languages and other software to make those languages work well with displays and interwork with other systems and applications.
Base Element | How You Can Use It |
Alternate Library for REXX | Use this base element to run complied REXX programs. |
Graphical Data Display Manager (GDDM) | Use GDDM’s presentation services and device-driving capability for graphics. It also has REXX support. |
High Level Assembler (HLASM) | Use this base element as it integrates almost all functions of past assemblers and provides extensions and improvements. |
Interactive System Productivity Facility (ISPF) | Use this base element as it provides facilities for all aspects of host-based software development. It has a Dialog Manager, Program Development Facility, as well as a Software Configuration and Library Manager. |
Language Environment | Use this base element as it provides the runtime environment for programs that are generated with C, C++, COBOL, Fortran and PL/I. |
Metal C Runtime Library | This base element utilizes a set of Least Privilege Access-resident (LPA) C functions that can be called from a C program that is created by using the z/OS XL C compiler METAL option. |
Runtime Library Extensions | Use this base element to utilize Common Debug Architecture libraries Utilities, UNIX System Laboratories I/O Stream Library and USL Complex Mathematics Library, Mathematical Acceleration Subsystem libraries and Automatically Tuned Linear Algebra Software libraries. |
Terminal Input Output Controller | Use this base element to interface between TSO and Virtual Telecommunications Access Method (VTAM). It allows TSO to communicate with the terminal hardware. |
Time Sharing Option/Extensions | Use this base element to utilize its interactive terminal interface. Note, as in prior releases of TSO/E, this element includes Command Lists (CLISTs) and REXX but does not include a REXX compiler. |
XML Toolkit | Use this base element to tap into XML technology that will assist you in integrating vertical/industry-specific data formats, structures, schemas and metadata to ensure industry compliance of data representation and content. |
z/OS Font Collection | Use this base element to utilize character sets, coded fonts and Advanced Function Presentation (AFP) code pages, as well as a comprehensive set of single-byte fonts. |
z/OS OpenSSH | Use this base element as it provides secure encryption for both remote login and file transfer. It has utilities including Secure Shell (SSH, login tool); Secure Copy Protocol (SCP, for copying files); Secure File Transfer Protocol (SFPT, for file transfers); Secure Shell Daemon (SSHD, listens for connections from clients) and other functions. |
2. Web
Running a web server on z/OS is very useful when you need to host a website that requires very high availability, reliability and the ability to handle large volumes of transactions.
IBM Hypertext Transfer Protocol (HTTP) Server powered by Apache | Use this base element web server to provide scalable, high-performance web serving for important e-business applications. It includes security authentication and authorization capabilities like those provided in the Domino HTTP Server. |
3. AI
AI on z/OS is important because it allows organizations to leverage the immense processing power of IBM Z mainframes to analyze large datasets in real time, enabling intelligent automation of critical business processes, optimizing system performance, detecting irregularities and improving decision-making.
IBM Z Deep Neural Network Library (zDNN) | Use this base element software as it provides high-level libraries, frameworks and model compilers to use the IBM Z on-chip AI accelerator, which is known as IBM Z Integrated Accelerator for AI. |
4. Middleware
Middleware is an important component of the software stack that runs on z/OS. There are a few built-in basic elements for z/OS and others that are available as optional features, and still others that are program products in areas including database systems, message queueing and routing functions, and transaction managers.
IBM Tivoli Directory Server for z/OS (IBM TDS for z/OS) | Using this base element provides secure access for applications and systems on the network to directory information held on z/OS. This component consists of the Lightweight Directory Access Protocol (LDAP) server, LDAP client and utilities. |
z/OS Xvfb | Use this base element when you need an X server to run on machines with no display hardware and no physical input devices. It’s primarily used for testing, like when testing clients in conditions that would otherwise require different hardware. |
5. Device Support
Software utilities are needed to interact with specific IBM Direct Access Storage Devices (DASDs), plus magnetic and optical devices.
Interactive Control Key Data Set Facility (ICKDSF, Device Support Facility) | Use this base element because it helps you perform functions that are required for the installation and use of IBM DASD. |
Magnetic Ink Character Recognition/Optical Character Recognition (MICR/OCR) | Use this base element if you need device support code for various magnetic and optical devices. |
6. Security
Providing support for secure use of resources is important to most operating systems and is particularly important to z/OS. IBM has built into the OS significant support for a variety of important security techniques and standards.
Cryptographic Services including Integrated Cryptographic Service Facility (ICSF), Open Cryptographic Services Facility (OCSF) Base, Public Key Infrastructure (PKI) Services and Secure Sockets Layer (SSL) | Use this base element for the transformation of data to conceal its meaning. In z/OS, the base element Cryptographic Services provides functions including data secrecy, data integrity, personal identification, digital signatures and the management of cryptographic keys. |
Integrated Security Services | Use this base element for security functions as it contains Network Authentication Services, Enterprise Identity Mapping (EIM), Open Cryptographic Enhanced Plug-ins (OCEP), and OCSF. |
7. SW Install
Software installation utilities are needed to both install and maintain software components.
SMP/E | Use this well-established and robust tool for installing and maintaining software and for managing the inventory of installed software. |
8. Management
For IT systems, management is a general term that is used for a broad set of activities, like monitoring systems and changing their status as required. Management could also mean restarting systems when they fail or become unresponsive. Over the years, many management functions and actions have been automated by software specifically written for that purpose.
Common Information Model (CIM) | Use this base element when you need a standard data model for describing and accessing systems management data in heterogeneous environments. The model allows system administrators to write applications that measure system resources in a network with different operating systems and hardware. |
Environmental Record Editing and Printing Program (EREP) | Use this base element to edit and print reports for the records that are placed in the Error Recording Data Set (ERDS), which can be used by IBM Support to diagnose problems. |
Enterprise Systems Connection (ESCON) Director Support | Use this base element when your installation uses ESCON directors. The ESCON Director Device Support feature enables reporting of ESCON director device errors to z/OS. |
First Failure Support Technology/MVS (FFST/MVS) | Use this base element to utilize immediate notification and first failure data capture for software events. |
Hardware Configuration Definition (HCD) | Use this base element as it defines both the operating system configuration and the processor hardware configuration for a system. |
IBM z/OS Liberty Embedded | This z/OS base element includes a copy of the IBM Liberty server stack for sharing between IBM z/OS elements. This base element is supported for use by IBM products only and is not intended for use by customer applications. |
IBM z/OS Management Facility (z/OSMF) | Use this element as it provides a web-based interface that helps you manage various aspects of your z/OS systems. It provides a browser to help streamline some traditional tasks and automating others. In short, z/OSMF can help to simplify some areas of z/OS system management. |
z/OS Data Gatherer | Use this element as it collects z/OS resource usage and performance data; for example, SMF 70 subtype 1 record data. |
9. Networking
Networking is about connecting people to the applications they use and their devices. Networking is also important in establishing system-to-system communications facilitating the desired distribution of functions, including applications and databases.
Communication Server | Use this base element to provide secure Transmission Control Protocol/Internet Protocol (TCP/IP), Systems Network Architecture (SNA) and UNIX networking throughout an enterprise. |
Network File System (NFS) | Use this base element’s distributed file system protocol that allows a user on a client computer to access files on a server over a network, much like local storage is accessed. |
3270 PC File Transfer Program | Use this base element to transfer files from the host to the workstation for offline data manipulation, updating or correction, or for the transfer and storage of local data in the host system. |
10. UNIX
UNIX was important in the development of the internet and the reshaping of computing as centered in networks rather than in individual computers. UNIX support in z/OS opens that computing model to features and functions that are useful to mainframe computing users and applications.
Data Set File System (DSFS) | Use this base element with z/OS UNIX applications so they can access data sets by presenting the data sets as a tree-structured file system that is mounted at mount point/DSFS in the z/OS UNIX file system tree. |
z/OS Container Extensions (zCX)—LINUX tool | Use this base element as it provides the runtime support to deploy and run Linux on IBM Z applications that are packaged as Docker Container images on z/OS. |
z/OS File System (zFS) | Use this base element when you want to utilize a UNIX file system. zFS file systems contain files and directories that can be accessed with z/OS UNIX application programming interfaces. |
z/OS UNIX System Services | Use this base element because it provides the standard command interface familiar to interactive UNIX users. This base element is made up of Application Services, which includes the Shell and Utilities, Debugger, and Parallel Environment. |
11. Access Methods
Access methods were developed to standardize the processes of accessing data and networks. For example, some methods use open, close, read and write statements to handle needed actions to access data and simplify the job of the application programmer.
Data Facility Storage Management Subsystem Transactional VSAM Services (DFSMStvs) | Use this base element as it enables batch jobs and CICS online transactions to update shared Virtual Storage Access Method (VSAM) data sets concurrently. |
DFSMS Data Facility Product (DFSMSdfp) | Use this base element as it provides storage, data, program and device management functions. |
A Map of z/OS Development
In this article, I have discussed the BCP including its essential operating services like WLM and SMF. In addition, I have categorized and briefly discussed 39 built-in base elements of z/OS.
As a collection, they are an extraordinary assembly of software that provides a map of the development of what is now z/OS. The next article in this series will focus on z/OS and its optional features at the 3.1.0 level.