It’s a well documented fact that I love computer history, and while the personal computer revolution of the late 70’s on to today has been a focus of my interest in all aspects from the microcomputer boom of the 80’s to modern desktop systems to servers to business systems and related tech, one end of things I’ve not actually taken a look at has been the Mainframe — the massive beast systems which manage our daily lives in every way imaginable.
The other week I stumbled across the channel of YouTube user Moshix, who focuses his content on Mainframes; especially the awesome fact that mainframe emulation exists — something I only learned when I found this channel! It’s filled with videos showing both real and emulated mainframe usage and was quite the eye-opening experience in my personal understanding of the evolution of computing.
Understand that mainframes aren’t servers — not in the way we think of them. They are machines built specifically for data processing and in such a role are incredibly efficient. Relics of the early days of computing, they generally use arcane commands and logic, requiring a kind of computer knowledge far different from that of unix/linux systems, Windows, or even many other early microcomputers. The logic of these machines dates back to the days of paper tape and punch-cards for program entry, of true teletypewriter terminals and languages like COBOL and FORTRAN. They are truly the ultimate in “legacy” systems.
Yet they still run our daily lives. While the machine you imagine, like the one pictured in this article, is long since retired, the modern mainframe ecosystem like IBM System Z emulate the environments of mainframes past in such a way as to maintain full comparability with code that may have been written half a century ago, running in an updated version of what is otherwise the same operating system as, again, half a century ago! All this controlling every purchase you make, your tax records, transit schedules, pay at your jobs, our entire computerized world, all running, for the most part, just as it has for 60 years. It’s absolutely wild and I kind of can’t wrap my head around it.
I mentioned emulations earlier — the Hercules emulator is built to emulate various mainframe hardware configurations and, in my case, I’ve gone with a Windows port of Hercules and the TK4-Tur(n)key system, based on IBM’s MVS 3.8 — an operating system version that’s about 50 years old, sure, but is quite usable, especially for learning, and oh man is there a lot to learn.
These systems haven’t truly changed much in decades — they date back to the earliest computer concepts, and as such are extremely strange to work with coming from modern computer sensibilities. Arcade command line interfaces mixed with terminology that seems alien (example, it’s not a “file” but a “dataset”) all revolving around a computer concept that you don’t “use” as much as you truly program and let run. Hell, if you can’t write a program in some kind of programming language and encapsulate in IBM’s Job Control Language (JCL) you aren’t going to be able to do a damned thing with the mainframe and I kind of love it for that.
Let’s be clear that I barely know what I’m doing with the software, but the fact that I have a running emulated mainframe that I can access and mess with whenever I want is absolutely awesome. As it would turn out, a person in my phone phreak group also happens to enjoy using mainframes and, get this, actually knows how to use them enough to write programs that actually work! He coded a directory lookup program for PhreakNet which worked fine — it was one thing for this to be a database running on an emulated mainframe, but another for him to have written a program that let you actively access the data and query it. Nothing special in the grand scheme itself, since you could do the same with common PHP and a SQL database, but it being coded in such a way that you could actually run that program on a 50+ year old IBM 360 mainframe was just amazing to see.
There’s a ton to learn here, and I know, quite honestly, I’ll likely never get anywhere with this. I can barely work my way around a Unix shell, can’t program for shit, and only have a basic understanding of how to interact with a mainframe. I doubt I’ll reasonably find the time to learn something like COBOL and JCL enough to get anything actually going that’s custom, but that’s fine. The fact that I’ve expanded my knowledge of computing to include a taste of what mainframes are actually like is enough, not only to appreciate how they work but also the dedication and skill of the computer pioneers who created them, and, even more so, to appreciate how good we have it with virtually any “modern” computer, be it the latest Windows 11 machine to an IBM 5150 with PC-DOS, from an Apple II to the latest M2 based Macintosh, it’s all still worlds more user friendly than the mainframe; an amazing class of hardware that is, in a sense, a living fossil from the earliest days of computing.