| D.Bovet - Understanding the Linux Kernel 3rd Edition - 2005.chm | 2.77 MB |

Книги и журналы » Компьютерная литература » Mac OS; Linux, FreeBSD и прочие *NIX
Understanding the Linux Kernel, 3rd Edition
Год: 2005
Автор: Daniel P. Bovet, Marco Cesati
Жанр: Linux
Издательство: O'Reilly
ISBN: 0-596-00565-2
Язык: Английский
Формат: CHM
Качество: Изначально компьютерное (eBook)
Количество страниц: 942
Описание: This new edition covers Version 2.6 of the Linux kernel, which has seen significant changes to nearly every kernel subsystem, particularly in the areas of memory management and block devices. Understanding the Linux Kernel provides a guided tour of the code that forms the core of all Linux operating systems. Beyond the functioning of the code, the book explains the theoretical underpinnings for why Linux, and many other operating systems, do things the way they do.
[spoiler="Примеры страниц"]![]()
![]()
![]()
[/spoiler]
[spoiler="Оглавление"]
[spoiler="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
[/spoiler]
[spoiler="Chapter 2 Memory Addressing"]
Memory Addresses
Segmentation in Hardware
Segmentation in Linux
Paging in Hardware
Paging in Linux
[/spoiler]
[spoiler="Chapter 3 Processes"]
Processes, Lightweight Processes, and Threads
Process Descriptor
Process Switch
Creating Processes
Destroying Processes
[/spoiler]
[spoiler="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 and Tasklets
Work Queues
Returning from Interrupts and Exceptions
[/spoiler]
[spoiler="Chapter 5 Kernel Synchronization"]
How the Kernel Services Requests
Synchronization Primitives
Synchronizing Accesses to Kernel Data Structures
Examples of Race Condition Prevention
[/spoiler]
[spoiler="Chapter 6 Timing Measurements"]
Clock and Timer Circuits
The Linux Timekeeping Architecture
Updating the Time and Date
Updating System Statistics
Software Timers and Delay Functions
System Calls Related to Timing Measurements
[/spoiler]
[spoiler="Chapter 7 Process Scheduling"]
Scheduling Policy
The Scheduling Algorithm
Data Structures Used by the Scheduler
Functions Used by the Scheduler
Runqueue Balancing in Multiprocessor Systems
System Calls Related to Scheduling
[/spoiler]
[spoiler="Chapter 8 Memory Management"]
Page Frame Management
Memory Area Management
Noncontiguous Memory Area Management
[/spoiler]
[spoiler="Chapter 9 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
[/spoiler]
[spoiler="Chapter 10 System Calls"]
POSIX APIs and System Calls
System Call Handler and Service Routines
Entering and Exiting a System Call
Parameter Passing
Kernel Wrapper Routines
[/spoiler]
[spoiler="Chapter 11 Signals"]
The Role of Signals
Generating a Signal
Delivering a Signal
System Calls Related to Signal Handling
[/spoiler]
[spoiler="Chapter 12 The Virtual Filesystem"]
The Role of the Virtual Filesystem (VFS)
VFS Data Structures
Filesystem Types
Filesystem Handling
Pathname Lookup
Implementations of VFS System Calls
File Locking
[/spoiler]
[spoiler="Chapter 13 I/O Architecture and Device Drivers"]
I/O Architecture
The Device Driver Model
Device Files
Device Drivers
Character Device Drivers
[/spoiler]
[spoiler="Chapter 14 Block Device Drivers"]
Block Devices Handling
The Generic Block Layer
The I/O Scheduler
Block Device Drivers
Opening a Block Device File
[/spoiler]
[spoiler="Chapter 15 The Page Cache"]
The Page Cache
Storing Blocks in the Page Cache
Writing Dirty Pages to Disk
The sync( ), fsync( ), and fdatasync( ) System Calls
[/spoiler]
[spoiler="Chapter 16 Accessing Files"]
Reading and Writing a File
Memory Mapping
Direct I/O Transfers
Asynchronous I/O
[/spoiler]
[spoiler="Chapter 17 Page Frame Reclaiming"]
The Page Frame Reclaiming Algorithm
Reverse Mapping
Implementing the PFRA
Swapping
[/spoiler]
[spoiler="Chapter 18 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
[/spoiler]
[spoiler="Chapter 19 Process Communication"]
Pipes
FIFOs
System V IPC
POSIX Message Queues
Chapter 20 Program ExZecution
Executable Files
Executable Formats
Execution Domains
The exec Functions
[/spoiler]
[spoiler="Appendix A System Startup"]
Prehistoric Age: the BIOS
Ancient Age: the Boot Loader
Middle Ages: the setup( ) Function
Renaissance: the startup_32( ) Functions
Modern Age: the start_kernel( ) Function
[/spoiler]
[spoiler="Appendix B Modules"]
To Be (a Module) or Not to Be?
Module Implementation
Linking and Unlinking Modules
Linking Modules on Demand
[/spoiler]
[spoiler="Appendix Bibliography"]
Books on Unix Kernels
Books on the Linux Kernel
Books on PC Architecture and Technical Manuals on Intel Microprocessors
Other Online Documentation Sources
Research Papers Related to Linux Development
[/spoiler]
Colophon
[/spoiler]
All Comments