This repository contains a book-in-progress about the Linux kernel and its insides.
The goal of this project is simple – to share knowledge about the Linux kernel internals and related low-level topics. If you’re curious about what’s under the hood, see the Table of Contents.
Important
I started writing this series when the latest version of the kernel was 3.18
. A lot has changed since then, and I am in progress of updating the content to reflect modern kernels (v6.16+). I’ll continue revising the posts as the kernel evolves.
- Prior knowledge about the Assembly language
- Proficiency with the C programming language
- Additionally, you can find lots of useful information about x86_64 processors in Intel Software Developer Manuals
Tip
You can get started with Assembler with my other series of posts about the Assembly programming.
Thanks to the volunteers, the posts about Linux are translated into different languages.
Note
The translations may diverge from the original content.
Read the Contribution guide to learn how to contribute to the project. When contributing, make sure to follow the Code of Conduct.
If you have any questions or suggestions, feel free to ping me at Twitter @0xAX, add an issue, or drop me an email.
There is a Google group mailing list ([email protected]
) for learning the kernel source code.
To join the group, send an email to [email protected]
. You will receive a confirmation email. After replying to it, you will be added to the mailing list.
Tip
If you have a Google account, you can simply open the archive page and click Apply to join group. You will be approved automatically.
This project is licensed under the BY-NC-SA Creative Commons.
The technical content is written by @0xAX.
Additional big thanks to @klaudiagrz for text improvements.