مشخصات کتاب
-
robert love
-
2010
-
انگلیسی
-
3286
-
683
-
0
Linux Kernel Development, 3rd Edition
1 Introduction to the Linux Kernel 1
2 Getting Started with the Kernel 11
3 Process Management 23
4 Process Scheduling 41
5 System Calls 69
6 Kernel Data Structures 85
7 Interrupts and Interrupt Handlers 113
8 Bottom Halves and Deferring Work 133
9 An Introduction to Kernel Synchronization 161
10 Kernel Synchronization Methods 175
11 Timers and Time Management 207
12 Memory Management 231
13 The Virtual Filesystem 261
14 The Block I/O Layer 289
15 The Process Address Space 305
16 The Page Cache and Page Writeback 323
17 Devices and Modules 337
18 Debugging 363
19 Portability 379
20 Patches, Hacking, and the Community 395
Bibliography 407
Index 411
1 Introduction to the Linux Kernel 1
History of Unix 1
Along Came Linus: Introduction to Linux 3
Overview of Operating Systems and Kernels 4
Linux Versus Classic Unix Kernels 6
Linux Kernel Versions 8
The Linux Kernel Development Community 10
Before We Begin 10
2 Getting Started with the Kernel 11
Obtaining the Kernel Source 11
Using Git 11
Installing the Kernel Source 12
Using Patches 12
The Kernel Source Tree 12
Building the Kernel 13
Configuring the Kernel 14
Minimizing Build Noise 15
Spawning Multiple Build Jobs 16
Installing the New Kernel 16
A Beast of a Different Nature 16
No libc or Standard Headers 17
GNU C 18
Inline Functions 18
Inline Assembly 19
Branch Annotation 19
No Memory Protection 20
No (Easy) Use of Floating Point 20
Small, Fixed-Size Stack 20
Synchronization and Concurrency 21
Importance of Portability 21
Conclusion 21
3 Process Management 23
The Process 23
Process Descriptor and the Task Structure 24
Allocating the Process Descriptor 25
Storing the Process Descriptor 26
Process State 27
Manipulating the Current Process State 29
Process Context 29
The Process Family Tree 29
Process Creation 31
Copy-on-Write 31
Forking 32
vfork() 33
The Linux Implementation of Threads 33
Creating Threads 34
Kernel Threads 35
Process Termination 36
Removing the Process Descriptor 37
The Dilemma of the Parentless Task 38
Conclusion 40
4 Process Scheduling 41
Multitasking 41
Linux’s Process Scheduler 42
Policy 43
I/O-Bound Versus Processor-Bound Processes 43
Process Priority 44
Timeslice 45
The Scheduling Policy in Action 45
The Linux Scheduling Algorithm 46
Scheduler Classes 46
Process Scheduling in Unix Systems 47
Fair Scheduling 48
The Linux Scheduling Implementation 50
Time Accounting 50
The Scheduler Entity Structure 50
The Virtual Runtime 51