ToC - Understanding the Linux Kernel, Third Edition By Daniel P. Bovet, Marco Cesati

From wikieduonline
Jump to navigation Jump to search

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

  • Memory Addresses
  • Segmentation in Hardware
  • Segmentation in Linux
  • Paging in Hardware
  • Paging in Linux

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: