Operating Systems#

Forty sections, ordered so that each one only depends on the ones before it. We start from a bare CPU with no protection, no memory translation and no notion of a file, and build up to a machine running thousands of isolated programs. Every section explains why the mechanism exists before showing what it does, because a mechanism without its problem is just trivia. Press Play on the animations.

New to this? Read the Operating Systems Crash Course first. It covers the same twelve core ideas with a mental model for each and takes an afternoon. This page assumes you want the machinery, the edge cases and the code.

40 Topics • Interactive Animations, Worked Questions & Code Examples
Unit 1

Foundations#

The kernel's privileged role, and how programs cross into it.

Unit 2

Processes, Threads & Scheduling#

The process abstraction, how the CPU is shared, and who runs next.

Unit 3

Concurrency & Synchronisation#

Race conditions, locks, semaphores and condition variables, and how deadlock happens.

Unit 4

Memory Management#

From physical memory to paging, the TLB, page replacement and allocators.

Unit 5

Communication, File Systems & I/O#

Processes talking to each other, files on disk, and the I/O path down to the device.

Unit 6

Protection, Virtualisation & Practice#

Security boundaries, virtual machines and containers, debugging on Linux, and the revision material.