Hacker News new | ask | show | jobs
by ddaaeuggg4446 1097 days ago
The thing to understand about z/OS is it has two (well, more than that but it's complicated) different environments.

The first environment is typically referred to as the "MVS", "TSO/ISPF", or "classic/legacy" environment. This is the green screen stuff, where you've got datasets instead of files, access methods instead of drivers, where everything is record oriented and to create a new file (dataset) you have to tell the system things like block size and record organization and other low level details. Did I mention that basic configuration tasks and scripting is often done in assembly? While there have been efforts to create remote access methods and increase ease of use for this environment, it remains the reason mainframes are generally considered a very difficult platform to work with, and why mainframe systems programmers can make a lot of money if they really understand the details of how all of it works.

The second main environment is z/OS Unix, which is technically not a different environment from the first, as it is not an emulation or virtualization of Unix in any way. It has hooks way down in the base control program (mainframe term for kernel), and system calls are real supervisor calls, etc. The major difference is the file system is a typical hierarchical Unix file system (implemented as a VSAM dataset if you are looking in from the outside), and the user interface is a POSIX interface.

Now when I say POSIX, I really mean it and not at all in the way you may interpret that word if it came from a Linux distribution maintainer of some kind. It is a lightweight, bare bones Unix, and everything is manual for the most part. It's got your regular set of command like cp, cat, less, grep, ls, vi (no included vim), awk, etc...but it doesn't have a shell that somebody growing up with Linux would consider modern or user friendly. The shell is an IBM implementation of a POSIX shell with some c shell extensions and whatnot that roughly date it to somewhere in the late 80s / early 90s in terms of ease of use. No colors. No tab completion.

That being said, there is a relatively recent clang/LLVM C compiler, and the main benefit of the (some would argue excessive) adherence to an old standard like POSIX is that a lot of classic Unix programs will just compile and work without too much trouble. You may have trouble with more modern tools that rely on Linux specific details, but if a tool (like vim or bash for instance) was around in the 90s while commercial unixes were still dominant and POSIX still mattered, then it's usually an easy port.

1 comments

Thanks for the info. I feel sort of dunning-kruger :)

So, the 1st environment, which sounds like a real fun time, would be accessed by the 3270 screen-oriented terminal emulator, , and the z/OS Unix is accessed by something like SSH?

Yes and Yes. Though there are options to get to the Unix shell via tn3270 too.