Résumé
Why is Linux so efficient? Is it the right operating system for a particular application? What can be learned from looking at the kernel source code? These are the kinds of questions that Understanding the Linux Kernel takes in stride in this guided tour of the code that forms the core of all Linux operating systems.
Linux is presented too often as a casual hacker experiment. It has increasingly become not only a mission-critical part of many organizations, but a sophisticated display of programming skill. It incorporates many advanced operating system concepts and has proven itself extremely robust and efficient for a wide range of uses.
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.
Major topics include:
- Memory management, including file buffering, process swapping, and Direct Memory Access (DMA)
- The Virtual File System and the Second Extended File System
- Process creation and scheduling Signals, interrupts, and the essential interfaces to device drivers
- Timing
- Synchronization in the kernel
- Inter-Process Communication (IPC)
- Program execution
Preface
Chapter One. 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 Two. Memory Addressing
Memory Addresses
Segmentation in Hardware
Segmentation in Linux
Paging in Hardware
Paging in Linux
Anticipating Linux 2.4
Chapter Three. Processes
Process Descriptor
Process Switching
Creating Processes
Destroying Processes
Anticipating Linux 2.4
Chapter Four. 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
Returning from Interrupts and Exceptions
Anticipating Linux 2.4
Chapter Five. Timing Measurements
Hardware Clocks
The Timer Interrupt Handler
PIT's Interrupt Service Routine
The TIMER_BH Bottom Half Functions
System Calls Related to Timing Measurements
Anticipating Linux 2.4
Chapter Six. Memory Management
Page Frame Management
Memory Area Management
Noncontiguous Memory Area Management
Anticipating Linux 2.4
Chapter Seven. 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
Anticipating Linux 2.4
Chapter Eight. System Calls
POSIX APIs and System Calls
System Call Handler and Service Routines
Wrapper Routines
Anticipating Linux 2.4
Chapter Nine. Signals
The Role of Signals
Sending a Signal
Receiving a Signal
Real-Time Signals
System Calls Related to Signal Handling
Anticipating Linux 2.4
Chapter Ten. Process Scheduling
Scheduling Policy
The Scheduling Algorithm
System Calls Related to Scheduling
Anticipating Linux 2.4
Chapter Eleven. Kernel Synchronization
Kernel Control Paths
Synchronization Techniques
The SMP Architecture
The Linux/SMP Kernel
Anticipating Linux 2.4
Chapter Twelve. The Virtual Filesystem
The Role of the VFS
VFS Data Structures
Filesystem Mounting
Pathname Lookup
Implementations of VFS System Calls
File Locking
Anticipating Linux 2.4
Chapter Thirteen. Managing I/O Devices
I/O Architecture
Associating Files with I/O Devices
Device Drivers
Character Device Handling
Block Device Handling
Page I/O Operations
Anticipating Linux 2.4
Chapter Fourteen. Disk Caches
The Buffer Cache
The Page Cache
Anticipating Linux 2.4
Chapter Fifteen. Accessing Regular Files
Reading and Writing a Regular File
Memory Mapping
Anticipating Linux 2.4
Chapter Sixteen. Swapping: Methods for Freeing
Memory
What Is Swapping?
Swap Area
The Swap Cache
Transferring Swap Pages
Page Swap-Out
Page Swap-In
Freeing Page Frames
Anticipating Linux 2.4
Chapter Seventeen. The Ext2 Filesystem
General Characteristics
Disk Data Structures
Memory Data Structures
Creating the Filesystem
Ext2 Methods
Managing Disk Space
Reading and Writing an Ext2 Regular File
Anticipating Linux 2.4
Chapter Eighteen. Process Communication
Pipes
FIFOs
System V IPC
Anticipating Linux 2.4
Chapter Nineteen. Program Execution
Executable Files
Executable Formats
Execution Domains
The exec-like Functions
Anticipating Linux 2.4
Appendix A. System Startup
Appendix B. Modules
Appendix C. Source Code Structure
Bibliography
Source Code Index
Index
L'auteur - Marco Cesati
Marco Cesati has a degree in mathematics and a Ph.D. in
computer science from the University of Rome. He is
currently a research assistant in the
computer science department of the School of Engineering at
the University of Rome. In the past he was system
administrator and Unix programmer
for the university and for several institutions.
L'auteur - Daniel P. Bovet
Daniel P. Bovet has a Ph.D. in computer science from UCLA, and is currently a full professor at the University of Rome. He has been interested in
open source for over 25 years and has spent the last few years trying to unravel some of the mysteries of Linux. It seemed natural after all that work
to write a book about what he found out.
Caractéristiques techniques
PAPIER | |
Éditeur(s) | O'Reilly |
Auteur(s) | Marco Cesati, Daniel P. Bovet |
Nb. de pages | 702 |
Couverture | Broché |
Intérieur | Noir et Blanc |
EAN13 | 9780596000028 |
Avantages Eyrolles.com
Consultez aussi
- Les meilleures ventes en Graphisme & Photo
- Les meilleures ventes en Informatique
- Les meilleures ventes en Construction
- Les meilleures ventes en Entreprise & Droit
- Les meilleures ventes en Sciences
- Les meilleures ventes en Littérature
- Les meilleures ventes en Arts & Loisirs
- Les meilleures ventes en Vie pratique
- Les meilleures ventes en Voyage et Tourisme
- Les meilleures ventes en BD et Jeunesse