失效链接处理 |
understanding the linux kernel PDF 下载
本站整理下载:
相关截图:
主要内容:
Preface
In the spring semester of 1997, we taught a course on operating systems based on Linux 2.0.
The idea was to encourage students to read the source code. To achieve this, we assigned term
projects consisting of making changes to the kernel and performing tests on the modified
version. We also wrote course notes for our students about a few critical features of Linux like
task switching and task scheduling.
We continued along this line in the spring semester of 1998, but we moved on to the Linux
2.1 development version. Our course notes were becoming larger and larger. In July, 1998 we
contacted O'Reilly & Associates, suggesting they publish a whole book on the Linux kernel.
The real work started in the fall of 1998 and lasted about a year and a half. We read thousands
of lines of code, trying to make sense of them. After all this work, we can say that it was
worth the effort. We learned a lot of things you don't find in books, and we hope we have
succeeded in conveying some of this information in the following pages.
The Audience for This Book
All people curious about how Linux works and why it is so efficient will find answers here.
After reading the book, you will find your way through the many thousands of lines of code,
distinguishing between crucial data structures and secondary ones—in short, becoming a true
Linux hacker.
Our work might be considered a guided tour of the Linux kernel: most of the significant data
structures and many algorithms and programming tricks used in the kernel are discussed; in
many cases, the relevant fragments of code are discussed line by line. Of course, you should
have the Linux source code on hand and should be willing to spend some effort deciphering
some of the functions that are not, for sake of brevity, fully described.
On another level, the book will give valuable insights to people who want to know more about
the critical design issues in a modern operating system. It is not specifically addressed to
system administrators or programmers; it is mostly for people who want to understand how
things really work inside the machine! Like any good guide, we try to go beyond superficial
features. We offer background, such as the history of major features and the reasons they were
used.
Organization of the Material
When starting to write this book, we were faced with a critical decision: should we refer to a
specific hardware platform or skip the hardware-dependent details and concentrate on the
pure hardware-independent parts of the kernel?
Others books on Linux kernel internals have chosen the latter approach; we decided to adopt
the former one for the following reasons:
• Efficient kernels take advantage of most available hardware features, such as
addressing techniques, caches, processor exceptions, special instructions, processor
control registers, and so on. If we want to convince you that the kernel indeed does
|