图书介绍

FreeBSD操作系统设计与实现2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

FreeBSD操作系统设计与实现
  • (美)Marshall Kirk McKusick,(美)George V. Neville-Neil著;张辉译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115136858
  • 出版时间:2006
  • 标注页数:516页
  • 文件大小:33MB
  • 文件页数:537页
  • 主题词:UNIX操作系统

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

FreeBSD操作系统设计与实现PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 综述3

第1章 BSD系统的历史和目标3

1.1 UNIX系统的历史3

1.1.1 UNIX系统的起源3

目录3

1.1.2 Research小组的UNIX系统4

1.1.3 AT T UNIX System Ⅲ和System Ⅴ5

1.1.4 伯克利软件发布(BSD)5

1.1.5 UNIX无处不在6

1.2 BSD和其他系统6

1.3 BSD向开放源代码的转变8

1.3.1 Networking Release 28

1.3.2 法律诉讼10

1.3.4 4.4BSD-Lite Release 211

1.3.3 4.4BSD11

1.4 FreeBSD的开发模式12

1.5 参考文献15

第2章 FreeBSD设计概述19

2.1 FreeBSD的功能和内核19

2.2 内核结构20

2.3 内核服务22

2.4 进程管理23

2.4.1 信号24

2.4.2 进程组和会话25

2.5 内存管理25

2.5.1 BSD内存管理设计要点26

2.5.2 内核中的内存管理27

2.6.1 描述符与I/O28

2.6 I/O系统28

2.6.2 描述符管理29

2.6.3 设备30

2.6.4 套接口IPC30

2.6.5 分散/聚集I/O31

2.6.6 多文件系统支持31

2.7 设备32

2.8 文件系统32

2.9 网络文件系统35

2.10 终端36

2.11 进程间通信37

2.12 网络通信37

2.15 复习题38

2.14 系统运行38

2.13 网络实现38

2.16 参考文献39

第3章 内核服务41

3.1 内核结构41

3.1.1 系统进程41

3.1.2 系统入口42

3.1.3 运行时刻的内核结构42

3.1.4 内核的入口43

3.1.5 从内核返回44

3.2 系统调用44

3.2.1 调用结果的处理45

3.2.2 从系统调用返回45

3.3.1 陷阱46

3.3.2 I/O设备中断46

3.3 陷阱和中断46

3.3.3 软件中断47

3.4 时钟中断47

3.4.1 统计和进程调度48

3.4.2 超时49

3.5 内存管理服务50

3.6 时间服务53

3.6.1 真实时间53

3.6.2 外部表示54

3.6.3 调整时间54

3.6.4 时间间隔54

3.7 用户、用户组和其他身份标识55

3.7.2 进程组和会话57

3.7.1 主机标识符57

3.8 资源服务58

3.8.1 进程优先级58

3.8.2 资源利用58

3.8.3 资源限制59

3.8.4 文件系统配额59

3.9 系统运行服务59

3.10 复习题60

3.11 参考文献61

第二部分 进程65

第4章 进程管理65

4.1 进程管理概述65

4.1.1 多程序机制66

4.1.2 调度66

4.2 进程状态67

4.2.1 进程结构69

4.2.2 线程结构71

4.3 上下文切换72

4.3.1 线程状态73

4.3.2 底层上下文切换73

4.3.3 主动上下文切换73

4.3.4 同步75

4.3.5 互斥同步78

4.3.6 锁管理器的锁79

4.3.7 其他同步80

4.4 线程调度80

4.4.1 4.4BSD的调度程序81

4.4.2 线程调度81

4.4.3 线程优先级的计算82

4.4.5 线程运行队列和上下文切换83

4.4.4 线程优先级例程83

4.4.6 ULE调度程序85

4.5 创建进程87

4.6 终止进程89

4.7 信号90

4.7.1 信号的历史92

4.7.2 发送信号92

4.7.3 接收信号94

4.8 进程组和会话95

4.8.1 会话96

4.8.2 作业控制98

4.9 监管环境99

4.9.1 监管环境的语义100

4.9.2 监管环境的实现102

4.9.3 监管环境的限制103

4.10 进程的调试104

4.11 复习题105

4.12 参考文献107

第5章 存储管理109

5.1 术语109

5.1.1 进程与内存110

5.1.2 调页机制110

5.1.3 替换算法111

5.1.4 工作集模型112

5.1.5 交换机制112

5.1.6 虚拟内存的优点112

5.1.7 虚拟内存的硬件要求113

5.2 FreeBSD虚拟内存系统概述113

5.3 内核的存储管理115

5.3.1 内核映射和子映射116

5.3.2 内核地址空间的分配117

5.3.3 内核的存储分配程序117

5.3.4 内核的区域存储分配程序119

5.4 进程独立拥有的资源121

5.4.1 FreeBSD的进程虚拟地址空间121

5.4.2 缺页处理122

5.4.3 映射到对象123

5.4.4 对象124

5.4.5 对象到页面124

5.5 共享存储125

5.5.1 mmap模型126

5.5.2 共享映射127

5.5.3 私有映射128

5.5.4 压缩影子链129

5.5.5 私有快照130

5.6 创建新进程131

5.6.1 保留内核资源131

5.6.2 复制用户地址空间132

5.6.3 不通过复制创建新进程133

5.7 执行一个文件134

5.8 进程地址空间的操作134

5.8.1 改变进程大小135

5.8.2 文件映射135

5.8.3 改变保护权限136

5.9 终止进程137

5.10 调页器接口137

5.10.1 vnode调页器139

5.10.2 设备调页器140

5.10.3 物理内存调页器141

5.10.4 交换调页器141

5.11 调页机制144

5.11.1 硬件高速缓存的设计147

5.11.2 页面填色148

5.12 页面替换150

5.12.1 调页参数151

5.12.2 pageout守护进程152

5.12.3 交换机制155

5.12.4 换入进程156

5.13 可移植性157

5.13.1 pmap模块的作用159

5.13.2 初始化和启动161

5.13.3 分配和释放映射163

5.13.4 改变映射的访问和固定属性164

5.13.5 管理页表的使用信息165

5.13.6 初始化物理页面166

5.13.7 管理内部数据结构166

5.14 复习题167

5.15 参考文献168

第三部分 I/O系统173

第6章 I/O系统概述173

6.1 从用户到设备的I/O映射173

6.1.1 设备驱动程序174

6.1.2 I/O队列175

6.1.3 中断处理175

6.2 字符设备175

6.2.1 原始设备和物理I/O176

6.2.2 面向字符的设备178

6.2.3 字符设备驱动程序的入口点178

6.3 磁盘设备179

6.3.1 块设备驱动程序的入口点179

6.3.2 磁盘I/O请求的排序179

6.3.3 磁盘标签180

6.4 描述符的管理和服务181

6.4.1 打开文件项182

6.4.2 管理描述符183

6.4.3 异步I/O185

6.4.4 文件描述符的上锁机制185

6.4.5 描述符上的多路I/O操作187

6.4.6 select调用的实现189

6.4.7 数据在内核中的转移191

6.5 虚拟文件系统的接口192

6.5.1 vnode的内容193

6.5.2 对vnode的操作195

6.5.3 路径名转换195

6.5.4 文件系统的导出服务196

6.6 与文件系统无关的服务197

6.6.1 名字缓存198

6.6.2 缓冲区管理199

6.6.3 缓冲区管理的实现201

6.7 可叠加的文件系统203

6.7.1 简单的文件系统层204

6.7.2 联合安装的文件系统205

6.7.3 其他文件系统207

6.9 参考文献208

6.8 复习题208

第7章 设备210

7.1 设备概述210

7.1.1 PC的I/O体系结构210

7.1.2 FreeBSD海量存储I/O子系统的结构212

7.1.3 设备的命名和访问214

7.2 GEOM层215

7.2.1 术语和拓扑规则215

7.2.2 改变拓扑217

7.2.3 运行218

7.2.4 拓扑的灵活性219

7.3 CAM层220

7.3.1 SCSI子系统220

7.3.2 I/O请求通过CAM子系统的路径221

7.4 ATA层222

7.5 配置设备223

7.5.1 识别设备226

7.5.2 自动配置数据结构227

7.5.3 资源管理231

7.6 复习题232

7.7 参考文献233

第8章 本地文件系统234

8.1 文件系统的分层管理234

8.2 inode的结构235

8.2.1 inode格式的变化237

8.2.2 扩展属性238

8.2.3 文件系统的新功能239

8.2.4 文件标志240

8.2.5 动态的inode241

8.2.6 管理inode242

8.3 命名243

8.3.1 目录244

8.3.2 在目录中查找名字245

8.3.3 路径名转换247

8.3.4 链接248

8.4 配额249

8.5 文件上锁252

8.6 软更新256

8.6.1 文件系统中的更新依赖257

8.6.2 依赖关系的数据结构260

8.6.3 跟踪位映射表的依赖关系262

8.6.4 跟踪inode的依赖关系262

8.6.5 跟踪直接块的依赖关系263

8.6.6 跟踪间接块的依赖关系264

8.6.7 跟踪新间接块的依赖关系265

8.6.8 跟踪新目录项的依赖关系266

8.6.9 跟踪新目录的依赖关系267

8.6.10 跟踪删除目录项时的依赖关系269

8.6.11 截短文件269

8.6.12 回收文件和目录的inode节点269

8.6.13 跟踪目录项重命名时的依赖关系270

8.6.14 跟踪删除文件时的依赖关系270

8.6.15 fsync对软更新的要求271

8.6.16 删除文件时对软更新的要求272

8.6.17 fsck对软更新的要求273

8.6.18 软更新的性能274

8.7.1 创建文件系统快照275

8.7 文件系统的快照275

8.7.2 维护文件系统快照277

8.7.3 大型文件系统的快照278

8.7.4 快照性能279

8.7.5 后台fsck281

8.7.6 用户可见的快照281

8.7.7 动态的转储281

8.8 本地文件库282

8.8.1 文件库概述282

8.8.2 用户的文件I/O283

8.9 伯克利快速文件系统285

8.9.1 伯克利快速文件系统的组成286

8.9.2 引导块287

8.9.3 优化存储空间利用率288

8.9.4 读写文件289

8.9.5 布局策略291

8.9.6 分配机制292

8.9.7 将块组成簇295

8.9.8 基于扩展的分配296

8.10 复习题297

8.11 参考文献299

第9章 网络文件系统303

9.1 历史和概述303

9.2 NFS的结构和操作305

9.2.1 NFS协议308

9.2.2 FreeBSD的NFS实现310

9.2.3 客户机/服务器的交互操作313

9.2.4 RPC的传输问题314

9.2.5 安全问题315

9.3 提高性能的技术316

9.3.1 租约318

9.3.2 崩溃恢复321

9.4 复习题322

9.5 参考文献323

第10章 终端处理326

10.1 终端处理模式326

10.2 行规程327

10.3 用户接口328

10.4 tty结构329

10.5 进程组、会话和终端控制331

10.6 C-list331

10.7 RS-232和调制解调器控制332

10.8.1 打开终端333

10.8 终端操作333

10.8.2 输出到行规程334

10.8.3 终端的输出335

10.8.4 终端的输入335

10.8.5 ioctl例程337

10.8.6 调制解调器转换337

10.8.7 关闭终端设备338

10.9 其他行规程338

10.10 复习题339

10.11 参考文献339

第四部分 进程间通信343

第11章 进程间通信343

11.1 进程间通信的模型343

11.2 实现的结构和概述347

11.3 内存管理348

11.3.1 mbuf349

11.3.2 存储管理算法351

11.3.3 mbuf工具例程352

11.4 数据结构353

11.4.1 通信域353

11.4.2 套接口354

11.4.3 套接口地址356

11.4.4 锁357

11.5 建立连接357

11.6 传送数据359

11.6.1 发送数据360

11.6.2 接收数据361

11.7 关闭套接口363

11.8 本地进程间通信364

11.8.1 信号量365

11.8.2 消息队列366

11.8.3 共享内存367

11.9 复习题368

11.10 参考文献369

第12章 网络通信370

12.1 内部结构370

12.1.1 数据流371

12.1.2 通信协议372

12.1.3 网络接口373

12.2 套接口到协议的接口377

12.2.1 协议的用户请求例程378

12.3 协议到协议的接口380

12.2.2 协议的控制输出例程380

12.3.1 pr_output381

12.3.2 pr_input381

12.3.3 pr_ctlinput381

12.4 协议和网络的接口382

12.4.1 发送数据包383

12.4.2 接收数据包383

12.5 路由选择385

12.5.1 内核路由选择表386

12.5.2 路由选择查找388

12.5.3 路由选择重定向390

12.5.4 路由选择表接口391

12.5.5 用户级的路由选择策略392

12.5.6 用户级路由选择接口:路由选择套接口392

12.6.1 协议缓冲策略393

12.6 缓冲和拥塞控制393

12.6.2 队列限制394

12.7 原始套接口394

12.7.1 控制块394

12.7.2 输入处理395

12.7.3 输出处理395

12.8 网络子系统的其他主题395

12.8.1 带外数据395

12.8.2 地址解析协议396

12.9 复习题397

12.10 参考文献398

第13章 网络协议400

13.1 IPv4网络协议400

13.1.1 IPv4地址401

13.1.2 广播地址402

13.1.3 组播403

13.1.4 端口与关联403

13.1.5 协议控制块403

13.2 UDP协议404

13.2.1 初始化405

13.2.2 输出405

13.2.3 输入406

13.2.4 控制操作407

13.3 Internet协议(IP)407

13.3.1 输出408

13.3.2 输入409

13.3.3 转发410

13.4 TCP协议410

13.4.1 TCP连接状态412

13.4.2 序号变量415

13.5 TCP算法416

13.5.1 定时器417

13.5.2 往返时间的估计418

13.5.3 建立连接419

13.5.4 SYN缓存421

13.5.5 关闭连接421

13.6 TCP输入处理422

13.7 TCP输出处理425

13.7.1 发送数据425

13.7.2 避免糊涂窗口综合症426

13.7.3 避免小数据包427

13.7.4 确认延迟和窗口更新427

13.7.6 慢启动428

13.7.5 重发状态428

13.7.7 源拥塞的处理430

13.7.8 缓冲与窗口大小分配430

13.7.9 使用慢启动避免拥塞431

13.7.10 快速重发432

13.8 ICMP协议433

13.9 IPv6434

13.9.1 IPv6地址435

13.9.2 IPv6数据包格式437

13.9.3 套接口API的调整438

13.9.4 自动配置439

13.10 安全442

13.10.1 IPSec概述442

13.10.2 安全协议444

13.10.3 密钥管理446

13.10.4 IPSec实现449

13.10.5 密码子系统451

13.11 复习题452

13.12 参考文献454

第五部分 系统运行461

第14章 启动和关机461

14.1 概述461

14.2 引导462

14.3 初始化内核463

14.4 初始化内核模块464

14.4.1 基本服务465

14.4.2 初始化内核线程466

14.4.3 初始化设备模块467

14.4.4 内核的可加载模块468

14.4.5 启动进程间通信469

14.4.6 启动内核线程470

14.5 用户级初始化470

14.5.1 /sbin/init471

14.5.2 系统的启动脚本471

14.5.3 /usr/libexec/getty472

14.5.4 /usr/bin/login472

14.6 系统运行472

14.6.1 内核的配置472

14.6.2 系统关机与自动重启473

14.6.3 系统调试474

14.6.4 同内核传递信息474

14.7 复习题476

14.8 参考文献476

术语表477

热门推荐