Think Like an OS: Full Syllabus#

Authors: Shrey Patel and Jay Patel, Coconut Labs
What this is: The section-level outline of every chapter in the book. The index is the map; this is the blueprint. Every written chapter is authored against live web research and an adversarial fact-check pass.

Every chapter uses the same fixed template: problem, then unfolded, then the real Linux, then the Coconut tie-in, then lab, bridge notes and sources. The outlines below list what goes inside each of those sections; "Unfolded" carries the concept sequence.

Use this file two ways. Before you spend a session on a chapter, read its outline; it tells you what that session buys you, in concepts and in labs. When you are chasing one mechanism (why a fault costs what it costs, where a credential is actually checked, what a syscall pays for the crossing), search here for the mechanism and go straight to the chapter that owns it. If you came for the timing questions rather than for kernel development, the index's opening section names the chapters where timing is decided.


Chapters you can read now#

These chapters exist as full text, linked from the index. The outline under each one describes what is actually in it.

Part 0: Orientation & the lab bench#

Ch 0: Think Like an OS#

Part F: Core fundamentals (the prerequisite layer)#

Ch F.0: The Unix Survival Kit#

Ch F.1: How a Computer Computes#

Ch F.2: Anatomy of a Program#

Ch F.3: Memory from First Principles#

Ch F.4: The C You Need#

Ch F.5: Reading Assembly Without Fear#

Ch F.6: Data Structures Kernels Love#

Ch F.7: Concurrency, the Mental Model#

Part I: The machine beneath#

Ch 1: The CPU's Contract#

Ch 2: Interrupts & Exceptions#

Ch 3: Memory Hardware#

Part II: The kernel's core loop#

Ch 6: Boot#

Ch 7: The Syscall Boundary#

Ch 8: Processes & Threads#

Ch 9: Scheduling#

Chapters still in outline#

These chapters are not written yet. What follows is the plan for each: the concept sequence, the labs, the Linux reading, and the Coconut tie-in. Part I and Part II pick up here where they stopped above.

Part I: The machine beneath, continued#

Ch 4: Time#

Ch 5: I/O at the Wire#

Part II: The kernel's core loop, continued#

Ch 10: Kernel Concurrency#

Part III: Memory#

Ch 11: Virtual Memory#

Ch 12: Physical Memory#

Ch 13: Page Cache & Tiers#

Part IV: Persistence#

Ch 14: VFS#

Ch 15: Real Filesystems#

Ch 16: Block Layer & io_uring#

Part V: Identity & capability (the Coconut heart)#

Ch 17: Credentials & DAC#

Ch 18: Namespaces & cgroups#

Ch 19: LSM & seccomp#

Ch 20: Capability-Based Security#

Ch 21: Audit#

Part VI: Communication#

Ch 22: IPC#

Ch 23: Networking#

Part VII: The userspace contract#

Ch 24: ELF, Linking & Loading#

Ch 25: libc & the Runtime#

Ch 26: init & Service Management#

Ch 27: Packaging & Atomic Updates#

Part VIII: The interaction surface#

Ch 28: Pixels to Glass#

Ch 29: Wayland & Compositors#

Part IX: Building, testing, shipping#

Ch 30: kbuild & Cross-Compilation#

Ch 31: Kernel Testing#

Ch 32: Debugging & Observability#

Ch 33: Maintaining a Fork#

Part X: The frontier#

Ch 34: Rust in the Kernel#

Ch 35: eBPF#

Ch 36: Virtualization#

Ch 37: Agents as Kernel Primitives (the thesis chapter, written last)#

Appendices#