Chapter 16. Physical Layout of the Kernel Source
So far, we’ve talked about the Linux kernel from the perspective of writing device drivers. Once you begin playing with the kernel, however, you may find that you want to ``understand it all.'' In fact, you may find yourself passing whole days navigating through the source code and grepping your way through the source tree to uncover the relationships among the different parts of the kernel.
This kind of ``heavy grepping'' is one of the tasks my home computer has been set up to specialize in, and it is an efficient way to retrieve information from the source code. However, acquiring a little knowledge-base before sitting down in front of your preferred shell prompt can be helpful. This chapter presents a quick overview of the Linux kernel source files, based on version 2.0.x. The file layout hasn’t changed much from version to version, although I can’t guarantee that it won’t change in the future. So the following information should be useful, even if not authoritative, for browsing other versions of the kernel.
In this chapter, every pathname is given relative to the
source root (usually /usr/src/linux
), while filenames
with no directory component are assumed to reside in the ``current''
directory--the one being discussed. Header files (when named with
angle brackets--<
and >
) are given
relative to the include
directory of the source tree. I
won’t introduce the Documentation
directory, as its role
should be clear.
Booting the Kernel ...
Get Linux Device Drivers now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.