Skip to content

Linux Kernel Internals

A community hub for understanding the Linux kernel — documentation and discussions about design decisions, internals, and the journey of contributing.

What This Is

Documentation: Deep dives into kernel subsystems, explaining why things work the way they do, not just the APIs.

Discussion: A place to ask questions, share discoveries, and help each other understand the kernel.

Why?

The kernel has extensive API documentation, but understanding the rationale requires digging through mailing list archives, scattered articles, and tribal knowledge. We're building a more accessible resource.

Documentation

General

Subsystems

Foundations

Memory

Scheduling & Concurrency

Storage & I/O

Devices & Drivers

  • Drivers (drivers/) — the device model and how drivers bind to hardware
  • USB (usb/) — the host-scheduled, hot-pluggable peripheral bus: descriptors, endpoints, and URBs
  • GPU / DRM (drm/) — the graphics and display stack: KMS modesetting, GEM buffers, and command submission

Networking & BPF

  • Networking (net/) — the journey of a packet through the stack, from socket to wire
  • BPF (bpf/) — running sandboxed programs in the kernel for tracing, networking, and security

Isolation & Security

Observability

Community

Disclaimer

This is a community learning resource, not a definitive reference. The Linux kernel is complex and constantly evolving. While we strive for accuracy and link to primary sources (commits, LKML), errors may exist. When in doubt, consult the official kernel documentation and source code. Contributions and corrections are welcome.

License

  • Documentation: CC BY-SA 4.0
  • Code snippets: GPL-2.0
  • Tux logo: Larry Ewing (original), Simon Budig (SVG)