My Account Log in

1 option

Understanding the Linux kernel / Daniel P. Bovet and Marco Cesati.

LIBRA QA76.76.O63 B69 2003
Loading location information...

Available from offsite location This item is stored in our repository but can be checked out.

Log in to request item
Format:
Book
Author/Creator:
Bovet, Daniel P. (Daniel Pierre)
Contributor:
Cesati, Marco.
Sabin W. Colton, Jr., Memorial Fund.
Language:
English
Subjects (All):
Linux.
Operating systems (Computers).
Physical Description:
xv, 765 pages : illustrations ; 24 cm
Edition:
Second edition.
Place of Publication:
Sebastopol, CA : O'Reilly, [2003]
Summary:
In order to thoroughly understand what makes GNU/Linux tick, and why it works so well on a wide variety of systems, you need to delve deep into the heart of the operating system -- that is, into the Linux kernel itself. The kernel handles all the requests or completed I/O operations and determines which programs will share its processing time, and in what order. Responsible for the sophisticated management of the whole system, the Linux kernel is the force behind the legendary Linux efficiency. The new edition of Understanding the Linux Kernel takes you on a guided tour of the most significant data structures, algorithms, and programming tricks used in the kernel. Important Intel-specific features are discussed. But the book covers more than just the functioning of the code; it explains the theoretical underpinnings for why Linux does things the way it does. Understanding the Linux Kernel will acquaint you with all the inner workings of Linux, but it's not just an academic exercise. You'll learn what conditions bring out Linux's best performance, and you'll see how it meets the challenge of providing good system response during process scheduling, file access, and memory management in a wide variety of environments. Knowledge is power, and this book will help you make the most of your Linux system.
Contents:
Linux Versus Other Unix-Like Kernels 2
Hardware Dependency 6
Linux Versions 7
Basic Operating System Concepts 8
An Overview of the Unix Filesystem 12
An Overview of Unix Kernels 18
2. Memory Addressing 34
Memory Addresses 34
Segmentation in Hardware 35
Segmentation in Linux 40
Paging in Hardware 44
Paging in Linux 54
3. Processes 72
Processes, Lightweight Processes, and Threads 72
Process Descriptor 74
Process Switch 89
Creating Processes 99
Destroying Processes 106
4. Interrupts and Exceptions 109
The Role of Interrupt Signals 110
Interrupts and Exceptions 111
Nested Execution of Exception and Interrupt Handlers 121
Initializing the Interrupt Descriptor Table 122
Exception Handling 125
Interrupt Handling 128
Softirqs, Tasklets, and Bottom Halves 145
Returning from Interrupts and Exceptions 156
5. Kernel Synchronization 161
Kernel Control Paths 161
When Synchronization Is Not Necessary 162
Synchronization Primitives 163
Synchronizing Accesses to Kernel Data Structures 184
Examples of Race Condition Prevention 189
6. Timing Measurements 193
Hardware Clocks 194
The Linux Timekeeping Architecture 197
CPU's Time Sharing 202
Updating the Time and Date 203
Updating System Statistics 204
Software Timers 206
System Calls Related to Timing Measurements 213
7. Memory Management 217
Page Frame Management 217
Memory Area Management 239
Noncontiguous Memory Area Management 256
8. Process Address Space 263
The Process's Address Space 264
The Memory Descriptor 265
Memory Regions 268
Page Fault Exception Handler 285
Creating and Deleting a Process Address Space 298
Managing the Heap 300
9. System Calls 303
POSIX APIs and System Calls 303
System Call Handler and Service Routines 304
Kernel Wrapper Routines 316
10. Signals 318
The Role of Signals 318
Generating a Signal 327
Delivering a Signal 332
System Calls Related to Signal Handling 343
11. Process Scheduling 348
Scheduling Policy 348
The Scheduling Algorithm 352
System Calls Related to Scheduling 367
12. The Virtual Filesystem 372
The Role of the Virtual Filesystem (VFS) 372
VFS Data Structures 378
Filesystem Types 394
Filesystem Mounting 397
Pathname Lookup 407
Implementations of VFS System Calls 416
File Locking 420
13. Managing I/O Devices 427
I/O Architecture 427
Device Files 437
Device Drivers 441
Block Device Drivers 449
Character Device Drivers 471
14. Disk Caches 474
The Page Cache 476
The Buffer Cache 481
15. Accessing Files 497
Reading and Writing a File 497
Memory Mapping 513
Direct I/O Transfers 523
16. Swapping: Methods for Freeing Memory 528
Swap Area 531
The Swap Cache 545
Transferring Swap Pages 548
Swapping Out Pages 551
Swapping in Pages 556
Reclaiming Page Frame 559
17. The Ext2 and Ext3 Filesystems 574
General Characteristics of Ext2 574
Ext2 Disk Data Structures 577
Ext2 Memory Data Structures 584
Creating the Ext2 Filesystem 588
Ext2 Methods 590
Managing Ext2 Disk Space 592
The Ext3 Filesystem 600
18. Networking 608
Main Networking Data Structures 609
System Calls Related to Networking 618
Sending Packets to the Network Card 627
Receiving Packets from the Network Card 629
19. Process Communication 632
Pipes 633
FIFOs 642
System V IPC 644
20. Program Execution 661
Executable Files 662
Executable Formats 674
Execution Domains 676
The exec Functions 678
A. System Startup 685
B. Modules 692
C. Source Code Structure 702.
Notes:
"From I/O ports to process management"--Cover.
"Covers Linux Kernel version 2.4"--Cover.
Includes bibliographical references (pages 707-709) and indexes.
Local Notes:
Acquired for the Penn Libraries with assistance from the Sabin W. Colton, Jr., Memorial Fund.
ISBN:
0596002130
OCLC:
51324795

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account