APLawrence.com -  Resources for Unix and Linux Systems, Bloggers and the self-employed

In Search of the Kernel

© Anthony Lawrence, aplawrence.com

Next: Memory Management: Segmentation

For most of us, there's really very little reason to delve very far into the guts of the OS. While it may be useful to have a high level understanding of how the kernel manages memory, processes, etc., few of us have any need to get down into the gory details. I certainly have no such need, and chances are you don't either.

Still, there is intellectual curiousity, isn't there? Prior to the availability of source code, the deep secrets of the kernel remained hidden; alluded to at best, but never spread out in specific detail. We might have been curious, but very few of us were in a position to do anything about that mental itch.

But now we can. For the cost of a CD (or even for free if you have the patience), the Linux source code is available to all of us. Perhaps more importantly, there are a good number of books available that at least pretend to explain that code, and the number of resources on the web purporting to do the same is simply overwhelming. At first glance, it looks like this is an itch we can scratch very easily.

Unfortunately, the reality doesn't quite live up to the promise. Even the best of the books and web resources are confusing, a great many are hopelessly out of date and therefore would be misleading even if they were comprehensible. I found out very quickly that I had far more questions than answers.

Part of the problem, of course, is the rapid rate of change. Linux and the web share a common life span, and both have grown and changed very quickly. If you search the web for articles about the Linux Kernel, you'll find a lot of information that dates from the very first kernels. Unfortunately, people don't always update old web pages ( and I'm just as guilty of that as anyone is ), so you don't necessarily know that you are reading very outdated material. This can be very confusing.

Another real problem is that much of the material is incomplete simply due to imperfect understanding of the authors. Often that's freely and readily admitted: you'll find comments like "I don't really understand this part at all". Those sorts of pages at least give you fair warning that you are treading in murky waters; unfortunately there are plenty of other sources whose authors plainly have the same lack of knowledge but don't admit it.

And then there are the architectural issues. Linux, of course, runs on several hardware platforms, and while high level concepts are the same, the nitty-gritty implementation details are vastly different. Pages written by someone intimate with Alpha versions won't help those of us running on Intel (although sometimes the very differences can cast illumination on otherwise obscure points).

So, here we are. I'm about to try to explain what *I* understand so far, from my perspective. I'll warn you up front and probably throughout the text that my understanding is also quite incomplete and may also be defective here and there. I will, of course, do my best to fix any errors that I become aware of.

This text is devoted entirely to Intel Linux. I understand that architecture poorly enough; I surely don't want to dive into areas like Alpha where I have absolutely no comprehension. So, take a deep breath, and here we go:

Next: Memory Management: Segmentation

(OLDER)    <- More Stuff -> (NEWER)    (NEWEST)   

Printer Friendly Version

-> -> In Search of the Kernel - Introduction


More Articles by

Find me on Google+

Tony Lawrence

These are old comments. Please use the Solid Opinion Comments at the bottom of the page.
Kerio Samepage

Have you tried Searching this site?

Unix/Linux/Mac OS X support by phone, email or on-site: Support Rates

This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more.

Contact us

This post tagged: