Mainframe 101 · Part 01

Mainframe Interaction

Keeping Up With The Mainframes

Zubair Idris Aweda 9 min read Interactive

Why Interaction Matters

Mainframes are famous for batch processing, jobs submitted, queued, and executed without a human sitting in front of a screen. But someone has to write the code that runs in those batch jobs, allocate the datasets those jobs read and write, and monitor the system when things go wrong. That "someone" needs a way to log in, type commands, edit files, and see results in real time.

On z/OS, this interactive layer is built around a handful of core facilities: TSO/E, ISPF, and UNIX System Services (USS). Layered on top of all of this is how people actually connect in the first place, usually a terminal emulator speaking the TN3270 protocol.

Trace a Connection

Press "Simulate Connection" to watch a session travel through the stack — or click any stage to jump straight to it

💻
Your PC
📡
TN3270
⌨️
TSO/E
🗂️
ISPF
🐧
USS
Your PC / Laptop
Everything starts here — with a TN3270 emulator installed, ready to open a session to the mainframe.

TSO/E: The Command-Line Foundation

TSO stands for Time Sharing Option; TSO/E is its extended, modern form. It's an interactive, conversational interface to z/OS — the mainframe equivalent of a command shell, giving each logged-on user their own session and resources.

LISTDS 'ZUBAIR.TEST.DATA'

Short, dataset-oriented, uppercase by convention — that's the flavour of most TSO/E commands. On its own, though, TSO/E is fairly bare: a prompt and a way to issue commands. That's where ISPF comes in.

ISPF: Making TSO/E Usable

ISPF (Interactive System Productivity Facility) is a menu-driven, panel-based application layered on TSO/E. Rather than just describing its panels, try navigating a small mock version of it below — exactly the way a real mainframer would, by typing an option number and pressing Enter, or by clicking directly on an option.

ISPF Panel Navigator

Click an option, or type its number into the command line and press Enter

Primary Option Menu
ISPF PRIMARY OPTION MENU
────────────────────────────────────────────────
0Settings— Terminal and user parameters
1View— Display source data or listings
2Edit— Create or change source data
3Utilities— Perform utility functions
4Foreground— Interactive language processing
5Batch— Submit job for language processing
6Command— Enter TSO or Workstation commands
7Dialog Test— Perform dialog testing
9IBM Products— IBM program development products
SSDSF— System Display and Search Facility
Option ===>
FEATURE NOT MODELLED IN THIS DEMO
────────────────────────────────────────────────

This mock-up focuses on Edit, Utilities, and SDSF — the three options a new mainframer touches most often. Press PF3 to go back.

EDIT — ZUBAIR.TEST.COBOL(HELLO) Columns 001 072
Command ===> Scroll ===> PAGE
000010IDENTIFICATION DIVISION.
000020PROGRAM-ID. HELLO.
000030PROCEDURE DIVISION.
000040 DISPLAY "HELLO, MAINFRAME WORLD!".
000050 STOP RUN.
Click a line number to try a line command: C copies, D deletes, I inserts below.
UTILITY SELECTION MENU
────────────────────────────────────────────────
1 LibraryData set and library utility
2 Data SetData set utility (create, rename, delete)
3 Move/CopyMove, copy, or promote members
4 DslistData set list
6 CommandEnter TSO commands
Option ===>
TSO COMMAND SHELL
────────────────────────────────────────────────

Enter TSO commands directly from ISPF — this is the bridge between the panel world and the command-line world of TSO/E covered earlier.

Command ===>
SDSF STATUS OF JOBS ON SYS1
────────────────────────────────────────────────
JOBNAMEJOBIDOWNERSTATUS
PAYROLLJOB01234ZUBAIROUTPUT — RC=0000
SORTJOBJOB01235ZUBAIREXECUTING
NIGHTBATJOB01236SYSTEMACTIVE
RPTGENJOB01237ZUBAIRQUEUED
SDSF is usually the first place you look when a batch job doesn't behave as expected.

UNIX System Services (USS)

USS gives z/OS a fully POSIX-compliant UNIX environment — a hierarchical file system and shell running right inside the mainframe, alongside the dataset-oriented TSO/ISPF world.

OMVS

Reached from within ISPF — drops you into a UNIX shell session on your 3270-style terminal, running familiar commands like ls, cd, cp, and grep.

SSH

Connect directly with any standard SSH client, much like connecting to any Linux server — increasingly the preferred route for modern developers.

$ cd /u/zubair
$ ls -la
$ cat profile.sh

This underpins Git, Python, Node.js, and much of z/OS Connect and z/OSMF running natively on the platform today.

A Closer Look at the TN3270 Emulator

None of this is reachable without connecting first. Mainframe terminals historically used the 3270 protocol — block-mode, fixed-grid, over a direct connection. TN3270 (Telnet 3270) carries that same protocol over ordinary TCP/IP, and an emulator on your PC renders it as a full-screen display.

Function keys (PF1–PF24) map to common actions — PF3 to exit, PF7/PF8 to scroll. Learning these is one of the fastest ways to get quicker at navigating ISPF.

Live TSO/E Terminal

Type a real command below and press Enter — try HELP for a list, or click a PF key

z/OS TSO/E — SESSION ESTABLISHED READY
READY>
Try: LISTDS · TIME · ISPF · LOGON · WHOAMI · HELP

Summary

TSO/E, ISPF, and USS are the three interactive facilities that turn a mainframe into a place people actually work, layered on top of a TN3270 connection that's remained functionally unchanged for decades, and now just as reachable over SSH.

Get comfortable with all three, and you have everything you need to edit, compile, and manage work on z/OS.

ZIA
Zubair Idris Aweda
Software Engineer · Technical Writer