FreeBSD操作系统设计与实现(第2版)英文版

978-7-115-41349-9
作者: 【美】Marshall Kirk McKusick George V.Neville-Neil Robert N.M.Watson
译者: 无
编辑: 傅道坤

图书目录:

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

术语表

详情

本书是FreeBSD内核架构最新、最权威的技术指南,其内容涵盖了FreeBSD从版本5到版本11的所有重要改进。本书首先讲解了FreeBSD内核的当前设计与实现,然后讲解了FreeBSD从接口到内核再到硬件的系统调用。本书还讲解了FreeBSD设计中的关键决策,概念、数据结构,以及在实现每一个重要系统功能(比如进程管理、安全、虚拟内存、I/O、文件系统、socket IPC和网络)时用到的算法。

图书摘要

相关图书

操作系统抢分攻略 真题分类分级详解
操作系统抢分攻略 真题分类分级详解
统信UOS应用开发详解
统信UOS应用开发详解
统信UOS操作系统使用教程 (第2版)
统信UOS操作系统使用教程 (第2版)
统信UOS应用开发实战教程
统信UOS应用开发实战教程
统信UOS应用开发进阶教程
统信UOS应用开发进阶教程
龙芯应用开发标准教程
龙芯应用开发标准教程

相关文章

相关课程