These are notes from a z/OS and Mainframe basics class I took in August. I’m no expert and if I got something wrong, feel free to leave a comment.
In the sixties, computers read punch cards and ran non-interactive batch jobs. Then in the seventies, IBM released… TSO. Yup, time to get used to it: Mainframe software has cryptic names that sound as if the programmers hit the keyboards with their faces.
The best mnemonic for TSO is: It’s something that allows you to Take the System Over. Officially, IBM sells it under the name Time-Sharing Option.
TSO allows multiple users to work on one mainframe system. For example, all users can now schedule their batch jobs interactively and simultaneously. In the multi-user world, the job card contains additional information about the job owner and job class (priority).
A TSO session is similar to a login session on Linux or Unix etc. It shares and assigns resources (CPU, memory) in a transparent way, so that users don’t notice one another. (If they do, they use the other mnemonic: Time Sucking Option.) TSO also serves some purposes that are similar to a DOS or Linux shell, but not all of them. You can enter commands at a command line, such as logon, logoff, help. You can also do some basic work with data sets — this is what files on mainframes are called. (More about data sets on another day.)
If you ever get your hands on a mainframe terminal, or just to give you a picture, here are some useful TSO commands:
|mvsduser, listt, freespce||display all current users or tasks, or disk space status|
|system, time, ipldate||System info, current time, uptime|
|profile||change user settings, such as the default prefix. (Think of the prefix as your “working directory”.)|
|send, transmit, receive||send a message or data set to another user on this system|
|submit, cancel, status||manage batch jobs|
|copy, edit, delete, rename, allocate, scan||work with data sets, e.g. edit them line-by-line|
|listcat, listds||list data sets or their attributes|
|exec, tso ex||execute scripts|
The z/OS facility (i.e. system utility) that is a bit closer to a Linux shell in purpose, is ISPF, the Interactive System Productivity Facility. I don’t know what anglophones use as a mnemonic, but in my head I call it “IslandPferd” (Icelandic horse). ;)
ISPF is the mainframe’s application programming interface, but it also serves some of the functions of a file explorer. It’s a bit more userfriendly than using TSO directly because it has “menus” and “dialogs”, and it includes an interactive text editor and file explorer called ISPF/PDF (the slash is part of the name!). It is even user- and vendor-extensible, so you can customize the menus and add panels that interact with your company’s custom scripts — if you’re good at ASCII art, that is.
The PDF in the afore-mentioned ISPF/PDF stands for Program Development Facility. Users typically sign on to a TSO session, and then start up ISPF/PDF first thing. You use PDF to browse and edit data sets: It has menus for searching, listing, moving, renaming, deleting, copying, printing, and comparing data sets.
Using ISPF was one of two times in my life where I secretly wished I could use vi instead. (The other time was when I tried working with Blender.) :-D But truth is, vi wasn’t invented when mainframe programmers were already happily coding security and transaction systems. And even I have to admit that ISPF beats editing inodes with magnets…