I am relativly new to linux as I have only been using for around three months. I am interested
in the inner workings of the linux kernel. I was woundering what the best book on the linux
kernel was for a begginer such as myself?

03-04-2003

Dolda2000

I don't really know how easy it is to find books on that, since most book stores don't sell them. Amazon might have something, if you look.
If there's something specific you're looking for, I might very well be able to answer it for you, though.

03-04-2003

wassy121

wow, Dolda, you are offering specifics on the linux kernel? That is a tall order. I would suggest reading the Linux Kernel Mailing List. Lurk around there for a while, picking stuff up as you see it, there is plenty of work to be done on it, and with a go-get-'em attitude you will have your name in lights (well, changelogs maybe) in no time. I haven't had the time to look into any specific part of the code, though I was reading through the VM pretty heavily a couple months ago when Ingo started getting the O1 scheduler committed and stuff. (ps the LKML can be found at kernel.org, or read on newsgroups, or groups.google.com)

03-05-2003

trigue

Thanks. I'll have a look at what amazon has to offer. I'm just looking for a book that gives a
nice overview of how linux works on the inside that dosn't confuse me all that much.
Do you think that is to advanced a subject for a begginer?

thanks

03-05-2003

wassy121

it depends. Usually when people say "I want to learn linux" they mean "I want to learn how to use linux to accomplish everyday tasks like email, writing papers, etc". If you want to learn how the lower level works, then the kernel is the right place to start. Be careful though, to understand the kernel you need to have a good grasp of C, Programming languages, programming paradigms, patterns, discrete math, optimization, algorithms, and data structures. If you don't already know these and want to get into the kernel you might be stepping in over your head. Get a good book on C, and learn C REALLY well, and you will be in a little better shape to tinker with the kernel.

03-05-2003

Dolda2000

Wow, let's get something straight here. I didn't intend to present myself in the image of a kernel hacker. I was just thinking that I have, after all, had a good run of the source, while he probably hasn't, and therefore I might be able to offer a little insight.
I wouldn't say the kernel sources are as bad as wassy describes them, though. The more advanced subjects, like discrete math, hash tables, etc. you only need to know for certain parts of the kernel, like the checksumming algorithms or the IP FIB, or if you want to understand the more advanced optimization techniques used.
There are other issues, though. First, like wassy said, you _really_ need to know C, or you will be in over you head. Also, you need to know a little bit about how the hardware works. For examples, you'll need to comprehend terms such as page table, IRQ, task gates (for IA32), MMU, descriptors and selectors etc. You can read about hardware memory management in the libc texinfo, under Memory and Memory Concepts. For even more low-level, like the bootstrapping procedure and descriptor table setup, you'll need to know assembler as well. (Has anyone thought of that assembler is probably the easiest language to learn? You'll need to know everything about the hardware, of course, but assembly language is _really_ simple.)

03-06-2003

trigue

Thanks for all the info. I now know a good place to start learning .I started learning C about
a month ago. I have much to learn. I will have many questions along the way but i'm glad
to know there are people willing to give advice to the clueless.

Thanks.

03-06-2003

wassy121

If you have any questions on C let us know, Dolda seems really well versed in a lot of the inner workings of C, and I think I have a pretty good grasp of it (though my education has been focusing more on processes than on product and optimization). Like you said though, it is great to find people willing to help, I know I have had my fair share of people willing to take that extra step to teach me the way on my path to "enlightenment" (not the window manager:))