Operating systems
Understand the machine under your code.
A full course, from a single system call down into the kernel and back up through processes, scheduling, concurrency, memory and file systems. Every idea is drawn out as a clear visual and explained the way a working engineer needs it.
Chapter 14, Race Conditions & the Critical SectionAnatomy of a race: count++ is three stepsWhat the course covers
37 chapters in 7 parts.
Read them in order, or jump to the topic you need. Every section pairs a clear written explanation with a drawn page you can take in at a glance.
Part A
Foundations
What an OS is, the hardware it drives, system calls, and how a program becomes a process.
7 chapters
Part B
Processes, threads and scheduling
The PCB, threads, context switches, CPU schedulers, and interprocess communication.
6 chapters
Part C
Concurrency and synchronization
Race conditions, locks and semaphores, classic problems, lock-free code, and deadlocks.
6 chapters
Part D
Memory management
Address spaces, segmentation, paging and the MMU, virtual memory, and page replacement.
6 chapters
Part E
Storage, I/O and file systems
I/O layers, disks and scheduling, files and directories, and real file-system implementations.
5 chapters
Part F
Modern and distributed systems
Virtualization and hypervisors, containers and cgroups, multiprocessors and distributed systems.
3 chapters
Part G
Case studies and capstone
Linux and Android, Windows internals, performance debugging, and the OS seen from a database.
4 chapters
Questions
Good to know.
Who is this course for?
How is a chapter laid out?
How long does it take?

See what your program is really asking for.
Start with the introduction for a map of the whole course, then work through the parts in order or jump to the one your next interview needs.





































