Operating Systems Roadmap

Programs → processes → threads → scheduling → system calls → files → virtual memory → I/O → concurrency → IPC → sockets → containers → debugging. Every node opens its lesson; progress is stored locally.

0 / 64 lessons mastered
  1. 1

    Programs

    0/4

    What an OS is for, and what happens between ./server and the first instruction on a CPU: the loader, the address space, and why one executable on disk is not the same thing as the three instances running from it.

  2. 2

    Processes

    0/3

    A process has an identity, an address space, a state, open resources and a parent. The process table, the state machine from Runnable to Zombie, and fork + exec as the two halves of "start a program".

  3. 3

    Threads

    0/7

    Several flows of control inside one address space; concurrency as interleaving versus parallelism as simultaneous cores; and how C++, JavaScript/TypeScript and Python each map "do many things at once" onto OS threads, event loops and async I/O.

  4. 4

    Scheduling

    0/3

    A hundred runnable tasks and eight cores: ready queues, time slices, priority and preemption, and what a context switch actually saves, restores and throws away (registers, the TLB, the cache).

  5. 5

    System Calls

    0/2

    Why a program cannot write to the disk itself: the user/kernel boundary, the trap into kernel mode, what a syscall costs, and why "mostly system time" in top is a diagnosis in itself.

  6. 6

    Files / Descriptors

    0/4

    A filename is not a file: paths, directories, metadata and permissions; the per-process descriptor table (and what FD 3 is); how a path becomes blocks on storage; and inodes on Unix-style systems.

  7. 7

    Virtual Memory

    0/6

    Where a local variable lives, where an object lives, why recursion has a limit and what malloc/new/an object allocation actually asks the kernel for — then the illusion underneath: every process believes it owns a huge private, contiguous memory.

  8. 8

    Paging

    0/7

    How the illusion is built: pages and frames, multi-level page tables, the TLB that makes translation affordable, page faults as the normal mechanism (not an error), memory pressure and swapping, mmap, and copy-on-write behind a fast fork().

  9. 9

    I/O

    0/4

    Follow one read() from the call through the page cache to the SSD and back; blocking, non-blocking, asynchronous and multiplexed I/O; select/poll versus epoll/kqueue; and why a file, a pipe and a socket are the same kind of thing to the kernel.

  10. 10

    Concurrency

    0/3

    Two threads add one to a counter and the result is one: the zoo of concurrency bugs, why a race is a property of the interleaving and not of the code, and the critical section as the thing every fix protects.

  11. 11

    Synchronization

    0/4

    The tools that make a critical section safe — mutexes, counting semaphores, atomic compare-and-swap — and the four ingredients that turn a lock into a deadlock, with the wait-for graph that finds it.

  12. 12

    IPC

    0/4

    Two isolated processes need to talk: pipes, shared memory, message queues, signals and sockets compared on speed, isolation, complexity and local-versus-remote.

  13. 13

    Sockets

    0/1

    What the kernel actually hands you when you call socket(): a descriptor with send and receive buffers behind it, a state machine, and the bridge into the Networking domain.

  14. 14

    Containers

    0/3

    A container has no kernel of its own, so what isolates it? Namespaces, control groups and layered filesystems on a shared host kernel — and how that differs from a hypervisor running a whole guest OS.

  15. 15

    Performance / Debugging

    0/9

    Break a simulated OS on purpose, then learn the playbook for high CPU, high memory, hangs and EMFILE; the capstone explains a 50,000-connection server layer by layer, and the together lessons follow send() across the wire to a recv() on another machine.