torvalds/linux
Subsystems
The Linux kernel is organized as a single binary built from many cooperating subsystems. This wiki uses the top-level source directories under the repository root as the unit of organization. Each page below maps one (or a closely related cluster) of those directories to its purpose, key files, and entry points for modification.
Subsystem map
graph TD
INIT["init/<br/>Boot, start_kernel"]
KCORE["kernel/<br/>Process, locking, RCU, BPF, cgroup"]
SCHED["kernel/sched/<br/>Scheduler"]
MM["mm/<br/>Memory management"]
FS["fs/<br/>VFS + filesystems"]
BLOCK["block/<br/>Block layer + blk-mq"]
IOU["io_uring/<br/>Async I/O"]
NET["net/<br/>Network stack"]
DRV["drivers/<br/>Device drivers"]
ARCH["arch/<br/>Per-architecture"]
SEC["security/<br/>LSMs"]
CRYPTO["crypto/<br/>Crypto API"]
IPC["ipc/<br/>SysV IPC"]
SOUND["sound/<br/>ALSA"]
VIRT["virt/<br/>KVM common"]
RUST["rust/<br/>Rust support"]
LIB["lib/<br/>Helpers"]
INC["include/<br/>Headers"]
TOOL["tools/<br/>perf, bpftool, selftests"]
SCRIPT["scripts/<br/>Build helpers"]
SAMPLES["samples/<br/>Example modules"]
USR["usr/<br/>Initramfs"]
CERT["certs/<br/>Module signing"]
INIT --> KCORE
KCORE --> SCHED
KCORE --> MM
MM --> FS
MM --> BLOCK
BLOCK --> FS
FS --> IOU
NET -.uses.-> KCORE
DRV -.uses.-> KCORE
DRV -.uses.-> MM
ARCH --> KCORE
SEC -.hooks into.-> FS
SEC -.hooks into.-> NET
CRYPTO -.used by.-> NET
CRYPTO -.used by.-> FS
SOUND -.uses.-> DRV
VIRT -.uses.-> KCORE
RUST -.linked into.-> KCOREPages
| Subsystem | Source | Page |
|---|---|---|
| Boot path | init/ |
Init |
| Kernel core | kernel/ |
Kernel core |
| Scheduler | kernel/sched/ |
Scheduler |
| Memory | mm/ |
Memory management |
| Filesystems | fs/ |
Filesystems |
| Block layer | block/ |
Block layer |
| io_uring | io_uring/ |
io_uring |
| Networking | net/ |
Networking |
| Drivers | drivers/ |
Drivers |
| Architecture support | arch/ |
Architecture support |
| Security / LSM | security/ |
Security |
| Crypto | crypto/ |
Crypto |
| IPC | ipc/ |
IPC |
| Sound (ALSA) | sound/ |
Sound |
| Virtualization (KVM) | virt/ |
Virtualization |
| Rust support | rust/ |
Rust support |
| Library helpers | lib/ |
Lib |
| Headers | include/ |
Include |
| Tools | tools/ |
Tools |
| Build scripts | scripts/ |
Scripts |
| Samples | samples/ |
Samples |
| Initramfs generator | usr/ |
usr |
| Module signing | certs/ |
Certs |
How to read these pages
Each subsystem page follows the same shape:
- Purpose — what the directory exists for.
- Directory layout — the most useful files and subdirectories.
- Key abstractions — the core data types and APIs.
- How it works — main flows, with diagrams where helpful.
- Integration points — what it imports and what it exports.
- Entry points for modification — where to start if you want to change something.
If you want a guided tour, start with Kernel core, Memory management, and Filesystems in that order. Those three pages cover the heart of the kernel; the rest of the tree builds on them.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.