Understanding the Linux kernel /

Saved in:
Bibliographic Details
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
Hidden Bibliographic Details
Other authors / contributors:Cesati, Marco.
ISBN:0596002130
Notes:"From I/O ports to process management"--Cover.
"Covers Linus Kernel version 2.4"--Cover.
Includes bibliographical references (p. 707-709) and index.
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