Part I Overview 1
第1部分 概述
Chapter 1 History and Goals 3
第1章 曆史和目標
1.1 History of the UNIX System / UNIX係統的曆史 3
Origins / 起源 3
Research UNIX / 研究UNIX 4
AT&T UNIX System III and System V / AT&T UNIX System III
和System V 5
Berkeley Software Distributions / 伯剋利軟件分發 6
UNIX in the World / 世界上的UNIX 7
1.2 BSD and Other Systems / BSD和其他係統 7
The Influence of the User Community / 用戶社區的影響 8
1.3 The Transition of BSD to Open Source / BSD嚮開源的過渡 9
Networking Release 2 / 網絡發布2 10
The Lawsuit / 訴訟 11
4.4BSD / 4.4BSD 13
4.4BSD-Lite Release 2 / 4.4BSD-Lite版本2 13
1.4 The FreeBSD Development Model / FreeBSD開發模型 14
References / 參考文獻 17
Chapter 2 Design Overview of FreeBSD 21
第2章 FreeBSD設計概述
2.1 FreeBSD Facilities and the Kernel / FreeBSD組件與內核 21
The Kernel / 內核 22
2.2 Kernel Organization / 內核組織 23
2.3 Kernel Services / 內核服務 26
2.4 Process Management / 進程管理 26
Signals / 信號 28
Process Groups and Sessions / 進程組和會話 29
2.5 Security / 安全 29
Process Credentials / 進程憑證 31
Privilege Model / 特權模式 31
Discretionary Access Control / 自由訪問控製 32
Capability Model / 能力模型 32
Jail Lightweight Virtualization / Jail輕型虛擬化 32
Mandatory Access Control / 強製訪問控製 34
Event Auditing / 事件審計 35
Cryptography and Random-Number Generators / 35
加密和隨機數生成器
2.6 Memory Management / 存儲管理 36
BSD Memory-Management Design Decisions / 36
BSD存儲管理設計決策
Memory Management Inside the Kernel / 內核中的存儲管理 38
2.7 I/O System Overview / I/O係統概述 39
Descriptors and I/O / 描述符和I/O 39
Descriptor Management / 描述符管理 41
Devices / 設備 42
Socket IPC / 套接字IPC 42
Scatter-Gather I/O / 分散-收集I/O 43
Multiple Filesystem Support / 多文件係統支持 43
2.8 Devices / 設備 44
2.9 The Fast Filesystem / 快速文件係統 45
Filestores / 文件存儲 48
2.10 The Zettabyte Filesystem / 澤字節文件係統 49
2.11 The Network Filesystem / 網絡文件係統 50
2.12 Interprocess Communication / 進程間通信 50
2.13 Network-Layer Protocols / 網絡層協議 51
2.14 Transport-Layer Protocols / 傳輸層協議 52
2.15 System Startup and Shutdown / 係統啓動與關閉 52
Exercises / 練習 54
References / 參考文獻 54
Chapter 3 Kernel Services 57
第3章 內核服務
3.1 Kernel Organization / 內核組織 57
System Processes / 係統進程 57
System Entry / 係統入口 58
Run-Time Organization / 運行時管理 59
Entry to the Kernel / 內核入口 60
Return from the Kernel / 從內核返迴 61
3.2 System Calls / 係統調用 62
Result Handling / 返迴處理機製 62
Returning from a System Call / 從係統調用返迴 63
3.3 Traps and Interrupts / 陷阱和中斷 64
I/O Device Interrupts / I/O設備中斷 64
Software Interrupts / 軟件中斷 65
3.4 Clock Interrupts / 時鍾中斷 65
Statistics and Process Scheduling / 統計和進程調度機製 66
Timeouts / 超時 67
3.5 Memory-Management Services / 存儲管理服務 69
3.6 Timing Services / 計時服務 73
Real Time / 實時 73
External Representation / 外部錶示 73
Adjustment of the Time / 時間調整 74
Interval Time / 間隔時間 74
3.7 Resource Services / 資源服務 75
Process Priorities / 進程優先級 75
Resource Utilization / 資源利用 75
Resource Limits / 資源限製 76
Filesystem Quotas / 文件係統配額 77
3.8 Kernel Tracing Facilities / 內核跟蹤組件 77
System-Call Tracing / 係統調用跟蹤 77
DTrace / DTrace 78
Kernel Tracing / 內核跟蹤 82
Exercises / 練習 84
References / 參考文獻 85
Part II Processes 87
第II部分 進程
Chapter 4 Process Management 89
第4章 進程管理
4.1 Introduction to Process Management / 進程管理簡介 89
Multiprogramming / 多程序設計 90
Scheduling / 調度機製 91
4.2 Process State / 進程狀態 92
The Process Structure / 進程架構 94
The Thread Structure / 綫程架構 98
4.3 Context Switching / 上下文切換 99
Thread State / 綫程狀態 100
Low-Level Context Switching / 低層上下文切換 100
Voluntary Context Switching / 自願上下文切換 101
Synchronization / 同步 106
Mutex Synchronization / 互斥同步 107
Mutex Interface / 互斥接口 109
Lock Synchronization / 鎖同步 110
Deadlock Prevention / 死鎖預防 112
4.4 Thread Scheduling / 綫程調度機製 114
The Low-Level Scheduler / 低層調度器 114
Thread Run Queues and Context Switching / 115
綫程運行隊列和上下文切換
Timeshare Thread Scheduling / 分時綫程調度 117
Multiprocessor Scheduling / 多處理器調度 122
Adaptive Idle / 自適應空閑 125
Traditional Timeshare Thread Scheduling / 125
傳統的分時綫程調度
4.5 Process Creation / 創建進程 126
4.6 Process Termination / 終止進程 128
4.7 Signals / 信號 129
Posting of a Signal / 發齣信號 132
Delivering a Signal / 傳輸信號 135
4.8 Process Groups and Sessions / 進程組和會話 136
Process Groups / 進程組 137
Sessions / 會話 138
Job Control / 作業控製 139
4.9 Process Debugging / 進程調試 142
Exercises / 練習 144
References / 參考文獻 146
Chapter 5 Security 147
第5章 安全
5.1 Operating-System Security / 操作係統安全 148
5.2 Security Model / 安全模型 149
Process Model / 進程模型 149
Discretionary and Mandatory Access Control 150
自由和強製訪問控製
Trusted Computing Base (TCB) / 受信計算基(TCB) 151
Other Kernel-Security Features / 其他內核安全特性 151
5.3 Process Credentials / 進程憑證 151
The Credential Structure / 憑證架構 152
Credential Memory Model / 憑證存儲模型 153
Access-Control Checks / 訪問控製校驗 153
5.4 Users and Groups / 用戶和組 154
Setuid and Setgid Binaries / Setuid和Setgid二進製 155
5.5 Privilege Model / 特權模型 157
Implicit Privilege / 隱式特權 157
Explicit Privilege / 顯式特權 157
5.6 Interprocess Access Control / 進程間訪問控製 159
Visibility / 可見性 160
Signals / 信號 160
Scheduling Control / 調度控製 160
Waiting on Process Termination / 等待進程終止 161
Debugging / 調試 161
5.7 Discretionary Access Control / 自由訪問控製 161
The Virtual-Filesystem Interface and DAC / 162
虛擬文件係統接口和DAC
Object Owners and Groups / 對象屬主和組 163
UNIX Permissions / UNIX權限 164
Access Control Lists (ACLs) / 訪問控製列錶(ACL) 165
POSIX.1e Access Control Lists / POSIX.1e訪問控製列錶 168
NFSv4 Access Control Lists / NFSv4訪問控製列錶 171
5.8 Capsicum Capability Model / Capsicum能力模型 174
Capsicum Application Structure / Capsicum應用架構 175
Capability Systems / 能力係統 176
Capabilities / 能力 177
Capability Mode / 能力模型 179
5.9 Jails / Jail 180
5.10 Mandatory Access-Control Framework / 強製訪問控製框架 184
Mandatory Policies / 強製策略 186
Guiding Design Principles / 設計原則指導 187
Architecture of the MAC Framework / MAC框架的架構 188
Framework Startup / 啓動框架 189
Policy Registration / 策略注冊 190
Framework Entry-Point Design Considerations / 191
框架入口點設計考量
Policy Entry-Point Considerations / 策略入口點考量 192
Kernel Service Entry-Point Invocation / 內核服務入口點調用 193
Policy Composition / 策略組成 194
Object Labelling / 給對象打標簽 195
Label Life Cycle and Memory Management / 196
標簽生命周期和存儲管理
Label Synchronization / 標簽同步 199
Policy-Agnostic Label Management from Userspace / 199
從用戶空間進行策略無關的標簽管理
5.11 Security Event Auditing / 安全事件審計 200
Audit Events and Records / 審計事件和記錄 201
BSM Audit Records and Audit Trails / 202
BSM審計記錄和審計跟蹤
Kernel-Audit Implementation / 內核審計的實施 203
5.12 Cryptographic Services / 加密服務 206
Cryptographic Framework / 加密框架 206
Random-Number Generator / 隨機數生成器 208
5.13 GELI Full-Disk Encryption / GELI全磁盤加密 212
Confidentiality and Integrity Protection / 保密性和完整性保護 212
Key Management / 密鑰管理 213
Starting GELI / 啓動GELI 214
Cryptographic Block Protection / 加密塊保護 215
I/O Model / I/O模型 216
Limitations / 限製 216
Exercises / 練習 217
References / 參考文獻 217
Chapter 6 Memory Management 221
第6章 存儲管理
6.1 Terminology / 術語 221
Processes and Memory / 進程和存儲 222
Paging / 分頁 223
Replacement Algorithms / 替換算法 224
Working-Set Model / 工作集模型 225
Swapping / 交換 225
Advantages of Virtual Memory / 虛擬存儲的優勢 225
Hardware Requirements for Virtual Memory / 226
虛擬存儲的硬件需求
6.2 Overview of the FreeBSD Virtual-Memory System / 227
FreeBSD虛擬存儲係統概述
User Address-Space Management / 用戶地址空間管理 228
6.3 Kernel Memory Management / 內核存儲管理 230
Kernel Maps and Submaps / 內核映射和子映射 231
Kernel Address-Space Allocation / 內核地址空間分配 233
The Slab Allocator / Slab分配器 236
The Keg Allocator / Keg分配器 238
The Zone Allocator / Zone分配器 239
Kernel Malloc / Malloc內核 241
Kernel Zone Allocator / 內核Zone分配器 243
6.4 Per-Process Resources / 每進程資源 244
FreeBSD Process Virtual-Address Space / 245
FreeBSD進程虛擬地址空間
Page-Fault Dispatch / 頁麵故障調度 245
Mapping to Vm_objects / 映射到Vm_objects 247
Vm_objects / Vm_objects 249
Vm_objects to Pages / Vm_object到頁麵 249
6.5 Shared Memory / 共享存儲 250
Mmap Model / Mmap模型 251
Shared Mapping / 共享映射 253
Private Mapping / 私有映射 254
Collapsing of Shadow Chains / 陰影鏈的崩潰 257
Private Snapshots / 私有快照 258
6.6 Creation of a New Process / 創建一個新的進程 258
Reserving Kernel Resources / 預留內核資源 259
Duplication of the User Address Space / 用戶地址空間的重復 260
Creation of a New Process Without Copying / 261
不使用復製的方式來創建新的進程
6.7 Execution of a File / 執行文件 262
6.8 Process Manipulation of Its Address Space / 263
進程以及地址空間的操作
Change of Process Size / 改變進程的大小 263
File Mapping / 文件映射 264
Change of Protection / 改變保護 266
6.9 Termination of a Process / 終止進程 266
6.10 The Pager Interface / 分頁器接口 267
Vnode Pager / Vnode分頁器 269
Device Pager / 設備分頁器 270
Physical-Memory Pager / 物理存儲分頁器 272
Swap Pager / 交換分頁器 272
6.11 Paging / 分頁機製 276
Hardware-Cache Design / 硬件緩存設計 280
Hardware Memory Management / 硬件存儲管理 282
Superpages / 超級頁麵 284
6.12 Page Replacement / 頁麵替換 289
Paging Parameters / 分頁參數 291
The Pageout Daemon / 分頁守護進程 292
Swapping / 交換 295
The Swap-In Process / 進程內的交換 296
6.13 Portability / 可移植性 298
The Role of the pmap Module / pmap模塊的角色 299
Initialization and Startup / 初始化和啓動 301
Mapping Allocation and Deallocation / 映射分配和釋放 304
Change of Access and Wiring Attributes for Mappings / 306
更改映射的訪問和布綫屬性
Maintenance of Physical Page-Usage Information / 307
物理頁麵使用信息的維護
Initialization of Physical Pages / 物理頁麵的初始化 308
Management of Internal Data Structures / 內部數據結構的管理 308
Exercises / 練習 308
References / 參考文獻 310
Part III I/O System 313
第III部分 I/O係統
Chapter 7 I/O System Overview 315
第7章 I/O係統概述
7.1 Descriptor Management and Services / 描述符管理和服務 316
Open File Entries / 開放文件入口 318
Management of Descriptors / 描述符管理 319
Asynchronous I/O / 異步I/O 321
File-Descriptor Locking / 文件描述符鎖定 322
Multiplexing I/O on Descriptors / 描述符上的多路復用I/O 324
Implementation of Select / Select的實現 327
Kqueues and Kevents / Kqueues和Kevents 329
Movement of Data Inside the Kernel / 數據在內核中的移動 332
7.2 Local Interprocess Communication / 本地進程間通信 333
Semaphores / 信號量 335
Message Queues / 消息隊列 337
Shared Memory / 共享存儲 338
7.3 The Virtual-Filesystem Interface / 虛擬文件係統接口 339
Contents of a Vnode / Vnode的內容 339
Vnode Operations / Vnode的操作 342
Pathname Translation / 路徑名的轉換 342
Exported Filesystem Services / 導齣文件係統服務 343
7.4 Filesystem-Independent Services / 獨立於文件係統的服務 344
The Name Cache / 名稱緩存 346
Buffer Management / 緩衝管理 347
Implementation of Buffer Management / 緩衝管理的實現 350
7.5 Stackable Filesystems / 可堆疊的文件係統 352
Simple Filesystem Layers / 簡單的文件係統層 354
The Union Filesystem / 聯閤文件係統 355
Other Filesystems / 其他文件係統 357
Exercises / 練習 358
References / 參考文獻 359
Chapter 8 Devices 361
第8章 設備
8.1 Device Overview / 設備概述 361
The PC I/O Architecture / PC I/O架構 362
The Structure of the FreeBSD Mass Storage I/O Subsystem / 364
FreeBSD海量存儲I/O子係統的架構
Device Naming and Access / 設備命名和訪問 366
8.2 I/O Mapping from User to Device / 從用戶到設備的I/O映射 367
Device Drivers / 設備驅動 368
I/O Queueing / I/O隊列機製 369
Interrupt Handling / 中斷處理 370
8.3 Character Devices / 字符設備 370
Raw Devices and Physical I/O / 原始設備和物理I/O 372
Character-Oriented Devices / 麵嚮字符的設備 373
Entry Points for Character Device Drivers / 373
字符設備驅動的入口點
8.4 Disk Devices / 磁盤設備 374
Entry Points for Disk Device Drivers / 374
磁盤設備驅動的入口點
Sorting of Disk I/O Requests / 磁盤I/O請求的排序 375
Disk Labels / 磁盤捲標 376
8.5 Network Devices / 網絡設備 378
Entry Points for Network Drivers / 網絡驅動的入口點 378
Configuration and Control / 配置和控製 379
Packet Reception / 接收數據包 380
Packet Transmission / 傳輸數據包 381
8.6 Terminal Handling / 終端處理 382
Terminal-Processing Modes / 終端進程模型 383
User Interface / 用戶接口 385
Process Groups, Sessions, and Terminal Control / 387
進程組、會話和終端控製
Terminal Operations / 終端的操作 388
Terminal Output (Upper Half) / 終端輸齣(上半部分) 388
Terminal Output (Lower Half) / 終端輸齣(下半部分) 389
Terminal Input / 終端輸入 390
Closing of Terminal Devices / 關閉終端設備 391
8.7 The GEOM Layer / GEOM層 391
Terminology and Topology Rules / 術語和拓撲規則 392
Changing Topology / 更改拓撲 393
Operation / 操作 396
Topological Flexibility / 拓撲的靈活性 397
8.8 The CAM Layer / CAM層 399
The Path of a SCSI I/O Request Through the CAM Subsystem / 400
通過CAM子係統的SSCI I/O請求路徑
ATA Disks / ATA磁盤 402
8.9 Device Configuration / 設備配置 402
Device Identification / 設備識彆 405
Autoconfiguration Data Structures / 自動配置數據結構 407
Resource Management / 資源管理 412
8.10 Device Virtualization / 設備虛擬化 414
Interaction with the Hypervisor / 與Hypervisor進行交互 414
Virtio / Virtio 415
Xen / Xen 419
Device Pass-Through / 設備直通 427
Exercises / 練習 428
References / 參考文獻 429
Chapter 9 The Fast Filesystem 431
第9章 快速文件係統
9.1 Hierarchical Filesystem Management / 分層的文件係統管理 431
9.2 Structure of an Inode / Inode的架構 433
Changes to the Inode Format / 更改Inode格式 435
Extended Attributes / 擴展屬性 436
New Filesystem Capabilities / 新的文件係統能力 438
File Flags / 文件標記 439
Dynamic Inodes / 動態Inode 441
Inode Management / Inode管理 442
9.3 Naming / 命名 443
Directories / 目錄 444
Finding of Names in Directories / 在目錄中查找名字 446
Pathname Translation / 路徑名轉換 447
Links / 鏈接 449
9.4 Quotas / 配額 451
9.5 File Locking / 文件鎖定 454
9.6 Soft Updates / 軟更新 459
Update Dependencies in the Filesystem / 460
在文件係統中更新依賴
Dependency Structures / 依賴的架構 464
Bitmap Dependency Tracking / 位圖依賴跟蹤 466
Inode Dependency Tracking / Inode依賴跟蹤 467
Direct-Block Dependency Tracking / 直接塊依賴跟蹤 469
Indirect-Block Dependency Tracking / 間接塊依賴跟蹤 470
Dependency Tracking for New Indirect Blocks 471
新間接塊的依賴跟蹤
New Directory-Entry Dependency Tracking 472
新目錄入口的依賴跟蹤
New Directory Dependency Tracking / 新的目錄依賴跟蹤 474
Directory-Entry Removal-Dependency Tracking / 475
目錄入口移除依賴跟蹤
File Truncation / 文件截斷 476
File and Directory Inode Reclamation / 476
文件和目錄Inode復墾
Directory-Entry Renaming Dependency Tracking / 476
目錄入口重命名依賴跟蹤
Fsync Requirements for Soft Updates / 軟更新的Fsync請求 477
File-Removal Requirements for Soft Updates / 478
軟更新的文件移除需求
Soft-Updates Requirements for fsck / fsck的軟更新需求 480
9.7 Filesystem Snapshots / 文件係統快照 480
Creating a Filesystem Snapshot / 創建一個文件係統快照 481
Maintaining a Filesystem Snapshot / 維護一個文件係統快照 483
Large Filesystem Snapshots / 大型文件係統快照 484
Background fsck / fsck的背景知識 486
User-Visible Snapshots / 用戶可見的快照 487
Live Dumps / 實時轉儲 487
9.8 Journaled Soft Updates / 記錄軟更新 487
Background and Introduction / 背景和簡介 487
Compatibility with Other Implementations / 488
與其他實現的兼容
Journal Format / 記錄的格式 488
Modifications That Require Journaling / 需要進行記錄的修改 489
Additional Requirements of Journaling / 490
與記錄相關的額外需求
The Recovery Process / 恢復進程 492
Performance / 性能 493
Future Work / 後續工作 494
Tracking File-Removal Dependencies / 跟蹤文件移除依賴 495
9.9 The Local Filestore / 本地文件存儲 496
Overview of the Filestore / 文件存儲概述 497
User I/O to a File / 用戶對文件的I/O 499
9.10 The Berkeley Fast Filesystem / 伯剋利快速文件係統 501
Organization of the Berkeley Fast Filesystem / 502
伯剋利快速文件係統的組織
Boot Blocks / 引導塊 503
Optimization of Storage Utilization / 存儲利用的優化 504
Reading and Writing to a File / 讀寫文件 505
Layout Policies / 布局策略 507
Allocation Mechanisms / 分配機製 510
Block Clustering / 塊聚類 514
Extent-Based Allocation / 基於分區的分配 516
Exercises / 練習 517
References / 參考文獻 519
Chapter 10 The Zettabyte Filesystem 523
第10章 澤字節文件係統
10.1 Introduction / 簡介 523
10.2 ZFS Organization / ZFS的組織 527
ZFS Dnode / ZFS Dnode 528
ZFS Block Pointers / ZFS塊指針 529
ZFS objset Structure / ZFS objset架構 531
10.3 ZFS Structure / ZFS架構 532
The MOS Layer / MOS層 533
The Object-Set Layer / 對象集層 534
10.4 ZFS Operation / ZFS操作 535
Writing New Data to Disk / 將新的數據寫入磁盤 536
Logging / 記錄日誌 538
RAIDZ / RAIDZ 540
Snapshots / 快照 542
ZFS Block Allocation / ZFS塊分配 542
Freeing Blocks / 釋放塊 543
Deduplication / 刪除重復數據 545
Remote Replication / 遠程復製 546
10.5 ZFS Design Tradeoffs / ZFS設計權衡 547
Exercises / 練習 549
References / 參考文獻 549
Chapter 11 The Network Filesystem 551
第11章 網絡文件係統
11.1 Overview / 概述 551
11.2 Structure and Operation / 架構和操作 553
The FreeBSD NFS Implementation / FreeBSD FNS的實現 558
Client–Server Interactions / 客戶端與服務器的交互 562
Security Issues / 安全問題 564
Techniques for Improving Performance / 565
用於提升性能的技術
11.3 NFS Evolution / NFS的演進 567
Namespace / 名稱空間 572
Attributes / 屬性 572
Access Control Lists / 訪問控製列錶 574
Caching, Delegation, and Callbacks / 緩存、委派和迴調 574
Locking / 鎖定 581
Security / 安全 583
Crash Recovery / 崩潰恢復 584
Exercises / 練習 586
References / 參考文獻 587
Part IV Interprocess Communication 591
第IV部分 進程間通信
Chapter 12 Interprocess Communication 593
第12章 進程間通信
12.1 Interprocess-Communication Model / 進程間通信模型 593
Use of Sockets / 使用套接字 596
12.2 Implementation Structure and Overview / 實現架構和概述 599
12.3 Memory Management / 存儲管理 601
Mbufs / Mbufs 601
Storage-Management Algorithms / 存儲管理算法 605
Mbuf Utility Routines / Mbuf實用例程 606
12.4 IPC Data Structures / IPC數據結構 606
Socket Addresses / 套接字地址 611
Locks / 鎖 612
12.5 Connection Setup / 連接建立 612
12.6 Data Transfer / 數據傳輸 615
Transmitting Data / 傳輸數據 616
Receiving Data / 接收數據 617
12.7 Socket Shutdown / 關閉套接字 620
12.8 Network-Communication Protocol Internal Structure / 621
網絡通信協議內部架構
Data Flow / 數據流 623
Communication Protocols / 通信協議 624
12.9 Socket-to-Protocol Interface / 套接字與協議之間的接口 626
Protocol User-Request Routines / 協議用戶請求例程 627
Protocol Control-Output Routine / 協議控製輸齣例程 630
12.10 Protocol-to-Protocol Interface / 協議與協議的接口 631
pr_output / pr_output 632
pr_input / pr_input 632
pr_ctlinput / pr_ctlinput 633
12.11 Protocol-to-Network Interface / 協議與網路的接口 634
Network Interfaces and Link-Layer Protocols / 634
網絡接口與鏈路層協議
Packet Transmission / 數據包傳輸 641
Packet Reception / 數據包接收 642
12.12 Buffering and Flow Control / 緩衝和流控製 643
Protocol Buffering Policies / 協議緩衝策略 643
Queue Limiting / 隊列限製 643
12.13 Network Virtualization / 網絡虛擬化 644
Exercises / 練習 646
References / 參考文獻 648
Chapter 13 Network-Layer Protocols 649
第13章 網絡層協議
13.1 Internet Protocol Version 4 / IPv4 650
IPv4 Addresses / IPv4地址 652
Broadcast Addresses / 廣播地址 653
Internet Multicast / Internet多播 654
Link-Layer Address Resolution / 鏈路層地址解析 655
13.2 Internet Control Message Protocols (ICMP) / 657
Internet控製消息協議(ICMP)
13.3 Internet Protocol Version 6 / IPv6 659
IPv6 Addresses / IPv6地址 660
IPv6 Packet Formats / IPv6數據包格式 662
Changes to the Socket API / 更改套接字API 664
Autoconfiguration / 自動配置 666
13.4 Internet Protocols Code Structure / IP代碼結構 670
Output / 輸齣 671
Input / 輸入 673
Forwarding / 轉發 674
13.5 Routing / 路由 675
Kernel Routing Tables / 內核路由錶 677
Routing Lookup / 路由查找 680
Routing Redirects / 路由重定嚮 683
Routing-Table Interface / 路由錶接口 683
User-Level Routing Policies / 用戶級路由策略 684
User-Level Routing Interface: Routing Socket / 685
用戶級路由接口:路由套接字
13.6 Raw Sockets / 原始套接字 686
Control Blocks / 控製塊 686
Input Processing / 輸入處理 687
Output Processing / 輸齣處理 687
13.7 Security / 安全 688
IPSec Overview / IPSec概述 689
Security Protocols / 安全協議 690
Key Management / 密鑰管理 693
IPSec Implementation / IPSec實施 698
13.8 Packet-Processing Frameworks / 數據包處理框架 700
Berkeley Packet Filter / 伯剋利數據包過濾器 700
IP Firewalls / IP防火牆 701
IPFW and Dummynet / IPFW和Dummynet 702
Packet Filter (PF) / 數據包過濾器(PF) 706
Netgraph / Netgraph 707
Netmap / Netmap 712
Exercises / 練習 715
References / 參考文獻 717
Chapter 14 Transport-Layer Protocols 721
第14章 傳輸層協議
14.1 Internet Ports and Associations / Internet端口和關聯 721
Protocol Control Blocks / 協議控製塊 722
14.2 User Datagram Protocol (UDP) / 用戶數據報協議(UDP) 723
Initialization / 初始化 723
Output / 輸齣 724
Input / 輸入 724
Control Operations / 控製操作 725
14.3 Transmission Control Protocol (TCP) / 傳輸控製協議(TCP) 725
TCP Connection States / TCP連接狀態 727
Sequence Variables / 序列變量 730
14.4 TCP Algorithms / TCP算法 732
Timers / 計時器 733
Estimation of Round-Trip Time / 估算往返時間 735
Connection Establishment / 連接建立 736
SYN Cache / SYN緩存 739
SYN Cookies / SYN Cookie 739
Connection Shutdown / 連接關閉 740
14.5 TCP Input Processing / TCP輸入處理 741
14.6 TCP Output Processing / TCP輸齣處理 745
Sending Data / 發送數據 746
Avoidance of the Silly-Window Syndrome / 746
避免笨窗口綜閤徵
Avoidance of Small Packets / 避免小數據包 747
Delayed Acknowledgments and Window Updates / 748
延遲確認和窗口更新
Selective Acknowledgment / 選擇性確認 749
Retransmit State / 重傳狀態 751
Slow Start / 慢啓動 752
Buffer and Window Sizing / 緩存和窗口大小 754
Avoidance of Congestion with Slow Start / 755
帶有慢啓動的擁塞避免
Fast Retransmission / 快速重傳 756
Modular Congestion Control / 模塊化擁塞控製 758
The Vegas Algorithm / Vegas算法 759
The Cubic Algorithm / Cubic算法 760
14.7 Stream Control Transmission Protocol (SCTP) / 761
流控傳輸協議(SCTP)
Chunks / 大數據塊 762
Association Setup / 關聯建立 762
Data Transfer / 數據傳輸 764
Association Shutdown / 關聯關閉 766
Multihoming and Heartbeats / 多宿主和心跳 767
Exercises / 練習 768
References / 參考文獻 770
Part V System Operation 773
第V部分 係統操作
Chapter 15 System Startup and Shutdown 775
第15章 係統啓動和關閉
15.1 Firmware and BIOSes / 固件和BIOS 776
15.2 Boot Loaders / 引導加載程序 777
Master Boot Record and Globally Unique Identifier Partition Table / 778
主引導記錄和全局唯一標識分區錶
The Second-Stage Boot Loader: gptboot /
二級引導加載程序:gptboot 779
The Final-Stage Boot Loader: /boot/loader /
末級引導加載程序:/boot/loader 779
Boot Loading on Embedded Platforms /
在嵌入式平颱上引導加載 781
15.3 Kernel Boot / 內核引導 782
Assembly-Language Startup / 啓動匯編語言 783
Platform-Specific C-Language Startup /
啓動特定於平颱的C語言 784
Modular Kernel Design / 模塊化內核設計 785
Module Initialization / 模塊初始化 785
Basic Kernel Services / 基本的內核服務 787
Kernel-Thread Initialization / 內核綫程初始化 792
Device-Module Initialization / 設備模塊初始化 794
Loadable Kernel Modules / 可加載的內核模塊 796
15.4 User-Level Initialization / 用戶級初始化 798
/sbin/init / /sbin/init 798
System Startup Scripts / 係統啓動腳本 798
/usr/libexec/getty / /usr/libexec/getty 799
/usr/bin/login / /usr/bin/login 799
15.5 System Operation / 係統操作 800
Kernel Configuration / 內核配置 800
System Shutdown and Autoreboot / 關閉和自動重啓係統 801
System Debugging / 係統調試 802
Passage of Information To and From the Kernel / 803
信息在內核中的傳遞
Exercises / 練習 805
References / 參考文獻 806
Glossary 807
術語錶
· · · · · · (
收起)