HO
hodgesds/kernel-docs
concise kernel API docs
kernel-docs
Extended documentation for various Linux kernel subsystems and APIs. These docs are designed to be consumable by both humans and LLMs for quickly getting context on kernel internals.
Overview
| Topic | Description |
|---|---|
| Audit | Syscall auditing, filter rules, file watches, and SELinux integration |
| Block Layer | Linux block I/O layer, request queues, and block device drivers |
| BPF (eBPF) | BPF subsystem, program types, maps, and the verifier |
| Cgroups | Control groups v1/v2, resource controllers, and hierarchy management |
| CPU Hotplug | CPU hotplug state machine, bring-up/tear-down, and callbacks |
| CPUFreq / CPUIdle | CPU frequency scaling, idle states, governors, and schedutil |
| Cryptographic Subsystem | Crypto API, ciphers, hashes, and cryptographic transformations |
| Device Model | Buses, drivers, devices, and sysfs |
| DMA Mapping | DMA address translation, streaming/coherent mappings, and SWIOTLB |
| VFS / Filesystems | Virtual File System, inodes, dentries, and filesystem operations |
| IOMMU | DMA remapping, device isolation, IOMMUFD, and SVA |
| Interrupts | Hardware interrupts, IRQ handling, and softirqs |
| io_uring | High-performance asynchronous I/O via shared-memory ring buffers |
| IPC | Inter-process communication: pipes, signals, shared memory, and message queues |
| Jump Labels / Static Calls | Zero-overhead branch/call primitives and text patching |
| Kernel Entry/Exit | Syscall entry, IDT exceptions, pt_regs, KPTI, and Spectre mitigations |
| Kprobes / Uprobes | Dynamic kernel and userspace probes, optprobes, and BPF attachment |
| KVM | Kernel-based Virtual Machine, vCPU lifecycle, EPT/NPT, and VM exits |
| Live Patching | Runtime function replacement via ftrace, consistency model |
| Lockdep | Lock dependency validator, deadlock detection, and IRQ state tracking |
| Locking & Synchronization | Spinlocks, mutexes, RW locks, and synchronization primitives |
| Memory Management | Page allocator, slab, vmalloc, page tables, and virtual memory |
| Module Loading | Module lifecycle, ELF parsing, symbol resolution, and signing |
| Namespaces | 8 namespace types, nsproxy, and container isolation primitives |
| Netfilter | Netfilter hooks, nf_tables, connection tracking, and NAT |
| Networking | Network stack, sk_buff, sockets, and protocol handling |
| Perf Events | Performance counters, hardware/software events, and profiling |
| Power Management | Suspend/resume, runtime PM, and power domains |
| printk / Logging | Lockless ring buffer, console drivers, and dynamic debug |
| Process Lifecycle | Process creation, scheduling states, and termination |
| Ptrace | Process tracing, stop states, syscall tracing, and YAMA LSM |
| RCU | Read-Copy-Update synchronization mechanism |
| Scheduler | CFS, scheduling classes, runqueues, and sched_ext |
| Seccomp | Syscall filtering, BPF programs, and user notification |
| Security / LSM | Linux Security Modules, hooks, and access control frameworks |
| Signals | Signal delivery, handlers, masks, signalfd, and job control |
| SMP Topology | CPU topology, per-CPU data, IPIs, NUMA, and scheduling domains |
| Timers | Timer subsystem, hrtimers, and time management |
| Tracing | Ftrace, tracepoints, kprobes, and kernel tracing infrastructure |
| Virtio | Virtqueues, vring, transport backends, and vhost acceleration |
On this page
Contributors
Created February 22, 2026
Updated March 8, 2026