Skip to content
Learning path

Operating Systems

Build the layers between programs and silicon — shell, memory allocator, CPU emulator, ELF loader, file system, OS kernel.

mixed7 courses97 lessons~24 hoursFree
Start pathor sign up to track progress

Course sequence

  1. 01

    Build Your Own Shell

    Not started

    Build a real Unix shell from the ground up: tokenize quoted command lines, parse pipelines and redirections, expand variables and glob patterns, fork/exec child processes, and dispatch built-ins like cd, export, and history. By the end you'll deeply understand how bash, zsh, dash, and every other shell actually drive the Unix process model.

    intermediate16 lessons~4h
  2. 02

    Build a Memory Allocator

    Not started

    Build malloc/free from scratch: bump allocator, free lists, splitting and coalescing, size classes, thread-local caches. By the end you'll understand what every allocator (jemalloc, tcmalloc, ptmalloc) actually does.

    intermediate14 lessons~4h
  3. 03

    Build a CHIP-8 Emulator

    Not started

    Build the simplest possible emulator: 35 opcodes, 4KB RAM, 16 registers, 64x32 display. Plays Pong, Tetris, Space Invaders. The on-ramp to NES, Game Boy, and bigger emulator projects.

    intermediate13 lessons~3h
  4. 04

    Build a CPU (RISC-V)

    Not started

    Build a RISC-V RV32I simulator: register file, instruction decoding (R/I/S/B/U/J formats), ALU + load/store + branch + jump execution, calling convention, syscalls, and the fetch-decode-execute loop. Same architecture as Spike, QEMU's RISC-V mode.

    advanced10 lessons~3h
  5. 05

    Build an ELF Loader

    Not started

    Build an ELF executable loader: parse the ELF header, walk program headers, mmap PT_LOAD segments, set up the initial stack and auxv, hand off to dynamic linker (ld-linux.so), apply relocations, and resolve symbols via GOT/PLT.

    advanced10 lessons~3h
  6. 06

    Build a File System

    Not started

    Build an ext-style file system: superblock, allocation bitmaps, inodes (with extents), directory entries, path resolution, journaling for crash safety, and the design choices behind ext4/xfs/btrfs/ZFS.

    advanced10 lessons~3h
  7. 07

    Build an OS Kernel

    Not started

    Build an educational kernel like xv6: boot in QEMU, set up paging + virtual memory, implement processes/threads, schedule with round-robin/MLFQ/CFS, dispatch system calls, handle interrupts, build a simple file system, and explore the gap between toy and Linux.

    advanced24 lessons~6h

Create a free account to track your progress across this path.

Operating Systems