My Account
View Cart
Home
Community
Books & Videos
Safari Books Online
Conferences
Training
School of Technology
About
Complete List
Bestsellers
New Releases
Rough Cuts
Upcoming Titles
Ebooks
By Publisher
By Series
Out of Print
Order Info
Search
Search Tips
Understanding the Linux Kernel, Second Edition
By
Daniel P. Bovet
,
Marco Cesati
December 2002
Pages: 784
|
Table of Contents
|
Index
|
Sample Chapter
|
Colophon
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, Tasklets, and Bottom Halves
Returning from Interrupts and Exceptions
Chapter 5
Kernel Synchronization
Kernel Control Paths
When Synchronization Is Not Necessary
Synchronization Primitives
Synchronizing Accesses to Kernel Data Structures
Examples of Race Condition Prevention
Chapter 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
Chapter 7
Memory Management
Page Frame Management
Memory Area Management
Noncontiguous Memory Area Management
Chapter 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
Chapter 9
System Calls
POSIX APIs and System Calls
System Call Handler and Service Routines
Kernel Wrapper Routines
Chapter 10
Signals
The Role of Signals
Generating a Signal
Delivering a Signal
System Calls Related to Signal Handling
Chapter 11
Process Scheduling
Scheduling Policy
The Scheduling Algorithm
System Calls Related to Scheduling
Chapter 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
Chapter 13
Managing I/O Devices
I/O Architecture
Device Files
Device Drivers
Block Device Drivers
Character Device Drivers
Chapter 14
Disk Caches
The Page Cache
The Buffer Cache
Chapter 15
Accessing Files
Reading and Writing a File
Memory Mapping
Direct I/O Transfers
Chapter 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
Chapter 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
Chapter 18
Networking
Main Networking Data Structures
System Calls Related to Networking
Sending Packets to the Network Card
Receiving Packets from the Network Card
Chapter 19
Process Communication
Pipes
FIFOs
System V IPC
Chapter 20
Program Execution
Executable Files
Executable Formats
Execution Domains
The exec Functions
Chapter 21
Bibliography
Books on Unix Kernels
Books on the Linux Kernel
Books on PC Architecture and Technical Manuals on Intel Microprocessors
Other Online Documentation Sources
Colophon
Return to
Understanding the Linux Kernel