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.
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.
00
Processes and Threads
Processes, threads and their costs · States, context switches and kinds of threads
2 ch · ~12 min01CPU Scheduling
Policies and what they optimise · CPU limits in containers
2 ch · ~12 min02Virtual Memory and Paging
Translation and faults · Copy-on-write, mmap, swapping and the OOM killer
2 ch · ~12 min03Synchronisation
Races and critical sections · Deadlock
2 ch · ~12 min04File Systems
The write path · Atomic updates and descriptor limits
2 ch · ~12 min05IO and Device Drivers
Interrupts, DMA and drivers · IO models
2 ch · ~12 min06Booting
Power-on to PID 1
1 ch · ~8 min07Security and Isolation
Layers of isolation · Side channels
2 ch · ~12 min08Capstone: xv6 and Extending the BYO Kernel
Reading xv6
1 ch · ~8 minBuilt 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.