top | item 36320845

(no title)

adrianceleste | 2 years ago

As someone who has had to use shells on z/OS, this looks like an amazing improvement

discuss

order

sillywalk|2 years ago

I've never touched mainframe stuff, what does Z/OS normally use as a shell?

ddaaeuggg4446|2 years 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.

rbanffy|2 years ago

I think GP was referring to the Unix System Services, which give you a Unix (z/OS is a certified UNIX operating system!) environment. If you are interacting with the machine on a 3270 session, it'll be any of a number of command-line or menu-driven environments (3270's are screen oriented terminals that send entire pages back and forth). The fun part is that z/OS is almost the least Unix-like operating system imaginable - even the concept of files and directories is alien to it.