Skip to main content

Updated Sep 14, 2026

Roadmap

Every page in this section declares its prerequisites in front matter, and the build fails on a prerequisite that does not resolve to a real page or on a dependency cycle. The Before this, Next, and Related chips at the top and bottom of every page are generated from those declarations rather than hand-maintained, so the page you are on always knows what it needs. This page is the editorial route through it — the order a human would actually want to read in, not the raw dependency graph.

Learning paths​

Paths are filled in as the folders they cross are written. Folders 00 through 10 exist now; the rest of the section is specified but not yet scaffolded.

I just want to understand my machine

  1. 1The kernel/user-space boundary
  2. 2What Linux actually is
  3. 3What happens when you type ls
  4. 4The life of a write()
  5. 5From power-on to login prompt
  6. 6Distributions and what actually differs
  7. 7`/proc` as the process interface
  8. 8What `free` and RSS really tell you
  9. 9Priorities, nice, and weights

I want to read kernel source

  1. 1The hardware the kernel assumes
  2. 2Monolithic, with modules
  3. 3The source tree, mapped
  4. 4The kernel is not C you know
  5. 5Kernel data structures
  6. 6container_of and embedded structs
  7. 7Error-handling idioms
  8. 8The entry path
  9. 9`task_struct`: the anatomy of a task
  10. 10`mm_struct` and VMAs
  11. 11Why kernel concurrency is different

I want to build and debug a kernel

  1. 1The lab machine
  2. 2Getting and navigating the source
  3. 3Building a kernel
  4. 4A minimal rootfs
  5. 5Booting your kernel in QEMU
  6. 6Debugging the kernel with GDB
  7. 7A full-system VM and WSL2

I want to understand boot

  1. 1From power-on to login prompt
  2. 2Firmware: BIOS and UEFI
  3. 3The boot chain
  4. 4Bootloaders: GRUB and friends
  5. 5The kernel image
  6. 6Early boot and arch setup
  7. 7start_kernel and initcalls
  8. 8initramfs and early userspace
  9. 9switch_root and PID 1
  10. 10systemd: the model

My boot is broken

  1. 1The kernel command line
  2. 2systemd in practice and boot debugging
  3. 3initramfs and early userspace
  4. 4Debugging the kernel with GDB

Crash and oops reading lands with folder 17.

I want to write a module

  1. 1Monolithic, with modules
  2. 2Kconfig and Kbuild
  3. 3Modules in practice
  4. 4Exported symbols and the module ABI
  5. 5Reference counting and lifetime
  6. 6kobjects, sysfs, and the object model
  7. 7Memory safety in kernel C

A real character driver is built in folder 14.

My server is slow

  1. 1Diagnosing scheduling latency
  2. 2What `free` and RSS really tell you
  3. 3Reclaim, LRU, and kswapd
  4. 4Interrupt affinity
  5. 5cgroup CPU control

I/O and network diagnosis land with folders 12 and 13; the tooling to go with all of this lands with folder 17.

I want to understand memory

  1. 1The virtual address space
  2. 2Page tables and the walk
  3. 3`mm_struct` and VMAs
  4. 4The page fault handler
  5. 5Demand paging and copy-on-write
  6. 6The page allocator
  7. 7Folios and compound pages
  8. 8The page cache
  9. 9Reclaim, LRU, and kswapd
  10. 10What `free` and RSS really tell you

I want to write correct concurrent kernel code

  1. 1Why kernel concurrency is different
  2. 2Memory ordering and barriers
  3. 3Atomic operations
  4. 4Spinlocks
  5. 5Mutexes and semaphores
  6. 6Seqlocks
  7. 7RCU: the idea
  8. 8RCU in practice
  9. 9Reader-writer locks
  10. 10Choosing a lock
  11. 11Finding locking bugs

Where the rest is​

Folders 11 through 19 remain specified and not yet scaffolded, covering the VFS, block I/O, networking, drivers, containers, security, observability, eBPF, and contributing.