Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 28 additions & 61 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,27 @@
linux-insides
===============
# Linux insides

A book-in-progress about the linux kernel and its insides.
This repository contains a book-in-progress about the Linux kernel and its insides.

> [!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 the process of updating the content to reflect modern kernels where possible — now focusing on v6.16+. I’ll continue revising the posts as the kernel evolves.

**The goal is simple** - to share my modest knowledge about the insides of the linux kernel and help people who are interested in linux kernel insides, and other low-level subject matter. Feel free to go through the book [Start here](https://github.com/0xAX/linux-insides/blob/master/SUMMARY.md)

**Questions/Suggestions**: Feel free about any questions or suggestions by pinging me at twitter [@0xAX](https://twitter.com/0xAX), adding an [issue](https://github.com/0xAX/linux-insides/issues/new) or just drop me an [email](mailto:[email protected]).

Generating eBooks and PDFs - [documentation](https://github.com/GitbookIO/gitbook/blob/master/docs/ebook.md)

# Mailing List

We have a Google Group mailing list for learning the kernel source code. Here are some instructions about how to use it.

#### Join
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](https://github.com/0xAX/linux-insides/blob/master/SUMMARY.md).

Send an email with any subject/content to `[email protected]`. Then you will receive a confirmation email. Reply it with any content and then you are done.
> [!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.

> If you have Google account, you can also open the [archive page](https://groups.google.com/forum/#!forum/kernelhacking) and click **Apply to join group**. You will be approved automatically.
## Requirements

#### Send emails to mailing list
- Prior knowledge about the [Assembly language](https://en.wikipedia.org/wiki/Assembly_language)
- Proficiency with the [C programming language](https://en.wikipedia.org/wiki/C_(programming_language))
- Additionally, you can find lots of useful information about x86_64 processors in [Intel Software Developer Manuals](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)

Just send emails to `[email protected]`. The basic usage is the same as other mailing lists powered by mailman.
> [!TIP]
> You can get started with Assembler with my other series of posts about the [Assembly programming](https://github.com/0xAX/asm).

#### Archives
## Translations

https://groups.google.com/forum/#!forum/kernelhacking
Thanks to the volunteers, the posts about Linux are translated into different languages.

On other languages
-------------------
> [!NOTE]
> The translations may diverge from the original content.

* [Brazilian Portuguese](https://github.com/mauri870/linux-insides)
* [Chinese](https://github.com/MintCN/linux-insides-zh)
Expand All @@ -41,50 +31,27 @@ On other languages
* [Spanish](https://github.com/leolas95/linux-insides)
* [Turkish](https://github.com/ayyucedemirbas/linux-insides_Turkish)

Docker
------

In order to run your own copy of the book with gitbook within a local container:

1. Enable Docker experimental features with vim or another text editor
```bash
sudo vim /usr/lib/systemd/system/docker.service
```

Then add --experimental=true to the end of the ExecStart=/usr/bin/dockerd -H fd:// line and save.

Eg: *ExecStart=/usr/bin/dockerd -H fd:// --experimental=true*

Then, you need to reload and restart the Docker daemon:
```bash
systemctl daemon-reload
systemctl restart docker.service
```
## Contribution

2. Run docker image
```bash
make run
```
Read the [Contribution guide](./CONTRIBUTING.md) to learn how to contribute to the project. When contributing, make sure to follow the [Code of Conduct](./CODE_OF_CONDUCT.md).

3. Open your local copy of linux insides book under this url
http://localhost:4000 or run `make browse`
If you have any questions or suggestions, feel free to ping me at Twitter [@0xAX](https://twitter.com/0xAX), add an [issue](https://github.com/0xAX/linux-insides/issues/new), or drop me an [email](mailto:[email protected]).

## Mailing list

Contributions
--------------
There is a Google group mailing list (`[email protected]`) for learning the kernel source code.

Feel free to create issues or pull-requests if you have any problems.
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.

**Please read [CONTRIBUTING.md](https://github.com/0xAX/linux-insides/blob/master/CONTRIBUTING.md) before pushing any changes.**
> [!TIP]
> If you have a Google account, you can simply open the [archive page](https://groups.google.com/forum/#!forum/kernelhacking) and click **Apply to join group**. You will be approved automatically.

![linux-kernel](Assets/linux-kernel.png)
## License

Author
---------------
This project is licensed under the [BY-NC-SA Creative Commons](http://creativecommons.org/licenses/by-nc-sa/4.0/).

[@0xAX](https://twitter.com/0xAX)
## Author

LICENSE
-------------
The technical content is written by [@0xAX](https://x.com/0xAX).

Licensed [BY-NC-SA Creative Commons](http://creativecommons.org/licenses/by-nc-sa/4.0/).
Additional big thanks to [@klaudiagrz](https://github.com/klaudiagrz) for text improvements.
Loading