Buying Options
Understanding the Linux Kernel
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

Understanding the Linux Kernel helps readers understand how Linux performs best and how it meets the challenge of different environments. The authors introduce each topic by explaining its importance, and show how kernel operations relate to the utilities that are familiar to Unix programmers and users.

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

    6. Anticipating Linux 2.4

  3. Chapter 3 Processes

    1. Process Descriptor

    2. Process Switching

    3. Creating Processes

    4. Destroying Processes

    5. Anticipating Linux 2.4

  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. Returning from Interrupts and Exceptions

    8. Anticipating Linux 2.4

  5. Chapter 5 Timing Measurements

    1. Hardware Clocks

    2. The Timer Interrupt Handler

    3. PIT’s Interrupt Service Routine

    4. The TIMER_BH Bottom Half Functions

    5. System Calls Related to Timing Measurements

    6. Anticipating Linux 2.4

  6. Chapter 6 Memory Management

    1. Page Frame Management

    2. Memory Area Management

    3. Noncontiguous Memory Area Management

    4. Anticipating Linux 2.4

  7. Chapter 7 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

    7. Anticipating Linux 2.4

  8. Chapter 8 System Calls

    1. POSIX APIs and System Calls

    2. System Call Handler and Service Routines

    3. Wrapper Routines

    4. Anticipating Linux 2.4

  9. Chapter 9 Signals

    1. The Role of Signals

    2. Sending a Signal

    3. Receiving a Signal

    4. Real-Time Signals

    5. System Calls Related to Signal Handling

    6. Anticipating Linux 2.4

  10. Chapter 10 Process Scheduling

    1. Scheduling Policy

    2. The Scheduling Algorithm

    3. System Calls Related to Scheduling

    4. Anticipating Linux 2.4

  11. Chapter 11 Kernel Synchronization

    1. Kernel Control Paths

    2. Synchronization Techniques

    3. The SMP Architecture

    4. The Linux/SMP Kernel

    5. Anticipating Linux 2.4

  12. Chapter 12 The Virtual Filesystem

    1. The Role of the VFS

    2. VFS Data Structures

    3. Filesystem Mounting

    4. Pathname Lookup

    5. Implementations of VFS System Calls

    6. File Locking

    7. Anticipating Linux 2.4

  13. Chapter 13 Managing I/O Devices

    1. I/O Architecture

    2. Associating Files with I/O Devices

    3. Device Drivers

    4. Character Device Handling

    5. Block Device Handling

    6. Page I/O Operations

    7. Anticipating Linux 2.4

  14. Chapter 14 Disk Caches

    1. The Buffer Cache

    2. The Page Cache

    3. Anticipating Linux 2.4

  15. Chapter 15 Accessing Regular Files

    1. Reading and Writing a Regular File

    2. Memory Mapping

    3. Anticipating Linux 2.4

  16. Chapter 16 Swapping: Methods for Freeing Memory

    1. What Is Swapping?

    2. Swap Area

    3. The Swap Cache

    4. Transferring Swap Pages

    5. Page Swap-Out

    6. Page Swap-In

    7. Freeing Page Frames

    8. Anticipating Linux 2.4

  17. Chapter 17 The Ext2 Filesystem

    1. General Characteristics

    2. Disk Data Structures

    3. Memory Data Structures

    4. Creating the Filesystem

    5. Ext2 Methods

    6. Managing Disk Space

    7. Reading and Writing an Ext2 Regular File

    8. Anticipating Linux 2.4

  18. Chapter 18 Process Communication

    1. Pipes

    2. FIFOs

    3. System V IPC

    4. Anticipating Linux 2.4

  19. Chapter 19 Program Execution

    1. Executable Files

    2. Executable Formats

    3. Execution Domains

    4. The exec-like Functions

    5. Anticipating Linux 2.4

  1. Appendix System Startup

    1. Prehistoric Age: The BIOS

    2. Ancient Age: The Boot Loader

    3. Middle Ages: The setup( ) Function

    4. Renaissance: The startup_32( ) Functions

    5. Modern Age: The start_kernel( ) Function

  2. Appendix Modules

    1. To Be (a Module) or Not to Be?

    2. Module Implementation

    3. Linking and Unlinking Modules

    4. Linking Modules on Demand

  3. Appendix Source Code Structure

  4. Bibliography

  5. Colophon

View Full Table of Contents
Product Details
Title:
Understanding the Linux Kernel
By:
Daniel P. Bovet, Marco Cesati
Publisher:
O'Reilly Media
Formats:
  • Print
  • Safari Books Online
Print Release:
October 2000
Pages:
704
Print ISBN:
978-0-596-00002-8
| ISBN 10:
0-596-00002-2
Customer Reviews
About the Authors
  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

Catherine Morris was the production editor, and Norma Emory was the copyeditor for Understanding the Linux Kernel. Clairemarie Fisher O'Leary was the proofreader. Jeff Holcomb, Claire Cloutier, and Catherine Morris provided quality control. Judy Hoer and Joe Wizda wrote the index. Linley Dolby, Rachel Wheeler, and Deborah Smith provided production support. The illustrations that appear in the book were produced by Robert Romano using Macromedia FreeHand 8 and Adobe Photoshop 5.

The cover image of a man with a bubble is adapted from a 19th-century engraving from the Dover Pictorial Archive. Edie Freeman designed the cover. Emma Colby produced the cover with QuarkXPress 4.1, using the ITC Garamond Condensed font. David Futato designed the interior layout based on a series design by Alicia Cech. Chapter opener images are taken from the Dover Pictorial Archive, the book Marvels of the New West: A Vivid Portrayal of the Stupendous Marvels in the Vast Wonderland West of the Missouri River (by William M. Thayer, The Henry Bill Publishing Company, Norwich, CT, 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, Cincinnati, OH, 1884). Mike Sierra implemented the design in FrameMaker 5.5.6.

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.

  • Book cover of Understanding the Linux Kernel