The OS Classics
A few days ago I was fortunate to pick up a copy of a book that had a major impact on my early career as kernel engineer;
The Design and Implementation of the 4.3 BSD UNIX Operating System by Samuel J. Leffler, Marshall Kirk McKusick, Michael J. Karels and John S. Quarterman.
It was the first authoritative description of Berkeley UNIX, its design and implementation. The book covers the internal structure of the 4.3 BSD systems and the concepts, data structures and algorithms used in implementing the system facilities. But most importantly it was written by practitioners and builders and as such gave insights that academic text book would never give you.
In those days I was doing an internship at NIKHEF who were still using a collection of PDP 11s and one of my tasks was to get BSD2.9 to run on them. Lots of late nights and head scratching, but got it done eventually. I did learn how to boot from tape, over and over again (Zen!!). When I returned to school, they were about to decommission a PDP 11. I convinced them to put it in a old (big) cleaning closet, upgrade the power to the room, and I went right back to building out my BSD kernel expertise. I started late at Computer Science (28) but worked hard to catch up by getting my hands dirty.
When I posted on twitter I found of the book, many of our peers came up with a list of other books I had also read from that era.
Got my hands on a nice version of the best OS book ever written. It made me become the kernel engineer that I grew up as. It was essential in getting BSD 2.9 to run on the PDP11 that I inherited (Although the Multics papers had their influence as well). pic.twitter.com/xcj8I7ziKw
— Werner Vogels (@Werner) July 12, 2020
Here is a list of some of the books that were shared.
The Unix kernel design books:
The Multics System: An Examination of Its Structure by Elliott I. Organick
The Design and Implementation of the 4.3 BSD UNIX Operating System by Samuel J. Leffler, Marshall Kirk McKusick, Michael J. Karels and John S. Quarterman
The Design and Implementation of the 4.3 BSD Operating System Answer Book , by Samuel J. Leffler and Marshall Kirk McKusick.
The Design and Implementation of the 4.4 BSD Operating System Answer Bookm, by Marshall Kirk McKusick, Keith Bostic, Michael J. Karels and John S. Quarterman
The Design and Implementation of the FreeBSD Operating System by Marshall Kirk McKusick, George V. Neville-Neil and Robert N.M. Watson
The Design of the UNIX Operating System by Maurice Bach (An in-depth look at AT&T's UNIX System V)
UNIX Internals: The New Frontiers by Uresh Vahalia
Operating System Design: The Xinu Approach by Douglas Comer
UNIX: A History and a Memoir by Brian W Kernighan
The Networking books:
TCP/IP Illustrated, Volume 1: The Protocols by Kevin R. Fall and W. Richard Stevens
TCP/IP Illustrated, Volume 2: The Implementation by Gary R. Wright and W. Richard Stevens
TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP and the Unix Domain Protocols by W. Richard Stevens
Internetworking with TCP/IP Volume One by Douglas E. Comer
The Tanenbaum Collection:
Structured Computer Organization by Tanenbaum Andrew S. and Austin Todd
Modern Operating Systems by Andrew S. Tanenbaum and Herbert Bos
Computer Networks by Andrew S. Tanenbaum and David J. Wetherall
Distributed Systems by Maarten van Steen and Andrew S. Tanenbaum
Not a true OS book, but it is a classic and absolutely fascinating:
- Transaction Processing: Concepts and Techniques by Jim Gray and Andreas Reuter
If there is a classic that is not on this list, but you think it should be, let me know.