For people who are very new to kernel and kernel development:
- I will highly recommend you to first complete MIT 6.1810: Operating System Engineering Labs and Readings together with a linux kernel book like Understanding the Linux Kernel 3e: From I/O Ports to Process Management.
- This book goes into much details which is not needed, just sift through the chapters along with
xv6 book
in the MIT course. - Look into theory and complete the labs.
Once you are done with the course, you will have good background to explore the linux kernel source.
- Devicetree
- DRM (GPU)
- eBPF (Tracing)
- Bcachefs (Filesystem)
- Debugging
- Finding Bugs
- Event tracing
- eBPF tracing(TODO)
- Kernel Concepts
- Kernel Core APIs (TODO)
- Kernel Subsystems
- Devicetree
- Graphics (TODO)
- Implementations
- Kernel Mentorship Program (TODO)
- Prerequisites (TODO)
- Setting up the Kernel (TODO)
- Kernel Boot Process (TODO)
- Syzkaller Notes
- eBPF Tracing (TODO)
- RCU in Kernel (TODO)
- Linux Kernel Development by Robert Love (3rd Edition) Amazon Link
- Linux Device Drivers 3ed by Johnathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman Amazon Link
- Understanding the Linux Kernel 3e: From I/O Ports to Process Management Amazon Link
- Design of the UNIX Operating System by Maurice J. Bach (AT&T Bell Labs) Amazon Link
Other readings are mentioned in the respective notes' README.md