Multi-page · for systems engineers
Operating system internals

The kernel,
one subsystem at a time.

Processes, threads, scheduling, virtual memory, file systems, I/O, IPC, synchronization, system calls. The ten subsystems that make up a modern Unix kernel, each one explained at the level of "what's the data structure", "what's the algorithm", and "what does this mean for code running on top".

Ten sub-pages. The hub is live and the deep dives are in flight. Each will be a long-form walk-through with code, kernel source links, and references to the canon (Bovet & Cesati, Love, McKusick, the LWN archive).


Live deep dives

Start here.

01 Live

Processes

What a process actually is — address space, file descriptor table, credentials, signal mask. fork(), exec(), wait(), zombies, orphans, the init process. The unit of isolation every Unix is built on.

address space ·fd table ·fork/exec ·zombies ·PID 1
Read
02 Live

Threads

Kernel threads vs user threads vs M:N. POSIX threads, NPTL, futexes, thread-local storage. Why goroutines and async/await are user-level abstractions on top of these.

kernel threads ·pthreads ·futex ·TLS ·M:N scheduling
Read
03 Live

Scheduling

CFS, EEVDF, deadline scheduling, cgroups. How Linux picks what runs next, what nice and chrt do, why CPU pinning matters for latency-sensitive workloads.

CFS ·EEVDF ·cgroups ·CPU affinity ·nice/RT
Read
04 Live

Memory management

Physical pages, the buddy allocator, slab/SLUB, kmalloc, vmalloc. Where the kernel actually keeps your bytes and how it hands them out to user space.

buddy allocator ·SLUB ·kmalloc ·NUMA ·transparent huge pages
Read
05 Live

Virtual memory

Page tables, the TLB, demand paging, copy-on-write, mmap, swap. The illusion of contiguous address space and the cost of every page fault.

page tables ·TLB ·COW ·mmap ·page faults
Read
06 Live

File systems

Inodes, directories, superblocks, journals. ext4, XFS, btrfs, ZFS. fsync, the page cache, write-back, and why durable storage is harder than it looks.

inodes ·journaling ·page cache ·fsync ·COW filesystems
Read
07 Live

I/O — blocking, non-blocking, async

read/write, select/poll/epoll, kqueue, IOCP, io_uring. The four shapes of I/O the kernel offers and why io_uring is reshaping the high-performance I/O landscape.

epoll ·kqueue ·io_uring ·O_DIRECT ·zero-copy
Read
08 Live

Inter-process communication

Pipes, FIFOs, Unix sockets, shared memory, message queues, signals, eventfd, memfd. The mechanisms processes use to talk to each other without the network.

pipes ·unix sockets ·shm ·signals ·eventfd
Read
09 Live

Synchronization

Spinlocks, mutexes, semaphores, RCU, atomics, memory barriers. The primitives the kernel uses to make multi-core work — and the rules user-space code has to play by.

spinlocks ·mutex ·RCU ·atomics ·memory barriers
Read
10 Live

System calls

How user space asks the kernel for help. SYSCALL/SYSRET, the vDSO, seccomp, ptrace, eBPF. Where the user/kernel boundary actually sits and how to peek across it.

syscall ABI ·vDSO ·seccomp ·ptrace ·eBPF
Read
Planned deep dives

Ten subsystems, in flight.

Each is a long-form sub-page with code, kernel source links, and references. Topics, in the order that makes sense to learn them: