← Interview Preparation

Operating Systems Reference

A reference-style guide to OS foundations for senior+ engineers — CPU and memory virtualization, scheduling, paging, file systems, I/O, and Linux containers. Brief overviews and curated further readings, not a coding-practice track. Pairs with the Concurrency roadmap (user-space sync) and Networking reference (wire-level protocols).

Time budget: ≈26h

How to use this reference

  • Work through topics top to bottom — paging assumes you understand virtual address spaces; containers assume you understand processes and isolation.
  • Primary textbook: OSTEP (Operating Systems: Three Easy Pieces) — each subtopic points to specific chapters, not the whole book.
  • For threads, locks, and deadlocks, use the Concurrency roadmap — this track covers the kernel's view (processes, scheduling, virtual memory), not user-space synchronization patterns.
  • Optional hands-on tasks use standard Linux/macOS tools — strace, ps, /proc, vmstat, docker — no complex setup.

The Reference

  1. 1

    What the operating system actually is — the illusion of a private machine, the system-call boundary, and the process as the unit of CPU virtualization.

    1. 1.1Role of the OS & System Calls1/515m
    2. 1.2Kernel vs User Mode & Traps2/520m
    3. 1.3The Process Abstraction & API2/525m
  2. 2

    Sharing one or many CPUs among processes — context switches, scheduling policies, and the trade-offs that show up as tail latency in production.

    1. 2.1Context Switching & Scheduling Basics2/525m
    2. 2.2Scheduling Policies & MLFQ3/530m
    3. 2.3Multicore, Cache Affinity & CPU Pinning3/525m
  3. 3

    Giving every process its own address space — virtual memory, paging, the TLB, and why OOM kills happen even when free RAM looks available.

    1. 3.1Virtual Address Spaces2/520m
    2. 3.2Paging & Page Tables3/530m
    3. 3.3Swapping, Overcommit & OOM3/525m
  4. 4

    How user-space and the kernel allocate memory — malloc internals, fragmentation, and mmap for large or shared regions.

    1. 4.1Heap Allocation & malloc3/525m
    2. 4.2mmap & Shared Memory3/525m
  5. 5

    Making data outlive processes — file system abstractions, device I/O, and crash-consistent updates.

    1. 5.1File Systems, Inodes & the VFS3/530m
    2. 5.2I/O Devices & DMA3/525m
    3. 5.3Journaling & Crash Consistency4/530m
  6. 6

    Isolating workloads without full hardware VMs — namespaces, cgroups, and the Linux primitives Docker builds on.

    1. 6.1Virtual Machines vs Containers3/525m
    2. 6.2Linux Namespaces & cgroups4/535m