Several unrelated beginner questions.

Konstantin Kowalski kostya-kow at mail.ru
Wed Mar 6 18:19:09 EST 2013


Hello everyone,

I am interested in Linux kernel programming (and OS kernels and 
general), and I am currently reading several books about Linux kernel. I 
have a few questions about it:


1.) Currently, I am reading 2 books about Linux kernel: Linux Device 
Drivers (3rd edition) and Linux Kernel Development (3rd edition).

I like both books and I am learning a lot from them.

I heard that both of this books are outdated, but so far all the 
information in this books seems valid and applicable. Is there better 
books you would recommend?

2.) In Linux Device Drivers, it states that module_exit(function) is 
discarded if module is built directly into kernel or if kernel is 
compiled with option to disallow loadable modules. But what if the 
module still has to do something during shutdown? Releasing memory is 
unimportant since it does not persist over reboot, but what if the 
module has to write something to a disk file, or do some other action?

3.) What's the deal with different kernel versions? I heard back in the 
2.x days, even kernels were stable and odd versions were experimental, 
but with 2.6 it changed.

So with 3.x kernels, are all of them experimental in the beginning and 
stable in the end? Also, with 3.x new versions seem to be released more 
often than in 2.1-2.5 days. Did the release cycle get smaller or is it 
just my imagination? Also, what does rc number mean?

4.) Currently, I am running linux-next, and it works great. Am I correct 
to assume that linux-next is supposed to have newest, shiniest and most 
unstable features? `uname -a` says that I am still running 3.8-next, but 
there is already 3.9 out. So which version is more experimental and 
least stable? Which one is the newest?

5.) How exactly does make/.config work? When I run `make oldconfig`, 
does it use the everything from the previous .config and only ask how to 
configure new features? And when I run `make` does it re-use old object 
files if nothing was changed in the specific file, or does it re-compile 
everything from scratch?

Thank you,

Kostyantyn Kovalskyy (Konstantin Kowalski)




More information about the Kernelnewbies mailing list