Buying Options
Understanding the Linux Kernel, Second Edition
Safari Books Online
Add to Cart
What is this?

Product Editions

Please consider the latest edition.

  1. Understanding the Linux Kernel, Third Edition - November 2005
  2. Understanding the Linux Kernel, Second Edition - December 2002
  3. Understanding the Linux Kernel - October 2000
Description
The new edition of Understanding the Linux Kernel takes you on a guided tour through the most significant data structures, many algorithms, and programming tricks used in the kernel. The book has been updated to cover version 2.4 of the kernel, which is quite different from version 2.2: the virtual memory system is entirely new, support for multiprocessor systems is improved, and whole new classes of hardware devices have been added. You'll learn what conditions bring out Linux's best performance, and how it meets the challenge of providing good system response during process scheduling, file access, and memory management in a wide variety of environments.
Full Description
Table of Contents
  1. Chapter 1 Introduction

    1. Linux Versus Other Unix-Like Kernels

    2. Hardware Dependency

    3. Linux Versions

    4. Basic Operating System Concepts

    5. An Overview of the Unix Filesystem

    6. An Overview of Unix Kernels

  2. Chapter 2 Memory Addressing

    1. Memory Addresses

    2. Segmentation in Hardware

    3. Segmentation in Linux

    4. Paging in Hardware

    5. Paging in Linux

  3. Chapter 3 Processes

    1. Processes, Lightweight Processes, and Threads

    2. Process Descriptor

    3. Process Switch

    4. Creating Processes

    5. Destroying Processes

  4. Chapter 4 Interrupts and Exceptions

    1. The Role of Interrupt Signals

    2. Interrupts and Exceptions

    3. Nested Execution of Exception and Interrupt Handlers

    4. Initializing the Interrupt Descriptor Table

    5. Exception Handling

    6. Interrupt Handling

    7. Softirqs, Tasklets, and Bottom Halves

    8. Returning from Interrupts and Exceptions

  5. Chapter 5 Kernel Synchronization

    1. Kernel Control Paths

    2. When Synchronization Is Not Necessary

    3. Synchronization Primitives

    4. Synchronizing Accesses to Kernel Data Structures

    5. Examples of Race Condition Prevention

  6. Chapter 6 Timing Measurements

    1. Hardware Clocks

    2. The Linux Timekeeping Architecture

    3. CPU's Time Sharing

    4. Updating the Time and Date

    5. Updating System Statistics

    6. Software Timers

    7. System Calls Related to Timing Measurements

  7. Chapter 7 Memory Management

    1. Page Frame Management

    2. Memory Area Management

    3. Noncontiguous Memory Area Management

  8. Chapter 8 Process Address Space

    1. The Process's Address Space

    2. The Memory Descriptor

    3. Memory Regions

    4. Page Fault Exception Handler

    5. Creating and Deleting a Process Address Space

    6. Managing the Heap

  9. Chapter 9 System Calls

    1. POSIX APIs and System Calls

    2. System Call Handler and Service Routines

    3. Kernel Wrapper Routines

  10. Chapter 10 Signals

    1. The Role of Signals

    2. Generating a Signal

    3. Delivering a Signal

    4. System Calls Related to Signal Handling

  11. Chapter 11 Process Scheduling

    1. Scheduling Policy

    2. The Scheduling Algorithm

    3. System Calls Related to Scheduling

  12. Chapter 12 The Virtual Filesystem

    1. The Role of the Virtual Filesystem (VFS)

    2. VFS Data Structures

    3. Filesystem Types

    4. Filesystem Mounting

    5. Pathname Lookup

    6. Implementations of VFS System Calls

    7. File Locking

  13. Chapter 13 Managing I/O Devices

    1. I/O Architecture

    2. Device Files

    3. Device Drivers

    4. Block Device Drivers

    5. Character Device Drivers

  14. Chapter 14 Disk Caches

    1. The Page Cache

    2. The Buffer Cache

  15. Chapter 15 Accessing Files

    1. Reading and Writing a File

    2. Memory Mapping

    3. Direct I/O Transfers

  16. Chapter 16 Swapping: Methods for Freeing Memory

    1. What Is Swapping?

    2. Swap Area

    3. The Swap Cache

    4. Transferring Swap Pages

    5. Swapping Out Pages

    6. Swapping in Pages

    7. Reclaiming Page Frame

  17. Chapter 17 The Ext2 and Ext3 Filesystems

    1. General Characteristics of Ext2

    2. Ext2 Disk Data Structures

    3. Ext2 Memory Data Structures

    4. Creating the Ext2 Filesystem

    5. Ext2 Methods

    6. Managing Ext2 Disk Space

    7. The Ext3 Filesystem

  18. Chapter 18 Networking

    1. Main Networking Data Structures

    2. System Calls Related to Networking

    3. Sending Packets to the Network Card

    4. Receiving Packets from the Network Card

  19. Chapter 19 Process Communication

    1. Pipes

    2. FIFOs

    3. System V IPC

  20. Chapter 20 Program Execution

    1. Executable Files

    2. Executable Formats

    3. Execution Domains

    4. The exec Functions

  21. Chapter 21 Bibliography

    1. Books on Unix Kernels

    2. Books on the Linux Kernel

    3. Books on PC Architecture and Technical Manuals on Intel Microprocessors

    4. Other Online Documentation Sources

  1. Colophon

View Full Table of Contents
Product Details
Title:
Understanding the Linux Kernel, Second Edition
By:
Daniel P. Bovet, Marco Cesati
Publisher:
O'Reilly Media
Formats:
  • Print
  • Safari Books Online
Print Release:
December 2002
Pages:
784
Print ISBN:
978-0-596-00213-8
| ISBN 10:
0-596-00213-0
Customer Reviews
About the Author
  1. Marco Cesati

    received a degree in mathematics in 1992 and a Ph.D. in computer science (University of Rome, "La Sapienza") in 1995. He is now a research assistant in the computer science department of the School of Engineering (University of Rome, "Tor Vergata"). In the past, he served as system administrator and Unix programmer for the university (as a Ph.D. student) and for several institutions (as a consultant).

    View Marco Cesati's full profile page.

Colophon

Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects. Mary Brady was the production editor and copyeditor for Understanding the Linux Kernel, Second Edition. Ann Schirmer was the proofreader. Sarah Sherman and Claire Cloutier provided quality control. Judy Hoer and Genevieve d'Entremont provided production assistance. John Bickelhaupt wrote the index.

Edie Freedman designed the cover of this book, based on a series design by herself and Hanna Dyer. The cover image of a man with a bubble is a 19th-century engraving from the Dover Pictorial Archive. Emma Colby produced the cover layout with QuarkXPress 4.1 using Adobe's ITC Garamond font. David Futato designed the interior layout. The chapter opening images are from the Dover Pictorial Archive, Marvels of the New West: A Vivid Portrayal of the Stupendous Marvels in the Vast Wonderland West of the Missouri River, by William Thayer (The Henry Bill Publishing Co., 1888), and The Pioneer History of America: A Popular Account of the Heroes and Adventures, by Augustus Lynch Mason, A.M. (The Jones Brothers Publishing Company, 1884). This book was converted to FrameMaker 5.5.6 with a format conversion tool created by Erik Ray, Jason McIntosh, Neil Walls, and Mike Sierra that uses Perl and XML technologies. The text font is Linotype Birka; the heading font is Adobe Myriad Condensed; and the code font is LucasFont's TheSans Mono Condensed. The illustrations that appear in the book were produced by Robert Romano and Jessamyn Read using Macromedia FreeHand 9 and Adobe Photoshop 6.

  • Book cover of Understanding the Linux Kernel