
Design of the Unix Operating System
by Maurice J. Bach · first published 1986
74% recommend19% neutral6% critical
Why HN recommends it
Clear walk through the UNIX kernel's key components, especially the buffer cache and file system internals; good for building a conceptual foundation in OS implementation, even though details differ from modern Linux.
Summarised by Claude from recommending comments
In this timely new book, Maurice J. Bach traces the popularity of the UNIX® System throughout the computer industry. The author describes the internal algorithms and structures that form the basis of the operating system (the kernel) and their relationship to the programmer interface. Among its key features, the book: - describes the outline of the kernel architecture - introduces the system buffer cache mechanism - includes data structures and algorithms used internally by the file system - covers the system calls that provide the user interface to the fil
Affiliate links. As an Amazon Associate I earn from qualifying purchases.







…But you'll have to be ok with not understanding all of CS anyway. Nobody does. You can spend your time searching for a silver bullet. Or you can just read the manual. Knuth is the manual. + Bach's The Design of the Unix Operating System describes how operating systems and file systems work. Even Windows describes it's similarities and differences using the same terminology. + Hellerstien's Berkeley CS 186 Intro to Databases lectures.…
on “Ask HN: How do I choose the right resource to learn CS fundamentals?” ↗My take on some which I think should be atleast read once: 1) The unix programming environment 2) The design of the unix operating system 3) The Pragmatic Programmer 4) Programming Pearls 5) Computer Systems: A Programmers Prespective 6) K & R C 7) The art of Unix Programming. PS: I admit my bias towards systems.
on “Ask HN: Books you should have read when you start a career in SE / CS?” ↗…textbook, which is the CMU intro systems book, Computer Systems: A Programmer's Perspective[1]. For OS theory, our OS/advanced OS textbooks are fine, but for actual implementation my coworkers recommended The Design of the UNIX Operating System[2], Linux System Programming[3], and Understanding the Linux Kernel[4]. [1] http://www.amazon.com/Computer-Systems-Programmers-Randal-Br... [2] http://www.amazon.com/Design-Operating-System-Prentice-Softw...…
on “Roll Your Own UNIX Clone” ↗A classic on the UNIX filesystem would be Chapter 4, INTERNAL REPRESENTATION OF FILES, from: Maurice Bach, Design of the UNIX operating system, 1986. It's quite short, about 25 pages. I believe there is an online version available.
on “Practical File System Design with the Be File System (1999) [pdf]” ↗There's also the great "The Design of the UNIX Operating System": https://www.amazon.com/Design-UNIX-Operating-System/dp/01320... Which is probably less relevant today in terms of directly understanding the implementation. But an interesting and enlightening read.…
on “A Heavily-Commented Linux Kernel Source Code [pdf]” ↗…multiple hardware threads and predictive execution and pipelining and multiple magnitudes of latency for lots and lots of processes pooled together. If you're interested in diving down, I recommend The Design of the Unix Operating System by Bach. It has clear diagrams and language that show the big ideas happening below the application layer.
on “Ask HN: Is Evented or Async I/O just polling at the end of day” ↗…some exercises from the textbook that use xv6. Here are some other nice OS textbooks from a Unix standpoint that I've used over the years whenever I need to study some aspect of Unix in depth: - The Design of the UNIX Operating System by Maurice Bach (1986) - The Design and Implementation of the FreeBSD Operating System, 2nd Edition by McKusick, Neville-Neil, and Watson (2014) - UNIX Internals: The New Frontiers by Uresh Vahalia…
on “Ask HN: Is Minix dead? No commits since 2018” ↗To me, the place to start is Bach's Design of the Unix Operating System because provides the right context for Advanced Programming in the Unix Environment. Advanced Programming sort of presumes familiarity with its concepts and reading it first is probably faster than not…
on “Ask HN: How to learn about Linux system internals?” ↗I found a good introduction on unix memory caching in chapter 3 (The Buffer Cache) of 'Design of the UNIX Operating System', http://www.amazon.com/Design-Operating-System-Prentice-Hall-... . At least it was good for me (mathematician by training, programmer by profession)
on “Help, Linux ate my RAM” ↗…hard) Foundation Series - Assimov (Great stories from one of the best sci-fi writers ever) -------------------Software related Code Complete Concrete Mathematics The Art of Computer Programming The Design of the Unix Operating System Introduction to Algorithms -Cormen Design Patterns Elements of Resusable OO Design -Gang of Four
on “Ask HN: Book Recommendations?” ↗On the same line, let me recommend you a book: "The Design of the Unix Operating System," by Maurice J. Bach. If I am not mistaken, Mr. Bach was a member at Bell Labs. My personal take on the book is that the kernel was meant to be a portable virtual machine, extensible through processes,…
on “Bash 5.0 released” ↗…I've never found anything better than the book The Linux Programming Interface. For Linux internals, Linux Kernel Development by Robert Love is good. For something more removed from current systems, The Design of the UNIX Operating System and Operating Systems: Design and Implementation are good.
on “Ask HN: Recommended resources to learn the Linux kernel and OS theory?” ↗…accompanying it. http://adelaideos.sourceforge.net/ Once you've gone through this you'll be in a better position to tackle the Linux kernel and books on OS architecture. My personal favorite is "The Design of the UNIX Operating System" by Maurice J. Bach. It's an old book but explains things well, and I believe it was one of the references Linux Torvalds relied on when creating Linux.
on “Ask HN: Recommended resources to learn the Linux kernel and OS theory?” ↗A classic: The Design of the UNIX Operating System by Maurice Bach. https://www.amazon.com/Design-UNIX-Operating-System/dp/01320... I learned more about OS from this book than any academic material used at the university and gave me a good foundational…
on “Ask HN: Recommended resources to learn the Linux kernel and OS theory?” ↗…the areas of operating systems and file systems, and their work is top-notch. For learning the basics about how the kernels of Unix-like systems are designed, I recommend the following books: - The Design of the UNIX Operating System (1986) by Maurice Bach. You could also compare this book to the source code of Version 7 Unix, which is freely available under a BSD-style license. Many of the basic design principles of Unix-like operating…
on “Ask HN: Recommended resources to learn the Linux kernel and OS theory?” ↗