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
术语表
· · · · · · (
收起)