Why this book matters
The most readable OS textbook available. Covers virtualization, concurrency, and persistence with clear explanations and no unnecessary abstraction. Free online, which makes it easy to start.
Who should read it
Anyone who wants to understand how processes, threads, memory allocation, and file systems work. Good companion to CS:APP or as a standalone OS introduction.
Important chapters
- Part 1 (Virtualization): Processes, CPU scheduling, and virtual memory. Read in order.
- Part 2 (Concurrency): Locks, condition variables, semaphores. Essential for writing correct multithreaded code. Chapter 26–33.
- Part 3 (Persistence): File systems and I/O. Useful context for understanding databases and storage engines. Chapter 36–45.
What to practice while reading
- Implement a simple shell after Part 1. fork, exec, and wait become concrete quickly.
- Write a thread-safe bounded buffer after the concurrency section.
- Read the xv6 source code alongside Part 3 for a real implementation to reference.