Wiki Index
Overview
- overview — Project overview, module map, design decisions
Modules
- m01-c-is-not-java — Compilation pipeline, types, sizeof, printf, UB
- m02-pointers-memory-model — Pointers, arrays, function pointers, const, NULL
- m03-dynamic-memory — malloc/free, memory bugs, valgrind, arenas
- m04-structs-unions-bitfields — Layout, padding, unions, linked lists, OOP in C
- m05-c-preprocessor — define, macros, conditional compilation, X-macros
- m06-file-io-syscalls — File descriptors, buffered I/O, errno, binary formats
- m07-processes-signals — fork, exec, pipes, signals, setjmp/longjmp
- m08-sockets-networking — TCP/IP, select/poll, non-blocking I/O, HTTP
- m09-concurrency — pthreads, mutexes, condition variables, atomics, TSan
- m10-going-below-c — Assembly, ABI, volatile, memory barriers, profiling
Concepts
- compilation-pipeline — Preprocessor → compiler → assembler → linker
- types — sizeof, integer promotion, stdint.h
- memory-layout — Text, data, bss, stack, heap
- undefined-behaviour — The compiler’s nuclear option
- pointers — &, *, arithmetic, void *, double pointers
- arrays — Contiguous memory, pointer decay, multidimensional
- function-pointers — Callbacks, dispatch tables, typedef
- malloc — malloc, calloc, realloc, free
- memory-safety — Leaks, use-after-free, double-free, overflow
- valgrind — Memcheck, ASan, TSan
- arena-allocators — Bump allocation, batch free
- structs — Layout, padding, alignment, offsetof
- unions — Type punning, tagged unions
- preprocessor — Macros, conditional compilation, X-macros
- file-descriptors — Unix I/O model, fd table, everything is a file
- fork — fork, exec, wait, copy-on-write
- signals — Signal handlers, async-signal-safety, sig_atomic_t
- sockets — BSD socket API, TCP flow, select/poll/epoll
- pipes — Unidirectional kernel buffer, pipe(2), fork + pipe patterns
- copy-on-write — Fork optimisation: page table copy + fault-on-write
- signal-mask — Blocking/pending signals, sigprocmask, critical sections
- select-poll-epoll — Multiplexed I/O: O(n) vs O(1), fd_set, epoll_wait
- tcp-state-machine — Connection states, TIME_WAIT, SO_REUSEADDR, accept queue
- threads — pthreads, shared state, synchronization
- mutexes — Locking, deadlock, condition variables, rwlocks
- atomics — stdatomic.h, memory orderings, lock-free
- assembly — x86-64, registers, System V ABI, volatile
- cache — Cache lines, false sharing, perf, profiling
Sources
- source-course-repo — React/Vite web app (complete; terminal rework planned — see meta-terminal-plan)
- source-companion-pdf — Typst companion PDF (all 11 chapters + appendices A–C complete)
- source-exercise-plan — Three-distribution model, content/ tree, export/dist scripts — all phases complete, live on Gumroad
- source-exercise-qc — QC audit 2026-04-10: solutions leak fixed, numbering scar fixed, export structure fixed, PDF page counts, cover redesign
- source-product-strategy — Audience, free/paid rationale, pricing, distribution, deliberate non-decisions, open strategic questions
- meta-project-status — Completion tracking, priorities, wiki health
- meta-terminal-plan — WASM vs local companion app analysis; phased hybrid recommendation
- meta-gb-emulator — Game Boy emulator as PDF ch12; Option A (PDF-exclusive) recommended; not yet written
- meta-wiki-hosting — Wiki hosting: Quartz + Cloudflare Pages — IMPLEMENTED (live at
llc-wiki.pages.dev)