ToC - Understanding the Linux Kernel, Third Edition By Daniel P. Bovet, Marco Cesati
The table of contents from the venerable "Understanding the Linux Kernel” can serve as a guide to anyone covering specific areas of the kernel.
Table of Contents
Chapter 1: Introduction
- Linux Versus Other Unix-Like Kernels
- Hardware Dependency
- Linux Versions
- Basic Operating System Concepts
- An Overview of the Unix Filesystem
- An Overview of Unix Kernels
Chapter 2: Memory Addressing
Chapter 3: Processes
- Processes, Lightweight Processes, and Threads
- Process Descriptor
- Process Switch
- Creating Processes
- Destroying Processes
Chapter 4: 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
Chapter 5: Kernel Synchronization
- How the Kernel Services Requests
- Synchronization Primitives
- Synchronizing Accesses to Kernel Data Structures
- Examples of Race Condition Prevention
Chapter 6: Timing Measurements
- Clock and Timer Circuits
- The Linux Timekeeping Architecture
- Updating the Time and Date
- Updating System Statistics
- Software Timers and Delay Functions
- System Calls Related to Timing Measurements
Chapter 7: 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
Chapter 8: Memory Management
- Page Frame Management
- Memory Area Management
- Noncontiguous Memory Area Management
Chapter 9: Process Address Space
- The Process's Address Space
- The Memory Descriptor
- Memory Regions
- Page Fault Exception Handler
- Creating and Deleting a Process Address Space
- Managing the Heap
Chapter 10: System Calls
- POSIX APIs and System Calls
- System Call Handler and Service Routines
- Entering and Exiting a System Call
- Parameter Passing
- Kernel Wrapper Routines
Chapter 11: Signals
- The Role of Signals
- Generating a Signal
- Delivering a Signal
- System Calls Related to Signal Handling
Chapter 12: The Virtual Filesystem
- The Role of the Virtual Filesystem (VFS)
- VFS Data Structures
- Filesystem Types
- Filesystem Handling
- Pathname Lookup
- Implementations of VFS System Calls
- File Locking
Chapter 13: I/O Architecture and Device Drivers
- I/O Architecture
- The Device Driver Model
- Device Files
- Device Drivers
- Character Device Drivers
Chapter 14: Block Device Drivers
- Block Devices Handling
- The Generic Block Layer
- The I/O Scheduler
- Block Device Drivers
- Opening a Block Device File
Chapter 15: The Page Cache
- The Page Cache
- Storing Blocks in the Page Cache
- Writing Dirty Pages to Disk
- The sync( ), fsync( ), and fdatasync( ) System Calls
Chapter 16: Accessing Files
- Reading and Writing a File
- Memory Mapping
- Direct I/O Transfers
- Asynchronous I/O
Chapter 17: Page Frame Reclaiming
- The Page Frame Reclaiming Algorithm
- Reverse Mapping
- Implementing the PFRA
- Swapping
Chapter 18: The Ext2 and Ext3 Filesystems
- General Characteristics of Ext2
- Ext2 Disk Data Structures
- Ext2 Memory Data Structures
- Creating the Ext2 Filesystem
- Ext2 Methods
- Managing Ext2 Disk Space
- The Ext3 Filesystem
Chapter 19: Process Communication
- Pipes
- FIFOs
- System V IPC
- POSIX Message Queues
Chapter 20: Program ExZecution
- Executable Files
- Executable Formats
- Execution Domains
- The exec Functions
Appendix A: System Startup
- Prehistoric Age: the BIOS
- Ancient Age: the Boot Loader
- Middle Ages: the setup( ) Function
- Renaissance: the startup_32( ) Functions
- Modern Age: the start_kernel( ) Function
Appendix B: Modules
Appendix : Bibliography
- Books on Unix Kernels
- Books on the Linux Kernel
- Books on PC Architecture and Technical Manuals on Intel Microprocessors
- Other Online Documentation Sources
- Research Papers Related to Linux Development
Advertising: