编辑推荐
FreeBSD技术专家精品力作
FreeBSD操作系统的集大成者
全面剖析FreeBSD的内核架构
本书是FreeBSD内核完整的技术指南,在上一版的基础上进行了全面更新,以涵盖版本FreeBSD 5和版本11之间的所有重大改进。本书大约有1/3的内容是全新的,还有1/3的内容进行了完全重写。
在本书中,三位FreeBSD项目领导人先概述了FreeBSD内核的当前设计和实现,接下来从系统调用级别开始向下(从接口到内核再到硬件)讲解了FreeBSD内核。本书先解释了关键的设计决策,然后剖析了在实现每一个重要系统组件(包括进程管理、安全、虚拟内存、I/O系统、文件系统、socket IPC和网络等)时使用的概念、数据结构和算法。
读者可将本书用作工作参考,或者是深入研究当代杰出的可移植开源操作系统的学习资料。技术和销售支持人员也可以在本书中发现FreeBSD的功能以及局限性;应用开发人员将学到如何有效、高效地与FreeBSD进行交互;系统管理员将学到维护、调优和配置FreeBSD的方法;系统程序员则学到扩展、增强FreebSD以及与FreeBSD进行交互的方法。
本书涵盖了如下内容。
使用FreeBSD jail讲解高度可扩展和轻量级的虚拟化,以及使用Xen和Virtio设备半虚拟化进行虚拟设备加速;
讲解了新的安全特性,比如Capsicum沙箱和GELI加密磁盘保护;
全面支持NFSv4和Open Solaris ZFS;
介绍了FreeBSD增强的卷管理和新的日志软更新;
解释了DTrace精细的过程调试/分析;
讲解了在网络、无线和USB支持方面的主要更新。
内容简介
《FreeBSD操作系统设计与实现(第2版)英文版》是迄今为止对FreeBSD操作系统的介绍全面、丰富的学习资料。
《FreeBSD操作系统设计与实现(第2版)英文版》分为5部分,总计15章。第1部分为概述性内容,对FreeBSD操作系统的历史发展、设计和内核服务进行了简单介绍。第2部分讲解了进程相关的内容,包括进程管理、安全和存储管理等。第3部分讲解了I/O系统相关的内容,包括I/O设备、快速文件系统、泽字节文件系统、网络文件系统等。第4部分讲解了进程间通信相关的内容,包括进程间通信、网络层协议和传输层协议等。第5部分讲解了系统操作相关的内容,主要涉及了系统的启动和关闭。术语表给出了本书涉及的一些常用术语及其解释。
《FreeBSD操作系统设计与实现(第2版)英文版》既可以作为一本FreeBSD实践指南,又可作为深入研究当代可移值的开放源代码操作系统的参考书。本书适合FreeBSD操作系统技术支持人员、应用程序开发人员、系统管理员和系统程序员阅读,也可供对学习FreeBSD感兴趣的读者参考。
作者简介
Marshall Kirk McKusick编写了与UNIX和BSD主题相关的许多资料,并提供相应的咨询和教学服务。当在加州大学伯克利分校时,他实现了4.2BSD快速文件系统。他曾经是伯克利计算机系统研究组(CSRG)的一名计算机科学家,监督4.3BSD和4.4BSD的开发与发布。他当前是FreebSD基金会的董事会成员,也是一名长期的FreeBSD贡献者。他曾经担任过两次Usenix协会的主席,还是ACM、IEEE和AAAS的成员。
George V.Neville-Neil编写了与安全、网络和操作系统相关的许多资料,并提供相应的咨询和教学服务。作为FreeBSD基金会的董事会成员,他为FreeBSD核心团队服务了4年之久。从2004年起,他为Queue和Communications of the ACM写作“Kode Vicious”专栏。他当前是ACM执业委员会的副主席,也是Usenix协会、ACM、IEEE和AAAS的成员。
Robert N.M.Watson是剑桥大学计算机实验室安全研究组的一名大学讲师,负责讲授系统、安全和架构课程。他监督在计算机架构、编译器、程序分析、操作系统、网络和安全方面的高级研究。作为FreeBSD基金会的董事局成员,他为FreeBSD核心团队服务了10年之久,而且当了15年的贡献者。他是Usenix协会和ACM的会员。
目录
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-N
FreeBSD操作系统设计与实现 第2版 英文版 电子书 下载 mobi epub pdf txt