Understanding the Linux kernel /
Saved in:
Author / Creator: | Bovet, Daniel P. (Daniel Pierre) |
---|---|
Edition: | 2nd ed. |
Imprint: | Sebastopol, CA : O'Reilly, [2002], c2003. |
Description: | xv, 765 p. : ill. ; 24 cm. |
Language: | English |
Subject: | |
Format: | Print Book |
URL for this record: | http://pi.lib.uchicago.edu/1001/cat/bib/4848482 |
Table of Contents:
- Preface
- 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
- 2.. Memory Addressing
- Memory Addresses
- Segmentation in Hardware
- Segmentation in Linux
- Paging in Hardware
- Paging in Linux
- 3.. Processes
- Processes, Lightweight Processes, and Threads
- Process Descriptor
- Process Switch
- Creating Processes
- Destroying Processes
- 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, Tasklets, and Bottom Halves
- Returning from Interrupts and Exceptions
- 5.. Kernel Synchronization
- Kernel Control Paths
- When Synchronization Is Not Necessary
- Synchronization Primitives
- Synchronizing Accesses to Kernel Data Structures
- Examples of Race Condition Prevention
- 6.. Timing Measurements
- Hardware Clocks
- The Linux Timekeeping Architecture
- CPU's Time Sharing
- Updating the Time and Date
- Updating System Statistics
- Software Timers
- System Calls Related to Timing Measurements
- 7.. Memory Management
- Page Frame Management
- Memory Area Management
- Noncontiguous Memory Area Management
- 8.. 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
- 9.. System Calls
- POSIX APIs and System Calls
- System Call Handler and Service Routines
- Kernel Wrapper Routines
- 10.. Signals
- The Role of Signals
- Generating a Signal
- Delivering a Signal
- System Calls Related to Signal Handling
- 11.. Process Scheduling
- Scheduling Policy
- The Scheduling Algorithm
- System Calls Related to Scheduling
- 12.. The Virtual Filesystem
- The Role of the Virtual Filesystem (VFS)
- VFS Data Structures
- Filesystem Types
- Filesystem Mounting
- Pathname Lookup
- Implementations of VFS System Calls
- File Locking
- 13.. Managing I/O Devices
- I/O Architecture
- Device Files
- Device Drivers
- Block Device Drivers
- Character Device Drivers
- 14.. Disk Caches
- The Page Cache
- The Buffer Cache
- 15.. Accessing Files
- Reading and Writing a File
- Memory Mapping
- Direct I/O Transfers
- 16.. Swapping: Methods for Freeing Memory
- What Is Swapping?
- Swap Area
- The Swap Cache
- Transferring Swap Pages
- Swapping Out Pages
- Swapping in Pages
- Reclaiming Page Frame
- 17.. 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
- 18.. Networking
- Main Networking Data Structures
- System Calls Related to Networking
- Sending Packets to the Network Card
- Receiving Packets from the Network Card
- 19.. Process Communication
- Pipes
- FIFOs
- System V IPC
- 20.. Program Execution
- Executable Files
- Executable Formats
- Execution Domains
- The exec Functions
- A.. System Startup
- B.. Modules
- C.. Source Code Structure
- Bibliography
- Source Code Index
- Index