I have always wanted to know how things work. My father had a wonder for the natural sciences which he shared with me and my brother. He was a man who worked with his hands his whole life, building a kind of instinct about how things work especially at the mechanical level.
Naturally there was a workbench in the basement where everything that needed fixing in the house would end up. Dad made sure that he always explained how the thing was supposed to work, why it wasn’t working, and how he was going to fix it. He was always happy to share what he knew. But more importantly, he was also not shy in admitting what he didn’t know, which was always followed up with, “well how do you think that might work?” or “let’s try to figure that out.”
Small appliances, lamps, furniture, and so much else ended up on that workbench. Not to mention the garage where he would apply his skills to our family cars. When he needed more space he’d pull the car out underneath the huge oak tree over our driveway in the style of a literal shade tree mechanic. I had no shortage of examples to feed my young curiosity about how things worked.
Somehow it was always the electronics that ended up on that workbench that interested me the most. I think it was because, even at a young age, a person can see how mechanical devices work. This turns that. That moves this. This pushes that… You can see machines work. It is a lot different with electronics where you can see the end result of what the system does, but the circuits don’t move. And I think that this lack of natural intuition created a kind of mystery that was alluring. It kind of looked like magic, but I knew it wasn’t. It was just something that had to be understood. “Let’s try to figure that out…”
And it took a while to understand it. Taking apart electronic things whenever I could, reading books from the library, and finally getting an electronics experiment kit from Radio Shack helped a lot.
But when it came to computers, everything I learned about electronics to that point seemed trivial. I knew just enough to know that what computers were doing (even those simple computers of my youth) was WAY more complicated than my crystal radio or IR detector. And thus a lifelong interest in computers was born. Not only was I fascinated at what computers could do, but also by how they worked.
When you opened up a computer when I was a kid, you could point at certain components and know what they did. That’s the sound card. That’s the video card. There’s the hard drive. That’s a bank of RAM. The CPU was still a bit of a magical black box that served as the brain of the machine, but by-and-large, how all the components fit together made some kind of sense.
Today Dad complains about how when he opens the hood of his new car, he can’t work around all of the black boxes and electronics packed in. If he could dig through all of that he would at least still find an internal combustion engine, brake cylinder, radiator, etc. Today’s modern computers are so superscalar that quite often when opening up a computer there is little more to see than one giant chip with an even more giant heat sink. Just like how working on old cars is not only easier, but also more illustrative of basic automotive principles, so too is working on old computers not only simpler, but also more instructive because all of the extraneous features are stripped away and you are left with the bare minimum. Dial back time far enough and you can examine pre-microprocessor computers with no CPUs where the “processor” was made of discrete logic components.
When I sit and look at my replica PDP-8 and PDP-11 consoles, I try to imagine the full-sized, refrigerator-shaped computers that once stood in various business and educational computing centers. They were computers that were modularized to be affordable to manufacture and maintain. But their modules were boards that made up a few logic gates at most. These were computers where you could look at a group of components and actually know what it did. These circuits here do instruction decoding. These over here are the accumulator. Although most of us can’t afford (or have space for) a 70s minicomputer much less an old-iron mainframe in our own homes, you can easily find schematics of these classic machines that lay bare how they work. Not only is it illuminating for someone with an interest in computing, but it is also inspiring to see how engineers worked within the confines of the technology of the day to elegantly solve problems and establish conventions that we still use to this day. The parallels with working on old cars continue.
As I work in my office, my PDP replicas sit on the shelf with their blinkenlights twinkling as a soothing reminder of a bygone era of computing. I know that when I open them up I will find mostly just a Raspberry Pi driving some basic logic to control the front panel lights. A computer the size of a commercial refrigerator once made up of hundreds of individual cards and thousands of discrete components is emulated by the poster child of superscalar computing: a single microprocessor on a board. Irony.
However by using the PDP simulator, entering machine code manually through the front panel, studying its original schematics, and learning about the limitations of the computer, I now know so much better not only how the PDP worked but also have insight into how the Raspberry Pi itself works. Learning is full-circle.
They say those who don’t learn from history are doomed to repeat it. It is just as valid to say those who don’t learn from history can’t understand the present.