So being the type of “computer history” nerd I am I got one of my odd and unusual itches. This time I wanted to poke around with MVS (and it’s correspondng JCL) and TSO. TSO is Time Sharing Option…A multi-user environment, something we tend to take completely for granted. I did this with the help of Hercules which is a System/370, System/390, and z/Architecture emulator for Linux, Windows, and OS/X.
It’s odd working on something that is so completely opaque as compared to modern systems. There are a number of assumptions that are rather quite opposite of modern systems. For starters it uses the 3270 terminal system which functions more like form based web pages than more modern VT100 and ANSI systems. Why? Because the 3270 does NOT operate character-at-a-time but instead operates in a form fill/field fill type of mode, much like a web page. VT100 and ANSI both operate character-at-a-time, interrupting the host CPU for each character sent. The 3270 system writes out a block of data, then interrupts the CPU to begin processing. This means that old 370 and 390 based systems supported hundreds or thousands of terminals with just 32MB or 64MB of main memory! Amazing!
So there is no way for vi to work for example, since vi requires character-at-a-time capabilities, thats not to say one couldn’t mock up VT100 or ANSI into the system, it’s just very much not built for it.
Then we have the different way in which it deals with what we today call a file system. There isn’t any sort of directory structure, just a hierarchy convention of separating elements with “.” (dot/period). Thus you end up with files named things like SYS2.CONTROL.
It’s more complicated than that, but you should all be thankful that we have modern file systems and terminal systems. Doing simple things like getting a directory listing is an ‘odd’ thing in MVS/TSO. 🙂