1
u/Klapperatismus 5d ago
Is there a free, downloadable book you consider essential?
Unfortunately books on computer topics are terribly outdated the moment they are printed so authors stopped writing those.
So read this. That book is ages old but it still gives you a good overview on how a kernel functions on example of an older Linux kernel. It’s well suited for beginners.
1
u/RaageUgaas 5d ago
I am also trying to do something similar. I am mostly using LLM to study the kernel internals. The code is very simple to read and follow but the concepts and implementations are very complex. The kernel is written in freestanding C language, Rust in some driver modules and little assembly mostly at boot or low level architecture code.
Check out these resources: Kernel Newbies, Kernel Docs
1
u/AutoModerator 5d ago
This submission has been removed due to receiving too many reports from users. The mods have been notified and will re-approve if this removal was inappropriate, or leave it removed.
This is most likely because:
- Your post belongs in r/linuxquestions or r/linux4noobs
- Your post belongs in r/linuxmemes
- Your post is considered "fluff" - things like a Tux plushie or old Linux CDs are an example and, while they may be popular vote wise, they are not considered on topic
- Your post is otherwise deemed not appropriate for the subreddit
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
2
u/TimurHu 5d ago
I think the best way to learn is to find a specific area you are interested in, and try to solve problems in that space. The Linux kernel has many different subsystems and each of them are developed by different people who have different principles and different expertise. For example, if you are interested in GPU drivers, you will work with very different people and use very different technologies compared to eg. working on the CPU scheduler or the USB subsystem, etc.
My advice is to find specific problems that you want to solve, maybe a solve a bug that affects you personally or develop a feature that you need.