How To Gain a Deep Understanding of the Linux Kernel

pineapple

New Member
Joined
Jun 1, 2018
Messages
2
Reaction score
4
Credits
0
Good Afternoon,

I am not a proficient programmer. Therefore, I can not view source code of the Linux kernel and gain a deep understanding of how Linux works. Therefore, I believe that reading about design philosophy and the decisions that led to certain contributions to the Linux kernel would be beneficial in the interim.

Where can I go to read the aforementioned?

Thank you.
 


Hi @pineapple, and welcome! I think the Wikipedia article about the Linux kernel (here) seems like a good place for you to start. And from there... follow some of the MANY LINKS and footnotes to learn more. Good luck!

Cheers
 
Another good resource would be the Linux Kernel documentation:
https://www.kernel.org/doc/html/latest/

Most of the documentation might only be useful for programmers, because it details various kernel API's and sub-systems. But there are also many sections that cover the design and implementation of some of the sub-systems. So it's almost certainly worth a browse.
 
Actually, Jas (& welcome @pineapple ;)), I was wondering what you make of this one?

https://linuxhint.com/linux-kernel-tutorial-beginners/

I find it quite easy to understand, but, although it claims to have been written 8 months ago, it is obviously dated, perhaps cobbled together over time, or edited, un-annotated, with its references to Fedora 13, and also to kernel 3.17. We are up to 4.16.9 now, with LTS (long term support) being on 4.14 I think?

v3.17 is around about the time of the Shellshock Bug of late September 2014.

Still, it has some useful links, so may be of use to the OP.

Cheers gotta fly

Chris Turner
wizardfromoz
 
Actually, Jas (& welcome @pineapple ;)), I was wondering what you make of this one?

https://linuxhint.com/linux-kernel-tutorial-beginners/

I find it quite easy to understand, but, although it claims to have been written 8 months ago, it is obviously dated, perhaps cobbled together over time, or edited, un-annotated, with its references to Fedora 13, and also to kernel 3.17. We are up to 4.16.9 now, with LTS (long term support) being on 4.14 I think?

v3.17 is around about the time of the Shellshock Bug of late September 2014.

Still, it has some useful links, so may be of use to the OP.

Cheers gotta fly

Chris Turner
wizardfromoz

There are some dated references in there to old versions of the kernel and Fedora. But a lot of the information is quite generic and is worded in fairly plain, everyday English, without too many technical terms. So some of it might be useful - as a brief high level overview. But there are some problems and minor inaccuracies in the article.

Some sections are woefully incomplete - like the sections on building and updating the kernel from source. And in others, the information is just slightly wrong. Either through the authors own misinterpretation of the subject, or through a bad choice of words which makes the information incorrect, or ambiguous/open to interpretation.

For example, take the section entitled "The modular kernel":
The modular kernel
Previous versions of the Linux kernel were in such a way that all their parts were statically fixed into one, monolithic. However, modern Linux kernels have most of their functionality contained in modules that are put into the kernel dynamically. This in contrast to monolithic types, is referred to as modular kernels. Such a setup allows a user to load or replace modules in a running kernel without the need of rebooting.

From some of the sentence structure - particularly the opening sentence - it is obvious that English is a 2nd language to them. And kudos to them - they have a pretty good grasp of the English language and a wide vocabulary.
Perhaps it is simply the case that the author is unable to accurately convey what they are trying to say in places.

But the wording of the paragraph implies that the kernel used to be monolithic, but now it's modular and therefore NOT monolithic any more. Which isn't entirely accurate.

OK, Yes - years ago everything was built directly into the kernel into one truly monolithic executable. It was monolithic in every way!

And yes - the kernel is more modular nowadays. Certain drivers/sub-systems have been separated out into their own loadable kernel modules that can be loaded, or unloaded on demand.

But the Linux kernel is still considered a monolithic kernel because the main kernel executable and all of it's modules are loaded into a single process and share the same address space. So although it's more modular than it used to be, Linux is still a monolithic kernel.

But there is a lot of other information in that post. So it's got its pluses and minuses! The author obviously spent a lot of time working on it.
 

Staff online


Latest posts

Top