Elephant
oreilly.com O'Reilly Network Safari Bookshelf Conferences Sign In/My Account | View Cart   
Book List Learning Lab eDocuments O'Reilly Gear Newsletters Press Room Jobs      O'Reilly China O'Reilly France O'Reilly Germany O'Reilly Japan O'Reilly Taiwan O'Reilly UK  

 
Bioinformatics
C/C++
Databases
Digital Media
Enterprise Development
Game Development
Java
Linux/Unix
Macintosh/OS X
.NET
Open Source
Oracle
Perl
Python
Scripting
Security
Software Development
SysAdmin/Networking
Web
Web Services
Windows
Wireless
XML
Annoyances
CD Bookshelves
Cookbooks
Developer's Notebooks
Hacks
Head First
In A Nutshell
Missing Manuals
Pocket References
Personal Trainer
Technology & Society
Mandriva
No Starch Press
Paraglyph Press
PC Publishing
Pragmatic Bookshelf
SitePoint
Syngress Publishing
LinuxDevCenter.com
MacDevCenter.com
ONDotnet.com
ONJava.com
ONLamp.com
OpenP2P.com
Perl.com
WebServices.XML.com
WindowsDevCenter.com
XML.com
Novell Learning Channel
Beta Chapters
Events
From the Editors List
Letters
MAKE
Open Books
tim.oreilly.com
Academic
Corporate Services
Government
About O'Reilly
Bookstores
Catalog Request
Contact Us
International
User Groups
Writing for O'Reilly
This book qualifies for free shipping
Understanding the Linux Kernel
see larger cover

Understanding the Linux Kernel, Second Edition

By Daniel P. Bovet, Marco Cesati
Second Edition December 2002 
ISBN: 0-596-00213-0
784 pages, $49.95 US, $77.95 CA, £35.50 UK
Buy from O'Reilly: Add to Cart Read Online--Safari

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

Return to Understanding the Linux Kernel


O'Reilly Home | Privacy Policy

© 2005, O'Reilly Media, Inc.
Website: | Customer Service: | Book issues:

All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.