linux kernel development roadmap
sorry for asking too much question, i does anyone have a good roadmap to be a kernel development.
2 Replies
That's a very ambitious goal, with not a clear roadmap, since it is very broad. If you want to be involved in the Linux Kernel development, the best point of entry is writing drivers
The problem is that the Linux Kernel has a lot of areas that nobody in the team will know all of them exactly. There are some contributions from some people who may try to contribute to writing a driver for a soundcard or something, and they may know next to nothing on how the Linux Kernel deals with file systems on a deep level. If you want to contribute in general to the kernel, just pick an area and do a deep dive, they are not gonna ask to know the whole codebase
But, let's say that you want to be interested on how Linux works.
There are various ways to go about it, and it really depends on what you actually wanna learn.
In the most general sense, learning about operating systems, with a more specific look towards Unix, will help you to understand how Linux works at a general level. There are books from Andrew Tanenbaum that go deep into several areas. I recommend the "Operating Systems: Design and Implementation", since it actually looks at a specific implementation, MINIX, which is like a UNIX (and which Linux was based on). Just reading the 1st chapter introduces a lot of concepts that you may not be familiar with, so, even if you don't want to delve too deep into every specific area, the 1st chapter is still very good general view.
If you wanna learn the components that make up a linux distro, which tend to delve into systems programming and the kernel itself, you can focus on the Linux From Scratch project, which is a series of guides to create a very basic Linux distribution. Here, you may learn some things that may be a little bit higher level than what the kernel may usually offer, but it does help you to get a general view.
If you just wanna go head into the kernel, you can always read the source code. This is probably the worst way to go about it, since there might be a lot of concepts that you are not aware of that the linux kernel does for, well, reasons related to those concepts. I wouldn't recommend this.
If you don't wanna build a kernel from scratch and you don't wanna do something too high-level, you can always read on how to develop drives for the Linux kernel. You are going to learn a LOT on how Linux deals with several low-level concepts. Reading the related docs (https://www.kernel.org/doc/html/latest/) will help you.
i see now things more clearly, probably i have to choose an area and gived all my time
thank you ^^