《FreeBSD作業系統設計與實現(第2版) 英文版》是2019年9月人民郵電出版社出版的圖書,作者是Marshall Kirk McKusick George、V·Neville-Neil、Robert N·M·Watson。
基本介紹
- 書名:FreeBSD作業系統設計與實現(第2版) 英文版
- 作者:Marshall Kirk McKusick George、V·Neville-Neil、Robert N·M·Watson
- 出版社:人民郵電出版社
- 出版時間:2019年9月
- 頁數:846 頁
- 定價:118 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787115413499
內容簡介,圖書目錄,
內容簡介
《FreeBSD作業系統設計與實現(第 2版)英文版》是迄今為止對FreeBSD作業系統的介紹全面、豐富的學習資料。
《FreeBSD作業系統設計與實現(第 2版)英文版》分為5部分,總計15章。第 1部分為概述性內容,對FreeBSD作業系統的歷史發展、設計和核心服務進行了簡單介紹。第 2部分講解了進程相關的內容,包括進程管理、安全和存儲管理等。第3部分講解了I/O系統相關的內容,包括I/O設備、快速檔案系統、澤位元組檔案系統、網路檔案系統等。第4部分講解了進程間通信相關的內容,包括進程間通信、網路層協定和傳輸層協定等。第5部分講解了系統操作相關的內容,主要涉及了系統的啟動和關閉。術語表給出了本書涉及的一些常用術語及其解釋。
《FreeBSD作業系統設計與實現(第 2版)英文版》既可以作為一本FreeBSD實踐指南,又可作為深入研究當代可移值的開放原始碼作業系統的參考書。本書適合FreeBSD作業系統技術支持人員、應用程式開發人員、系統管理員和系統程式設計師閱讀,也可供對學習FreeBSD感興趣的讀者參考。
圖書目錄
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
術語表