: New: Book Report: Unix (a History and Memoir)

Brian Kernighan wrote some remembrances of his time working on Unix-y things at Bell Labs. Some of it was new to me; some I'd already read elsewhere. (When I think about the timing, I suspect that the reason I'd read about some of this stuff elsewhere is that Kernighan was asking other Unix-folks for their stories as research for this book. And they wrote down their memories to pass along but also posted them publicly? Maybe?)

Much of the new- and interesting-to-me info was context. E.g., I already knew that Unix's "everything is a file" approach was important. It's darned handy if you can use file-reading tools to read data from a something peripheral device by reading a fake file in the /dev/something1 file. But the book points out that "a file is a file" was already kind of a bold move at the time. Systems back then would treat different files differently; the OS "knew" that Prolog program source files were special and kept them in their own area. But that meant you couldn't use some general-purpose programs on all files; you had to handle those Prolog files differently; and other "special" files differently. After a while, those system-provided shortcuts for Prolog didn't seem like shortcuts; they seemed like not-worth-it complexity.

Kernighan mostly worked on document-preparation tools; there are ~15 pages of memoirs about that. That section was kinda in one ear and out the other for me. I never used those tools, so there wasn't a section of my brain ready to grab onto new-to-me facts. But if you were into nroff and such, I bet that material would be especially interesting.

If you're into Unix or C or grep or compiler-compilers or other Unix-y things, this is a fun, quick read.

Tags: book programming