Linux Kernel Development(Linux内核设计与实现) Contents at a Glance
Introduction to theLinux Kernel 1
Getting Started with theKernel 11
ProcessManagement 23
ProcessScheduling 41
SystemCalls 69
KernelData Structures 85
Interrupts andInterrupt Handlers 113
Bottom Halves andDeferring Work 133
An Introduction toKernel Synchronization 161
KernelSynchronization Methods 175
Timers andTime Management 207
MemoryManagement 231
TheVirtual Filesystem 261
The BlockI/O Layer 289
The ProcessAddress Space 305
The Page Cache andPage Writeback 323
Devicesand Modules 337
Debugging 363
Portability 379
Patches, Hacking, andthe Community 395
Bibliography 407
Index 411
Linux Kernel Development(Linux内核设计与实现) Wonderful Digest
As the Linux kernel and the applications that use it become more widely used, we are seeing an increasing number of system software developers who wish to become involved in the development and maintenance of Linux. Some of these engineers are motivated purely by personal interest, some work for Linux companies, some work for hardware manufacturers, and some are involved with in-house development projects.
But all face a common problem:The learning curve for the kernel is getting longer and steeper.The system is becoming increasingly complex, and it is very large. And as the years pass, the current members of the kernel development team gain deeper and broader knowledge of the kernel’s internals, which widens the gap between them and newcomers.
I believe that this declining accessibility of the Linux source base is already a problem for the quality of the kernel, and it will become more serious over time.Those who care for Linux clearly have an interest in increasing the number of developers who can con- tribute to the kernel.
One approach to this problem is to keep the code clean: sensible interfaces, consistent layout,“do one thing, do it well,” and so on.This is Linus Torvalds’ solution.