linux-insides: a linux kernel internals guide
linux-insides is a free, still-unfinished book that walks the Linux kernel's own source code chapter by chapter, from the first boot instruction to system calls and memory management. Read the Booting chapter and you get code-level explanations most tutorials skip; read the untouched chapters and you're reading explanations tied to kernel 3.18. Worth it for the revised parts. Treat the rest with caution.
What linux-insides is
linux-insides is a book-in-progress by 0xAX explaining Linux kernel internals by walking through the actual kernel source, organized into chapters like Booting, interrupts, system calls, memory management, and x86 fundamentals. Each chapter traces a specific subsystem line by line, not abstractly. Only the Booting chapter has been updated for the current kernel (v7.1.0); the rest still reflect kernel 3.18.
What the book covers
- ✓The 'Booting' chapter, updated for kernel v7.1.0 — walks the boot process from firmware handoff to kernel start.
- ✓Chapters on interrupts, system calls, timers, synchronization primitives, memory management, cgroups, SMP, kernel mechanisms, data structures, x86 fundamentals, toolchain/binaries, initial ram disk, and contributing to the kernel — all currently flagged 'pending v6.18.0 review' in the repo's own chapter-status table.
- ✓Community translations into Brazilian Portuguese, Chinese, Japanese, Korean, Russian, Spanish, and Turkish, each maintained as its own repo.
- ✓A companion assembly-language series by the same author for readers who need to shore up prerequisites first.
- ✓A CONTRIBUTING guide and Code of Conduct for people who want to fix or extend a chapter.
- ✓A Google Group mailing list ([email protected]) for kernel-source discussion tied to the book.
How developers use linux-insides
- •Reading the Booting chapter alongside the actual kernel source to understand what happens between firmware handoff and the first user-space process.
- •Using the still-unrevised chapters (memory management, system calls, and the rest) as a rough map before cross-checking against current kernel source, since they describe kernel behavior from around version 3.18.
- •Working through the companion assembly series first if x86 assembly isn't already familiar, since the book assumes it.
- •Reading a translated edition (Russian, Chinese, Japanese, and others) to avoid the English-language barrier, accepting the README's own warning that translations may diverge from the original.
- •Subscribing to the kernelhacking Google Group to discuss chapters or kernel-source questions with other readers.
Strengths
- ✓Explanations are grounded directly in kernel source rather than paraphrased 'for dummies' prose — code paths, not just diagrams.
- ✓The Booting chapter has actually been revised for v7.1.0, so at least one chapter is current, not archived.
- ✓Free to read online with no signup wall.
- ✓Translated into seven languages by volunteers, so non-English readers have a real, if imperfect, option.
- ✓Open to contributions through a documented process (CONTRIBUTING guide plus Code of Conduct), so an error a reader finds can actually get fixed.
Staleness and scope limits to know about
- △Only the 'Booting' chapter is confirmed updated for a current kernel (v7.1.0, per the repo's own chapter-status table); every other chapter is marked 'pending v6.18.0 review,' so most of the book still describes the kernel as it was around version 3.18.
- △The README states the project is 'in progress' of updating the content — it's explicitly unfinished, not a completed reference.
- △Requires prior knowledge of assembly language and proficiency in C going in; it isn't written for readers without that background.
- △Community translations 'may diverge from the original content,' per the README, so non-English readers are working from a moving target.
- △Licensed BY-NC-SA (Creative Commons), which blocks commercial reuse of the text without permission — a real constraint if a company wants to adapt chapters into internal training material.
Other ways to learn Linux kernel internals
Frequently asked questions
linux-insides is actively being revised: the README describes an ongoing update from the original kernel 3.18 baseline toward modern kernels (v6.18+), but so far only the 'Booting' chapter is confirmed updated, for kernel v7.1.0 — every other chapter is still marked pending review.
linux-insides expects readers to already know the C programming language and to be comfortable with assembly language; the README lists both as requirements, plus familiarity with x86_64 processor manuals for the deepest chapters.
linux-insides is free to read online, but it's licensed under Creative Commons BY-NC-SA 4.0, which permits sharing and adapting — including translating — only for non-commercial purposes and with attribution; several volunteer translations already exist.
linux-insides walks through the current kernel's own source code chapter by chapter and is free online; Linux Device Drivers, 3rd Edition (LDD3) is an older, deeply detailed printed book focused specifically on writing device drivers rather than general kernel internals.
linux-insides focuses on x86_64: the README recommends Intel Software Developer Manuals as a companion reference and lists chapters like 'x86 fundamentals,' with no ARM-specific chapter in the current chapter list.
Contributing to linux-insides is welcomed: the repository includes a CONTRIBUTING guide and a Code of Conduct for anyone who wants to fix an error or extend a chapter, and issues can be filed directly on GitHub.
Who should try it — and who should skip
Try linux-insides if you already read C and x86 assembly comfortably and want kernel explanations anchored to real source lines instead of a lecture-style textbook — start with the Booting chapter, since it's the one confirmed current for v7.1.0. Skip it, or at least treat it as a rough map rather than a reference, if you need explanations tied to a current kernel across every subsystem: most chapters here still describe the kernel as it stood around version 3.18, before the ongoing v6.18+ rewrite catches up.
Related repositories
Is linux-insides worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of linux-insides.
