
I picked up this book about five years ago and like so many others, I started it and never finished it... Until a couple days ago. When I started it, I was amazed. It was incredibly good but I was a relatively new father and had just moved into a new house and I had to put it down. Until recently.
While I was at
Black Hat Training this year, I picked up
Michal Zalewski's Silence on the Wire. Zalewski is a world-reknowned information security personality who's work has inspired my
own. I've looked for a copy of Zalewski's book, but our local bookstores have never had it on the shelf.
As I suspected, it's very good, but early in the book it presents some logic gate diagrams and then moves quickly into circuit diagrams for demonstrating how computers perform addition. I wasn't quite following Zalewski's presentation but knew I'd seen something like it before.
I went to the garage and started digging through boxes. I found
Charles Petzold's Code: The Hidden Language of Computer Hardware and Software after a few minutes.
Bingo! I'd forgotten how good Petzold's Code is. It's a book about computers written for the layman. Petzold starts simply enough, two neighborhood kids who want to communicate with one another at night using flashlights. They go from trying to draw letters in the air, to using a binary code of dots and dashes, Morse Code.
Eventually, one of the neighbor kids moves away and a new kid takes his place, but his room is on the other side of the house and you have to find a new solution. Petzold breaks down the anatomy of the flashlight complete with loads of illustrations. He shows how the kids in the book could wire up switches and lights in their rooms and continue to communicate using Morse code.
Petzold moves into a full blown discussion of the history of the telegraph and the hardware that made it possible, complete with dozens of illustrations. Next there's a side discussion of number systems and alternatives to base 10 or the common decimal system that we all know and love. We are led on a journey that eventually demonstrates to us that we can convey lots of information using a binary number system consisting of only one and zero.
Petzold continues the journey with a tour of logic and telegraph relays can be used to build systems that mirror logic systems. Again loads of wonderful illustrations make this easily approachable. (The following image was lifted from
http://juliankay.com/blog/index.php?nbp=blog1&nbi=342).

At last in chapter 12, Petzold puts together the relays and switches and builds an adding machine similar to the one Zalewski has in his book. From their we learn about subtraction, how computer memory is made from the same basic logic gates and on and on ending with a brief discussion of the Java computer language and it's concept of a virtual machine.
Code is a computer book like no other. It's truly amazing. If you're at all interested in knowing more about how computers work, Petzold's book is like a crash course in Computer Science but without the stuffed shirt professor looking down on your inferior intellect.
Having read Code from start to finish, I think I'm ready to get back to Silence on the Wire. I'm really looking forward to it and suspect it will be as good as Code, though it's a book about security. When I'm finsihed, I'll post a review... for what that's worth.