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).
Start here.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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: