Today, I finished reading “Unix: A History and a Memoir” by legendary computer scientist Brian Kernighan. Kernighan’s accomplishments are too many to list in this space (writing the definitive book on C, co-author of the AWK programming language, to name just a couple), but some people may not know that he was also deeply intertwined with the development of Unix. In this short volume, Kernighan recounts a comprehensive history of the extremely influential and widely used operating system, told from a personal perspective.
Unix, in its early days, was largely the product of Kernighan’s colleagues Ken Thompson and Dennis Ritchie at Bell Labs. But Kernighan was actively making contributions almost from the beginning. His intimate personal knowledge adds a lot of value to the book. Kernighan maintains a good balance between “official history” and his own involvement throughout. He explains concepts related to Unix and its ecosystem clearly and methodically.
There’s no doubt that this book has a limited audience. In my opinion, to find the book interesting, you need to have a pre-existing interest in computer history, Unix, and programming (in that order). If you already have some familiarity with using Unix (or its derivatives) from the command-line, that will certainly help you understand the significance of many of the items that Kernighan discusses. If you have no prior experience with Unix, then I don’t know why you picked up this book or read this review!
At just 180 pages, with plenty of illustrations, “Unix: A History and a Memoir” is an easy read. Yet, Kernighan still manages to pack plenty of detail. He concentrates the most on interesting user-facing innovations within Unix, and innovative programs that became standard pieces of its ecosystem. Kernighan explains clearly how all of the pieces fit together and evolved from one another. This provides interesting insights for software developers and system designers.
Kernighan also spends plenty of pages on the human-side of Unix, including short vignettes about his colleagues and what the work environment was like at Bell Labs. I appreciated these touches and they really helped paint a complete picture of the operating system’s development in my mind. Kernighan is a good story teller.
Kernighan has written many widely read technical books published by highly regarded outlets. I have previously read his books “The C Programming Language” and the “The Go Programming Language.” Like those books, the writing and editing in this self-published memoir is of the highest quality. Yet, a minor point is that the cover design is not. It’s pixelated and looks like something straight out of the ’80s (maybe he was going for that aesthetic). This is ironic given the book’s significant content on type-setting software. I almost wonder if Kernighan did this to make a point along the lines of “don’t judge a book by its cover.” More likely, he just didn’t realize it would come out that way. Even Brian Kernighan makes mistakes.
“Unix: A History and a Memoir” is an excellent book that achieves the wonderful virtues of Kernighan’s other books by being succinct, comprehensive, and clear at the same time. Kernighan is a talented writer, and every word is more meaningful because he lived the subject matter inside and out. The book has a quite limited audience, but if you are in that audience, you should definitely check it out.