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

From wikieduonline
Revision as of 17:00, 16 December 2019 by Welcome (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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: