This famous 70’s commentary on the Unix source code is considered by many to be the best text on the subject. It was innovative in presenting remarkably well annotated source code, an unusual thing at the time. Originally written as a text for a UNSW course, the book was not officially published for some 20 years, during which time it became what is believed to be the most copied book in the computing field. It went out of print last year (I think), just before I tried to buy a copy. I’m glad it’s available again so I can finally own a “real” version. Used copies of this 1996 version are selling for around US$170 at the moment, although I guess these prices will drop very soon. I have no idea how much one of the original Bell Labs versions would go for, if you can even find one.
Note that Greg Lehey has put the source and PDF/PS versions of the book online here, as found in an alt.folklore.computers posting from 1994. This was from before the original official publication in 1996 and does not contain the extra commentary on the book itself by folk such as Dennis Ritchie and Ken Thompson.
Poking around a little, I found this 1994 interview with John Lions reposted to Usenet, which shows that the students at UNSW actually suggested covering the entire kernel, after initially only having parts of it presented to them. The interview is also interesting for some general perspectives on Unix.
I’ve heard a greybeard say that the best thing about the Lions book is that you can use it to fit an understanding of an entire Unix kernel into your head. Trying to understand, say, all of the Linux kernel these days is likely an impossible task: it’s just too big and complicated. And, judging by the Linux kernel over the last few years, things are changing very quickly, at an increasing rate (I’m reminded of the accelerating expansion of the Universe :-) So, I think there is really great value in a book such as this, covering an early, classic kernel, as a foundation for a fuller understanding of modern kernels.
Peer to Peer are also about to release an interesting looking book titled Building the ARPANET, a collection of seminal papers and documents on the subject. For those of us interested in such things, this should be a great way to access the information. I often spend quite a bit of time trying to track down a paper that I’m fond of, such as IEN 2, “Comments on Internet Protocol and TCP” by Postel 1977, which outlined the concept of separating a “hop by hop” interface from TCP, creating what we now call the IP layer.
We are screwing up in our design of internet protocols by violating the principle of layering. Specifically we are trying to use TCP to do two things: serve as a host level end to end protocol, and to serve as an internet packaging and routing protocol. These two things should be provided in a layered and modular way. I suggest that a new distinct internetwork protocol is needed, and that TCP be used strictly as a host level end to end protocol.
Cool stuff. I look forward to a book collating the best of this kind of material from the ancient era.
I’d also like to see something similar collecting together seminal computer security texts, particularly those now out of print and held tightly in rare public copies of journals by a few libraries. Examples are found in proceedings of the National Computer Security Conference, such as Boebert & Kain’s A Practical Alternative to Hierarchical Integrity Policies from 1985, which outlines the concepts of Type Enforcement, a central component of SELinux.
NIST is making an effort in this area. They’ve published all of the proceedings of the NISSC (initially NCSC) from 1996 to the final conference in 2000 here. My understanding is that copyright problems are preventing online publication of proceedings from earlier years (where you would find the Boebert & Kain paper), although they’ve put up selection of important earlier papers on their History of Security page. While people have written excellent textbooks covering these topics in a readable and contextualized manner, I still like reading the original papers where possible.