附註:Includes bibliographical references (pages 313-315) and index.
Cover -- Copyright 169; 2004 by Sams Publishing -- Contents at a Glance -- TOC36;Table of Contents -- About the Author -- About the Technical Editor -- We Want to Hear from You33; -- Foreword -- Preface -- Authors Introduction -- Audience -- Organization of Material -- Book Web Site -- CH36;CHAPTER 1 Introduction to the Linux Kernel -- Introduction to Linux -- Overview of Operating Systems and Kernels -- Linux Versus Classic Unix Kernels -- Linux Kernel Versions -- The Linux Kernel Development Community -- A Beast of a Different Nature -- Building the Kernel -- Before We Begin -- CH36;CHAPTER 2 Process Management -- The Process Descriptor and Task Structure -- Process Creation -- The Linux Implementation of Threads -- Process Termination -- CH36;CHAPTER 3 Scheduling -- Policy -- The Scheduling Algorithm -- Preemption and Context Switching -- Real45;Time -- Scheduler45;Related System Calls -- CH36;CHAPTER 4 System Calls -- APIs44; POSIX44; and the C Library -- Syscalls -- System Call Handler -- System Call Implementation -- System Call Context -- CH36;CHAPTER 5 Interrupts and Interrupt Handlers -- Interrupts -- Interrupt Handlers -- Registering an Interrupt Handler -- Writing an Interrupt Handler -- Implementation of Interrupt Handling -- 47;proc47;interrupts -- Interrupt Control -- CH36;CHAPTER 6 Bottom Halves and Deferring Work -- Bottom Halves -- Softirqs -- Tasklets -- Work Queues -- Which Bottom Half Should I Use63; -- Locking Between the Bottom Halves -- CH36;CHAPTER 7 Kernel Synchronization Introduction -- Critical Regions and Race Conditions -- Locking -- Deadlocks -- Contention and Scalability -- Locking and Your Code -- CH36;CHAPTER 8 Kernel Synchronization Methods -- Atomics Operations -- Spin Locks -- Reader45;Writer Spin Locks -- Semaphores -- Reader45;Writer Semaphores -- Completion Variables -- BKL58;The Big Kernel Lock -- Seq Locks -- Preemption Disabling -- Barriers -- CH36;CHAPTER 9 Timers and Time Management -- Kernel Notion of Time -- The Tick
摘要:Linux Kernel Development details the design and implementation of the Linux kernel, presenting the content in a manner that is beneficial to those writing and developing kernel code. While the book discusses topics that are theoretical, it does so with the goal of assisting programmers so they better understand the topics and become more efficient and productive in their coding. The book discusses the major subsystems and features of the Linux kernel, including design and implementation, their purpose and goals, and their interfaces. Important computer science and operating system design details are also addressed. The book covers the Linux kernel from both angles - theoretical and applied - which should appeal to both types of readers. The author is involved in Linux kernel development, so the latest kernel version is detailed, as the author has access to the not-yet-released development releases. Specific topics covered will include: all the important algorithms, relevant subsystems, process management, scheduling, time management and timers, system call interface, memory addressing, memory management, paging strategies, caching layers, VFS, kernel synchronization, and signals.