Confessions of an Antediluvian Geek - A personal history of computing

Part Three - The Bare Metal

Picture of an IBM System/360 As I said earlier, my grade-school friend had gotten a job as a student aide in the computer center of his university, and we would use the computers from time to time when he got permission. After some time, the school upgraded from their IBM 7044 to the latest, greatest mainframe of all time, the IBM System/360.

To explain this, I have to go back a little. Before the 360, IBM had many different models of computers, as did the other computer manufacturers. This is nothing unusual, but the unusual thing, at least as we see it today, is that every model of computer was completely different. They couldn't run each other programs. They were so different, that some worked in binary, others worked in decimal, some were considered suitable only for commercial use, other for scientific, and devices that attached to one model would not be usable with another. This was a big problem for computer users. They would write dozens or hundreds of programs for their current computer, and then, if they had to replace it, say to get a bigger, faster machine, none of their programs was usable. In fact they all had to be completely re-written from scratch, and the people who wrote them didn't have any knowledge of how the new computer was programmed. This, needless to say, was very expensive, and nobody liked it. The computer users hated it, for obvious reasons, but the computer manufacturers also realized that it was costing them sales, because it was really hard to sell a newer faster model.

So along came some brilliant people at IBM who came up with the idea of the System/360. This was an entire family of computers, from small to gargantuan, but they had a completely new and unique feature. Each member of the family could run the same programs and attach the same devices. The less expensive ones would be slower, of course, but the programs would run. IBM spent a lot of money developing these machines. One oft-quoted statement is that IBM "bet the company" on the 360. They won the bet. The System/360 ended up being the most used, most profitable computer of the 60's, 70's, 80's and much of the 90's, and the descendant, the Z System is still widely used today. If you want to read a fascinating book on the history of the IBM System/360, I highly recommend this one.

Picture of IBM Manual So, when my friend's school got some System/360's, he and I both grabbed some programming manuals and dug in. Now, these were not textbooks teaching you how to program. These were reference manuals describing the detailed operation of each of the instructions that the computers would execute. Sort of like a dictionary. Imagine learning English solely by reading a dictionary. We did it though. The manual was called the "IBM System/360 Principles of Operation". It was the programming Bible.

We had a problem though. The school had gotten one of the big, expensive, powerful machines, an IBM System/360 Model 65. This machine ran an operating system called OS/360. This was IBM's flagship operating system. It was very complex, capable of running more than one program concurrently, which was practically unheard of before then. The problem was that to operate and use OS/360 was very difficult, and required a lot of training, which neither me or my friend had. So we weren't allowed to use the OS, and in fact, even though we were given permission to use the Model 65 on weekend evenings, we made sure that the disk drives that held all of the OS/360 files were turned off. So we had this big, powerful mainframe computer all to ourselves, and no operating system. What could we do? Well, we were young college students, armed with a big mainframe computer and our Principles of Operation manuals. We decided to write our own Operating System. For you non-programmer-types reading this, let me give you an analogy. This is like a kid, given access to his dad's workshop, with maybe a drill press and a lathe to play with, deciding to build a jet aircraft.

I won't go into the boring details of how we did it. It took us many months, and the result was just a toy operating system, just useful for my friend and I to play with, but we learned things while doing it that changed our careers, and thus, our lives. I have been doing serious programming ever since, and have written several more complex and more useful operating systems since then. It's hard to explain the pride and sense of achievement when every single bit and byte inside the computer is something you wrote. Most programmers never experience that. It's called running on the "bare metal".