Linux Kernel Development(Linux内核设计与实现) Contents at a Glance

Linux Kernel Development(Linux内核设计与实现) Contents at a Glance

Linux Kernel Development(Linux内核设计与实现) Wonderful Digest

Introduction to theLinux Kernel 1Getting Started with theKernel 11ProcessManagement 23ProcessScheduling 41SystemCalls 69KernelData Structures 85Interrupts andInterrupt Handlers 113Bottom Halves andDeferring Work 133An Introduction toKernel Synchronization 161KernelSynchronization Methods 175Timers andTime Management 207MemoryManagement 231TheVirtual Filesystem 261The BlockI/O Layer 289The ProcessAddress Space 305The Page Cache andPage Writeback 323Devicesand Modules 337Debugging 363Portability 379Patches, Hacking, andthe Community 395Bibliography 407Index 411As 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.