Linux Kernel Architecture

(Jacob Rumans) #1

Introduction and Overview


Operating systems are not only regarded as a fascinating part of information technology, but are
also the subject of controversial discussion among a wide public.^1 Linux has played a major role
in this development. Whereas just 10 years ago astrict distinction was made between relatively
simple academic systems available in source code and commercial variants with varying perfor-
mance capabilities whose sources were a well-guarded secret, nowadays anybody can download
the sources of Linux (or of any other free systems) from the Internet in order to study them.


Linux is now installed on millions of systems and is used by home users and professionals alike
for a wide range of tasks. From miniature embedded systems in wristwatches to massively parallel
mainframes, there are countless ways of exploiting Linux productively. And this makes the sources
so interesting. A sound, well-established concept (Unix) melded with powerful innovations and a
strong penchant for dealing with problems that do not arise in academic teaching systems — this is
what makes Linux so fascinating.


This book describes the central functions of the kernel, explains its underlying structures, and exam-
ines its implementation. Because complex subjects are discussed, I assume that the reader already
has some experience in operating systems and systems programming in C (it goes without saying
that I assume some familiarity withusingLinux systems). I touch briefly on several general concepts
relevant to common operating system problems, but my prime focus is on the implementation of the
Linux kernel. Readers unfamiliar with a particular topic will find explanations on relevant basics in
one of the many general texts on operating systems; for example, in Tanenbaum’s outstanding


(^1) It isnotthe intention of this book to participate in ideological discussions such as whether Linux can be regarded as a
full operating system, although it is, in fact, just a kernel that cannot function productively without relying on other com-
ponents. When I speak of Linux as an operating system without explicitly mentioning the acronyms of similar projects
(primarily the GNU project, which despite strong initial resistance regarding the kernel reacts extremely sensitively when
Linuxis used instead ofGNU/Linux), this should not be taken to mean that I do not appreciate the importance of the
work done by this project. Our reasons are simple and pragmatic. Where do we draw the line when citing those involved
without generating such lengthy constructs asGNU/IBM/RedHat/HP/KDE/Linux? If this footnote makes little sense, refer to
http://www.gnu.org/gnu/linux-and-gnu.html, where you will find a summary of the positions of the GNU project.
After all ideological questions have been settled, I promise to refrain from using half-page footnotes in the rest of this book.

Free download pdf