Create bookmark
Understanding the Linux Kernel
Notes
Please login to add notes
- Table of Contents
- + Preface
- + Introduction
- + Memory Addressing
- + Processes
-
+
Interrupts and Exceptions
- The Role of Interrupt Signals
- + Interrupts and Exceptions
- Nested Execution of Exception and Interrupt Handlers
- + Initializing the Interrupt Descriptor Table
- + Exception Handling
-
+
Interrupt Handling
- + Softirqs and Tasklets
- + Work Queues
- + Returning from Interrupts and Exceptions
-
+
Kernel Synchronization
- + How the Kernel Services Requests
- + Synchronization Primitives
-
+
Synchronizing Accesses to Kernel Data Structures
-
+
Choosing Among Spin Locks, Semaphores, and Interrupt Disabling
- Protecting a data structure accessed by exceptions
- Protecting a data structure accessed by interrupts
- Protecting a data structure accessed by deferrable functions
- Protecting a data structure accessed by exceptions and interrupts
- Protecting a data structure accessed by exceptions and deferrable functions
- Protecting a data structure accessed by interrupts and deferrable functions
- Protecting a data structure accessed by exceptions, interrupts, and deferrable functions
-
+
Choosing Among Spin Locks, Semaphores, and Interrupt Disabling
- + Examples of Race Condition Prevention
- + Timing Measurements
-
+
Process Scheduling
- + Scheduling Policy
- + The Scheduling Algorithm
- + Data Structures Used by the Scheduler
-
+
Functions Used by the Scheduler
- + Runqueue Balancing in Multiprocessor Systems
-
+
System Calls Related to Scheduling
-
+
Memory Management
- + Page Frame Management
-
+
Memory Area Management
- The Slab Allocator
- Cache Descriptor
- Slab Descriptor
- General and Specific Caches
- Interfacing the Slab Allocator with the Zoned Page Frame Allocator
- Allocating a Slab to a Cache
- Releasing a Slab from a Cache
- Object Descriptor
- Aligning Objects in Memory
- Slab Coloring
- Local Caches of Free Slab Objects
- Allocating a Slab Object
- Freeing a Slab Object
- General Purpose Objects
- Memory Pools
- + Noncontiguous Memory Area Management
- + Process Address Space
- + System Calls
- + Signals
- + The Virtual Filesystem
- + I/O Architecture and Device Drivers
-
+
Block Device Drivers
- + The Page Cache
-
+
Accessing Files
- + Page Frame Reclaiming
- + The Ext2 and Ext3 Filesystems
-
+
Process Communication
- + Program Execution
- + System Startup
-
+
Modules
- + Bibliography
- Source Code Index
- Index
In order to thoroughly understand what makes Linux tick and why it works so well on a wide variety of systems, you need to delve deep into the heart of the kernel. The kernel handles all interactions between the CPU and the external world, and determines which programs will share processor time, in what order. It manages limited memory so well that hundreds of processes can share the system efficiently, and expertly organizes data transfers so that the CPU isn't kept waiting any longer than necessary for the relatively slow disks.
The third edition of Understanding the Linux Kernel takes you on a guided tour of the most significant data structures, algorithms, and programming tricks used in the kernel. Probing beyond superficial features, the authors offer valuable insights to people who want to know how things really work inside their machine. Important Intel-specific features are discussed. Relevant segments of code are dissected line by line. But the book covers more than just the functioning of the code; it explains the theoretical underpinnings of why Linux does things the way it does.
This edition of the book covers Version 2.6, which has seen significant changes to nearly every kernel subsystem, particularly in the areas of memory management and block devices. The book focuses on the following topics:
Memory management, including file buffering, process swapping, and Direct memory Access (DMA)
The Virtual Filesystem layer and the Second and Third Extended Filesystems
Process creation and scheduling
Signals, interrupts, and the essential interfaces to device drivers
Timing
Synchronization within the kernel
Interprocess Communication (IPC)
Program execution
Understanding the Linux Kernel<
i> will acquaint you with all the inner workings of Linux, but it's more than just an academic exercise. You'll learn what conditions bring out Linux's best performance, and you'll see how it meets the challenge of providing good system response during process scheduling, file access, and memory management in a wide variety of environments. This book will help you make the most of your Linux system.
Test the closed alpha on paperc.com
Book Details
Authors
Categories
Computers > Operating Systems > Linux
Publishers
Publication year : 2007
License: All rights reserved ©
Times read: 850

