Preface |
|
xxi | |
About the Authors |
|
xxix | |
|
|
1 | (86) |
|
Chapter 1 History and Goals |
|
|
3 | (18) |
|
1.1 History of the UNIX System |
|
|
3 | (4) |
|
|
3 | (1) |
|
|
4 | (1) |
|
AT&T UNIX System III and System V |
|
|
5 | (1) |
|
Berkeley Software Distributions |
|
|
6 | (1) |
|
|
7 | (1) |
|
1.2 BSD and Other Systems |
|
|
7 | (2) |
|
The Influence of the User Community |
|
|
8 | (1) |
|
1.3 The Transition of BSD to Open Source |
|
|
9 | (5) |
|
|
10 | (1) |
|
|
11 | (2) |
|
|
13 | (1) |
|
|
13 | (1) |
|
1.4 The FreeBSD Development Model |
|
|
14 | (7) |
|
|
17 | (4) |
|
Chapter 2 Design Overview of FreeBSD |
|
|
21 | (36) |
|
2.1 FreeBSD Facilities and the Kernel |
|
|
21 | (2) |
|
|
22 | (1) |
|
|
23 | (3) |
|
|
26 | (1) |
|
|
26 | (3) |
|
|
28 | (1) |
|
Process Groups and Sessions |
|
|
29 | (1) |
|
|
29 | (7) |
|
|
31 | (1) |
|
|
31 | (1) |
|
Discretionary Access Control |
|
|
32 | (1) |
|
|
32 | (1) |
|
Jail Lightweight Virtualization |
|
|
32 | (2) |
|
|
34 | (1) |
|
|
35 | (1) |
|
Cryptography and Random-Number Generators |
|
|
35 | (1) |
|
|
36 | (3) |
|
BSD Memory-Management Design Decisions |
|
|
36 | (2) |
|
Memory Management Inside the Kernel |
|
|
38 | (1) |
|
|
39 | (5) |
|
|
39 | (2) |
|
|
41 | (1) |
|
|
42 | (1) |
|
|
42 | (1) |
|
|
43 | (1) |
|
Multiple Filesystem Support |
|
|
43 | (1) |
|
|
44 | (1) |
|
|
45 | (4) |
|
|
48 | (1) |
|
2.10 The Zettabyte Filesystem |
|
|
49 | (1) |
|
2.11 The Network Filesystem |
|
|
50 | (1) |
|
2.12 Interprocess Communication |
|
|
50 | (1) |
|
2.13 Network-Layer Protocols |
|
|
51 | (1) |
|
2.14 Transport-Layer Protocols |
|
|
52 | (1) |
|
2.15 System Startup and Shutdown |
|
|
52 | (5) |
|
|
54 | (1) |
|
|
54 | (3) |
|
Chapter 3 Kernel Services |
|
|
57 | (30) |
|
|
57 | (5) |
|
|
57 | (1) |
|
|
58 | (1) |
|
|
59 | (1) |
|
|
60 | (1) |
|
|
61 | (1) |
|
|
62 | (2) |
|
|
62 | (1) |
|
Returning from a System Call |
|
|
63 | (1) |
|
|
64 | (1) |
|
|
64 | (1) |
|
|
65 | (1) |
|
|
65 | (4) |
|
Statistics and Process Scheduling |
|
|
66 | (1) |
|
|
67 | (2) |
|
3.5 Memory-Management Services |
|
|
69 | (4) |
|
|
73 | (2) |
|
|
73 | (1) |
|
|
73 | (1) |
|
|
74 | (1) |
|
|
74 | (1) |
|
|
75 | (2) |
|
|
75 | (1) |
|
|
75 | (1) |
|
|
76 | (1) |
|
|
77 | (1) |
|
3.8 Kernel Tracing Facilities |
|
|
77 | (10) |
|
|
77 | (1) |
|
|
78 | (4) |
|
|
82 | (2) |
|
|
84 | (1) |
|
|
85 | (2) |
|
|
87 | (226) |
|
Chapter 4 Process Management |
|
|
89 | (58) |
|
4.1 Introduction to Process Management |
|
|
89 | (3) |
|
|
90 | (1) |
|
|
91 | (1) |
|
|
92 | (7) |
|
|
94 | (4) |
|
|
98 | (1) |
|
|
99 | (15) |
|
|
100 | (1) |
|
Low-Level Context Switching |
|
|
100 | (1) |
|
Voluntary Context Switching |
|
|
101 | (5) |
|
|
106 | (1) |
|
|
107 | (2) |
|
|
109 | (1) |
|
|
110 | (2) |
|
|
112 | (2) |
|
|
114 | (12) |
|
|
114 | (1) |
|
Thread Run Queues and Context Switching |
|
|
115 | (2) |
|
Timeshare Thread Scheduling |
|
|
117 | (5) |
|
Multiprocessor Scheduling |
|
|
122 | (3) |
|
|
125 | (1) |
|
Traditional Timeshare Thread Scheduling |
|
|
125 | (1) |
|
|
126 | (2) |
|
|
128 | (1) |
|
|
129 | (7) |
|
|
132 | (3) |
|
|
135 | (1) |
|
4.8 Process Groups and Sessions |
|
|
136 | (6) |
|
|
137 | (1) |
|
|
138 | (1) |
|
|
139 | (3) |
|
|
142 | (5) |
|
|
144 | (2) |
|
|
146 | (1) |
|
|
147 | (74) |
|
5.1 Operating-System Security |
|
|
148 | (1) |
|
|
149 | (2) |
|
|
149 | (1) |
|
Discretionary and Mandatory Access Control |
|
|
150 | (1) |
|
Trusted Computing Base (TCB) |
|
|
151 | (1) |
|
Other Kernel-Security Features |
|
|
151 | (1) |
|
|
151 | (3) |
|
|
152 | (1) |
|
|
153 | (1) |
|
|
153 | (1) |
|
|
154 | (3) |
|
Setuid and Setgid Binaries |
|
|
155 | (2) |
|
|
157 | (2) |
|
|
157 | (1) |
|
|
157 | (2) |
|
5.6 Interprocess Access Control |
|
|
159 | (2) |
|
|
160 | (1) |
|
|
160 | (1) |
|
|
160 | (1) |
|
Waiting on Process Termination |
|
|
161 | (1) |
|
|
161 | (1) |
|
5.7 Discretionary Access Control |
|
|
161 | (13) |
|
The Virtual-Filesystem Interface and DAC |
|
|
162 | (1) |
|
|
163 | (1) |
|
|
164 | (1) |
|
Access Control Lists (ACLs) |
|
|
165 | (3) |
|
POSIX.1e Access Control Lists |
|
|
168 | (3) |
|
NFSv4 Access Control Lists |
|
|
171 | (3) |
|
5.8 Capsicum Capability Model |
|
|
174 | (6) |
|
Capsicum Application Structure |
|
|
175 | (1) |
|
|
176 | (1) |
|
|
177 | (2) |
|
|
179 | (1) |
|
|
180 | (4) |
|
5.10 Mandatory Access-Control Framework |
|
|
184 | (16) |
|
|
186 | (1) |
|
Guiding Design Principles |
|
|
187 | (1) |
|
Architecture of the MAC Framework |
|
|
188 | (1) |
|
|
189 | (1) |
|
|
190 | (1) |
|
Framework Entry-Point Design Considerations |
|
|
191 | (1) |
|
Policy Entry-Point Considerations |
|
|
192 | (1) |
|
Kernel Service Entry-Point Invocation |
|
|
193 | (1) |
|
|
194 | (1) |
|
|
195 | (1) |
|
Label Life Cycle and Memory Management |
|
|
196 | (3) |
|
|
199 | (1) |
|
Policy-Agnostic Label Management from Userspace |
|
|
199 | (1) |
|
5.11 Security Event Auditing |
|
|
200 | (6) |
|
|
201 | (1) |
|
BSM Audit Records and Audit Trails |
|
|
202 | (1) |
|
Kernel-Audit Implementation |
|
|
203 | (3) |
|
5.12 Cryptographic Services |
|
|
206 | (6) |
|
|
206 | (2) |
|
|
208 | (4) |
|
5.13 GELI Full-Disk Encryption |
|
|
212 | (9) |
|
Confidentiality and Integrity Protection |
|
|
212 | (1) |
|
|
213 | (1) |
|
|
214 | (1) |
|
Cryptographic Block Protection |
|
|
215 | (1) |
|
|
216 | (1) |
|
|
216 | (1) |
|
|
217 | (1) |
|
|
217 | (4) |
|
Chapter 6 Memory Management |
|
|
221 | (92) |
|
|
221 | (6) |
|
|
222 | (1) |
|
|
223 | (1) |
|
|
224 | (1) |
|
|
225 | (1) |
|
|
225 | (1) |
|
Advantages of Virtual Memory |
|
|
225 | (1) |
|
Hardware Requirements for Virtual Memory |
|
|
226 | (1) |
|
6.2 Overview of the FreeBSD Virtual-Memory System |
|
|
227 | (3) |
|
User Address-Space Management |
|
|
228 | (2) |
|
6.3 Kernel Memory Management |
|
|
230 | (14) |
|
|
231 | (2) |
|
Kernel Address-Space Allocation |
|
|
233 | (3) |
|
|
236 | (2) |
|
|
238 | (1) |
|
|
239 | (2) |
|
|
241 | (2) |
|
|
243 | (1) |
|
6.4 Per-Process Resources |
|
|
244 | (6) |
|
FreeBSD Process Virtual-Address Space |
|
|
245 | (1) |
|
|
245 | (2) |
|
|
247 | (2) |
|
|
249 | (1) |
|
|
249 | (1) |
|
|
250 | (8) |
|
|
251 | (2) |
|
|
253 | (1) |
|
|
254 | (3) |
|
Collapsing of Shadow Chains |
|
|
257 | (1) |
|
|
258 | (1) |
|
6.6 Creation of a New Process |
|
|
258 | (4) |
|
Reserving Kernel Resources |
|
|
259 | (1) |
|
Duplication of the User Address Space |
|
|
260 | (1) |
|
Creation of a New Process Without Copying |
|
|
261 | (1) |
|
|
262 | (1) |
|
6.8 Process Manipulation of Its Address Space |
|
|
263 | (3) |
|
|
263 | (1) |
|
|
264 | (2) |
|
|
266 | (1) |
|
6.9 Termination of a Process |
|
|
266 | (1) |
|
|
267 | (9) |
|
|
269 | (1) |
|
|
270 | (2) |
|
|
272 | (1) |
|
|
272 | (4) |
|
|
276 | (13) |
|
|
280 | (2) |
|
Hardware Memory Management |
|
|
282 | (2) |
|
|
284 | (5) |
|
|
289 | (9) |
|
|
291 | (1) |
|
|
292 | (3) |
|
|
295 | (1) |
|
|
296 | (2) |
|
|
298 | (15) |
|
The Role of the pmap Module |
|
|
299 | (2) |
|
Initialization and Startup |
|
|
301 | (3) |
|
Mapping Allocation and Deallocation |
|
|
304 | (2) |
|
Change of Access and Wiring Attributes for Mappings |
|
|
306 | (1) |
|
Maintenance of Physical Page-Usage Information |
|
|
307 | (1) |
|
Initialization of Physical Pages |
|
|
308 | (1) |
|
Management of Internal Data Structures |
|
|
308 | (1) |
|
|
308 | (2) |
|
|
310 | (3) |
|
|
313 | (278) |
|
Chapter 7 I/O System Overview |
|
|
315 | (46) |
|
7.1 Descriptor Management and Services |
|
|
316 | (17) |
|
|
318 | (1) |
|
Management of Descriptors |
|
|
319 | (2) |
|
|
321 | (1) |
|
|
322 | (2) |
|
Multiplexing I/O on Descriptors |
|
|
324 | (3) |
|
|
327 | (2) |
|
|
329 | (3) |
|
Movement of Data Inside the Kernel |
|
|
332 | (1) |
|
7.2 Local Interprocess Communication |
|
|
333 | (6) |
|
|
335 | (2) |
|
|
337 | (1) |
|
|
338 | (1) |
|
7.3 The Virtual-Filesystem Interface |
|
|
339 | (5) |
|
|
339 | (3) |
|
|
342 | (1) |
|
|
342 | (1) |
|
Exported Filesystem Services |
|
|
343 | (1) |
|
7.4 Filesystem-Independent Services |
|
|
344 | (8) |
|
|
346 | (1) |
|
|
347 | (3) |
|
Implementation of Buffer Management |
|
|
350 | (2) |
|
7.5 Stackable Filesystems |
|
|
352 | (9) |
|
|
354 | (1) |
|
|
355 | (2) |
|
|
357 | (1) |
|
|
358 | (1) |
|
|
359 | (2) |
|
|
361 | (70) |
|
|
361 | (6) |
|
|
362 | (2) |
|
The Structure of the FreeBSD Mass Storage I/O Subsystem |
|
|
364 | (2) |
|
|
366 | (1) |
|
8.2 I/O Mapping from User to Device |
|
|
367 | (3) |
|
|
368 | (1) |
|
|
369 | (1) |
|
|
370 | (1) |
|
|
370 | (4) |
|
Raw Devices and Physical I/O |
|
|
372 | (1) |
|
Character-Oriented Devices |
|
|
373 | (1) |
|
Entry Points for Character Device Drivers |
|
|
373 | (1) |
|
|
374 | (4) |
|
Entry Points for Disk Device Drivers |
|
|
374 | (1) |
|
Sorting of Disk I/O Requests |
|
|
375 | (1) |
|
|
376 | (2) |
|
|
378 | (4) |
|
Entry Points for Network Drivers |
|
|
378 | (1) |
|
Configuration and Control |
|
|
379 | (1) |
|
|
380 | (1) |
|
|
381 | (1) |
|
|
382 | (9) |
|
Terminal-Processing Modes |
|
|
383 | (2) |
|
|
385 | (2) |
|
Process Groups, Sessions, and Terminal Control |
|
|
387 | (1) |
|
|
388 | (1) |
|
Terminal Output (Upper Half) |
|
|
388 | (1) |
|
Terminal Output (Lower Half) |
|
|
389 | (1) |
|
|
390 | (1) |
|
Closing of Terminal Devices |
|
|
391 | (1) |
|
|
391 | (8) |
|
Terminology and Topology Rules |
|
|
392 | (1) |
|
|
393 | (3) |
|
|
396 | (1) |
|
|
397 | (2) |
|
|
399 | (3) |
|
The Path of a SCSI I/O Request Through the CAM Subsystem |
|
|
400 | (2) |
|
|
402 | (1) |
|
|
402 | (12) |
|
|
405 | (2) |
|
Autoconfiguration Data Structures |
|
|
407 | (5) |
|
|
412 | (2) |
|
8.10 Device Virtualization |
|
|
414 | (17) |
|
Interaction with the Hypervisor |
|
|
414 | (1) |
|
|
415 | (4) |
|
|
419 | (8) |
|
|
427 | (1) |
|
|
428 | (1) |
|
|
429 | (2) |
|
Chapter 9 The Fast Filesystem |
|
|
431 | (92) |
|
9.1 Hierarchical Filesystem Management |
|
|
431 | (2) |
|
9.2 Structure of an Inode |
|
|
433 | (10) |
|
Changes to the Inode Format |
|
|
435 | (1) |
|
|
436 | (2) |
|
New Filesystem Capabilities |
|
|
438 | (1) |
|
|
439 | (2) |
|
|
441 | (1) |
|
|
442 | (1) |
|
|
443 | (8) |
|
|
444 | (2) |
|
Finding of Names in Directories |
|
|
446 | (1) |
|
|
447 | (2) |
|
|
449 | (2) |
|
|
451 | (3) |
|
|
454 | (5) |
|
|
459 | (21) |
|
Update Dependencies in the Filesystem |
|
|
460 | (4) |
|
|
464 | (2) |
|
Bitmap Dependency Tracking |
|
|
466 | (1) |
|
Inode Dependency Tracking |
|
|
467 | (2) |
|
Direct-Block Dependency Tracking |
|
|
469 | (1) |
|
Indirect-Block Dependency Tracking |
|
|
470 | (1) |
|
Dependency Tracking for New Indirect Blocks |
|
|
471 | (1) |
|
New Directory-Entry Dependency Tracking |
|
|
472 | (2) |
|
New Directory Dependency Tracking |
|
|
474 | (1) |
|
Directory-Entry Removal-Dependency Tracking |
|
|
475 | (1) |
|
|
476 | (1) |
|
File and Directory Inode Reclamation |
|
|
476 | (1) |
|
Directory-Entry Renaming Dependency Tracking |
|
|
476 | (1) |
|
Fsync Requirements for Soft Updates |
|
|
477 | (1) |
|
File-Removal Requirements for Soft Updates |
|
|
478 | (2) |
|
Soft-Updates Requirements for fsck |
|
|
480 | (1) |
|
|
480 | (7) |
|
Creating a Filesystem Snapshot |
|
|
481 | (2) |
|
Maintaining a Filesystem Snapshot |
|
|
483 | (1) |
|
Large Filesystem Snapshots |
|
|
484 | (2) |
|
|
486 | (1) |
|
|
487 | (1) |
|
|
487 | (1) |
|
9.8 Journaled Soft Updates |
|
|
487 | (9) |
|
Background and Introduction |
|
|
487 | (1) |
|
Compatibility with Other Implementations |
|
|
488 | (1) |
|
|
488 | (1) |
|
Modifications That Require Journaling |
|
|
489 | (1) |
|
Additional Requirements of Journaling |
|
|
490 | (2) |
|
|
492 | (1) |
|
|
493 | (1) |
|
|
494 | (1) |
|
Tracking File-Removal Dependencies |
|
|
495 | (1) |
|
|
496 | (5) |
|
Overview of the Filestore |
|
|
497 | (2) |
|
|
499 | (2) |
|
9.10 The Berkeley Fast Filesystem |
|
|
501 | (22) |
|
Organization of the Berkeley Fast Filesystem |
|
|
502 | (1) |
|
|
503 | (1) |
|
Optimization of Storage Utilization |
|
|
504 | (1) |
|
Reading and Writing to a File |
|
|
505 | (2) |
|
|
507 | (3) |
|
|
510 | (4) |
|
|
514 | (2) |
|
|
516 | (1) |
|
|
517 | (2) |
|
|
519 | (4) |
|
Chapter 10 The Zettabyte Filesystem |
|
|
523 | (28) |
|
|
523 | (4) |
|
|
527 | (5) |
|
|
528 | (1) |
|
|
529 | (2) |
|
|
531 | (1) |
|
|
532 | (3) |
|
|
533 | (1) |
|
|
534 | (1) |
|
|
535 | (12) |
|
|
536 | (2) |
|
|
538 | (2) |
|
|
540 | (2) |
|
|
542 | (1) |
|
|
542 | (1) |
|
|
543 | (2) |
|
|
545 | (1) |
|
|
546 | (1) |
|
10.5 ZFS Design Tradeoffs |
|
|
547 | (4) |
|
|
549 | (1) |
|
|
549 | (2) |
|
Chapter 11 The Network Filesystem |
|
|
551 | (40) |
|
|
551 | (2) |
|
11.2 Structure and Operation |
|
|
553 | (14) |
|
The FreeBSD NFS Implementation |
|
|
558 | (4) |
|
Client-Server Interactions |
|
|
562 | (2) |
|
|
564 | (1) |
|
Techniques for Improving Performance |
|
|
565 | (2) |
|
|
567 | (24) |
|
|
572 | (1) |
|
|
572 | (2) |
|
|
574 | (1) |
|
Caching, Delegation, and Callbacks |
|
|
574 | (7) |
|
|
581 | (2) |
|
|
583 | (1) |
|
|
584 | (2) |
|
|
586 | (1) |
|
|
587 | (4) |
|
Part IV Interprocess Communication |
|
|
591 | (182) |
|
Chapter 12 Interprocess Communication |
|
|
593 | (56) |
|
12.1 Interprocess-Communication Model |
|
|
593 | (6) |
|
|
596 | (3) |
|
12.2 Implementation Structure and Overview |
|
|
599 | (2) |
|
|
601 | (5) |
|
|
601 | (4) |
|
Storage-Management Algorithms |
|
|
605 | (1) |
|
|
606 | (1) |
|
|
606 | (6) |
|
|
611 | (1) |
|
|
612 | (1) |
|
|
612 | (3) |
|
|
615 | (5) |
|
|
616 | (1) |
|
|
617 | (3) |
|
|
620 | (1) |
|
12.8 Network-Communication Protocol Internal Structure |
|
|
621 | (5) |
|
|
623 | (1) |
|
|
624 | (2) |
|
12.9 Socket-to-Protocol Interface |
|
|
626 | (5) |
|
Protocol User-Request Routines |
|
|
627 | (3) |
|
Protocol Control-Output Routine |
|
|
630 | (1) |
|
12.10 Protocol-to-Protocol Interface |
|
|
631 | (3) |
|
|
632 | (1) |
|
|
632 | (1) |
|
|
633 | (1) |
|
12.11 Protocol-to-Network Interface |
|
|
634 | (9) |
|
Network Interfaces and Link-Layer Protocols |
|
|
634 | (7) |
|
|
641 | (1) |
|
|
642 | (1) |
|
12.12 Buffering and Flow Control |
|
|
643 | (1) |
|
Protocol Buffering Policies |
|
|
643 | (1) |
|
|
643 | (1) |
|
12.13 Network Virtualization |
|
|
644 | (5) |
|
|
646 | (2) |
|
|
648 | (1) |
|
Chapter 13 Network-Layer Protocols |
|
|
649 | (72) |
|
13.1 Internet Protocol Version 4 |
|
|
650 | (7) |
|
|
652 | (1) |
|
|
653 | (1) |
|
|
654 | (1) |
|
Link-Layer Address Resolution |
|
|
655 | (2) |
|
13.2 Internet Control Message Protocols (ICMP) |
|
|
657 | (2) |
|
13.3 Internet Protocol Version 6 |
|
|
659 | (11) |
|
|
660 | (2) |
|
|
662 | (2) |
|
Changes to the Socket API |
|
|
664 | (2) |
|
|
666 | (4) |
|
13.4 Internet Protocols Code Structure |
|
|
670 | (5) |
|
|
671 | (2) |
|
|
673 | (1) |
|
|
674 | (1) |
|
|
675 | (11) |
|
|
677 | (3) |
|
|
680 | (3) |
|
|
683 | (1) |
|
|
683 | (1) |
|
User-Level Routing Policies |
|
|
684 | (1) |
|
User-Level Routing Interface: Routing Socket |
|
|
685 | (1) |
|
|
686 | (2) |
|
|
686 | (1) |
|
|
687 | (1) |
|
|
687 | (1) |
|
|
688 | (12) |
|
|
689 | (1) |
|
|
690 | (3) |
|
|
693 | (5) |
|
|
698 | (2) |
|
13.8 Packet-Processing Frameworks |
|
|
700 | (21) |
|
|
700 | (1) |
|
|
701 | (1) |
|
|
702 | (4) |
|
|
706 | (1) |
|
|
707 | (5) |
|
|
712 | (3) |
|
|
715 | (2) |
|
|
717 | (4) |
|
Chapter 14 Transport-Layer Protocols |
|
|
721 | (52) |
|
14.1 Internet Ports and Associations |
|
|
721 | (2) |
|
|
722 | (1) |
|
14.2 User Datagram Protocol (UDP) |
|
|
723 | (2) |
|
|
723 | (1) |
|
|
724 | (1) |
|
|
724 | (1) |
|
|
725 | (1) |
|
14.3 Transmission Control Protocol (TCP) |
|
|
725 | (7) |
|
|
727 | (3) |
|
|
730 | (2) |
|
|
732 | (9) |
|
|
733 | (2) |
|
Estimation of Round-Trip Time |
|
|
735 | (1) |
|
|
736 | (3) |
|
|
739 | (1) |
|
|
739 | (1) |
|
|
740 | (1) |
|
14.5 TCP Input Processing |
|
|
741 | (4) |
|
14.6 TCP Output Processing |
|
|
745 | (16) |
|
|
746 | (1) |
|
Avoidance of the Silly-Window Syndrome |
|
|
746 | (1) |
|
Avoidance of Small Packets |
|
|
747 | (1) |
|
Delayed Acknowledgments and Window Updates |
|
|
748 | (1) |
|
|
749 | (2) |
|
|
751 | (1) |
|
|
752 | (2) |
|
|
754 | (1) |
|
Avoidance of Congestion with Slow Start |
|
|
755 | (1) |
|
|
756 | (2) |
|
Modular Congestion Control |
|
|
758 | (1) |
|
|
759 | (1) |
|
|
760 | (1) |
|
14.7 Stream Control Transmission Protocol (SCTP) |
|
|
761 | (12) |
|
|
762 | (1) |
|
|
762 | (2) |
|
|
764 | (2) |
|
|
766 | (1) |
|
Multihoming and Heartbeats |
|
|
767 | (1) |
|
|
768 | (2) |
|
|
770 | (3) |
|
|
773 | (34) |
|
Chapter 15 System Startup and Shutdown |
|
|
775 | (32) |
|
|
776 | (1) |
|
|
777 | (5) |
|
Master Boot Record and Globally Unique Identifier Partition Table |
|
|
778 | (1) |
|
The Second-Stage Boot Loader: gptboot |
|
|
779 | (1) |
|
The Final-Stage Boot Loader: /boot/loader |
|
|
779 | (2) |
|
Boot Loading on Embedded Platforms |
|
|
781 | (1) |
|
|
782 | (16) |
|
Assembly-Language Startup |
|
|
783 | (1) |
|
Platform-Specific C-Language Startup |
|
|
784 | (1) |
|
|
785 | (1) |
|
|
785 | (2) |
|
|
787 | (5) |
|
Kernel-Thread Initialization |
|
|
792 | (2) |
|
Device-Module Initialization |
|
|
794 | (2) |
|
|
796 | (2) |
|
15.4 User-Level Initialization |
|
|
798 | (2) |
|
|
798 | (1) |
|
|
798 | (1) |
|
|
799 | (1) |
|
|
799 | (1) |
|
|
800 | (7) |
|
|
800 | (1) |
|
System Shutdown and Autoreboot |
|
|
801 | (1) |
|
|
802 | (1) |
|
Passage of Information To and From the Kernel |
|
|
803 | (2) |
|
|
805 | (1) |
|
|
806 | (1) |
Glossary |
|
807 | (40) |
Index |
|
847 | |