9 parts · 16 chapters

Operating Systems, Complete

The operating system is the program that makes every other program possible: it shares the CPU, gives each process the illusion of its own memory, turns disks into files and devices into streams, and keeps programs from harming each other. This course covers what an OS course in a CS degree covers, with measurements from this machine.

Nine parts: processes and threads; CPU scheduling; virtual memory and paging; synchronisation; file systems; IO and device drivers; booting; security and isolation; and a capstone walking through xv6, a teaching Unix, and extending the BYO kernel.

processes and threads · scheduling · virtual memory · synchronisation · file systems · IO and devices · booting · security and isolation · capstoneeveryone without a CS degree · backend and systems engineers
processesAddress spaces, fork and exec, threads, context switches, measured.
schedulingFIFO to MLFQ, CFS and EEVDF, priorities and real-time.
memoryPages, page tables, TLBs, faults, swapping, copy-on-write.
syncRaces, locks, semaphores, condition variables, deadlock.
storage and IOInodes, journaling, the page cache, interrupts, DMA, drivers.
isolationPrivilege rings, system calls, users, capabilities, sandboxes.
Built on How Computers WorkHow Computers Work part 3 introduced kernel and user space; this course is the full treatment. Linux Kernel Internals (course 38) and Containers from Scratch (course 40) go deeper on Linux.