How good is Linux Device Drivers book mainly to understand linux concepts and architecture?
Is reading Linux kernel development helpful in 2020? Is it outdated?
Concepts is what you should go for combined with good knowledge of C and Linux in general. The Book Linux Kernel Development is old, but so is Linux Kernel in a Nutshell and Linux Device Drivers. But still these books are the best resource for explaining things and concepts. They're old and a few things are changed or are even obsolete today.
For me personally these few sources are good in companion to the mentioned books:
-
Linux Insides - to get details and insides
-
The Linux Kernel Source Code - best source, fully indexed and with linked symbols
-
Official Linux Docs and Linux Kernel Mailinglist
-
Kernel Recipes - Conference about the Kernel (available at YouTube as well)
-
LFS - to get the big picture how Linux/GNU works
Do you have an idea how to approach the Linux Kernel? What reasons do you have to dig into it? I doubt you can really get the details of every subsystem, but why bother about those details anyway? Ask yourself what do you want to go for?
Is it debugging, developing a driver, updating present drivers, refactoring some legacy subsystem, etc.
When you found your aim, than you start by that subsystem and start even with a single file and work your way up - until you get to know the concepts of this particular subsystem.
Don't bother too much with things you don't understand at first, second, third... glance. Even you really should consider not to understand a few things, just use them at first or skip them. Than after some time you start to understand those things or return to them with a better insight.
Go for a tutorial how to develop a module first and then start digging into different concepts by calling functions you read in the source code.
That's at least how I am trying to go for Linux Kernel development.
More on reddit.com