Initial ram disk
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.
Requirements
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.
Translations
Thanks to the volunteers, the posts about Linux are translated into different languages.
[!NOTE] The translations may diverge from the original content.
Contribution
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.
Mailing list
There is a Google group mailing list (kernelhacking@googlegroups.com
) for learning the kernel source code.
To join the group, send an email to kernelhacking+subscribe@googlegroups.com
. 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.
License
This project is licensed under the BY-NC-SA Creative Commons.
Author
The technical content is written by @0xAX.
Additional big thanks to @klaudiagrz for text improvements.
Last updated
Was this helpful?