图书介绍

FREEBSD操作系统设计与实现 第2版 英文版PDF|Epub|txt|kindle电子书版本网盘下载

FREEBSD操作系统设计与实现 第2版 英文版
  • (美)MARSHALL KIRK MCKUSICK,GEORGE V.NEVILLE-NEIL,ROBERT N.M.WATSON著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115413499
  • 出版时间:2016
  • 标注页数:846页
  • 文件大小:134MB
  • 文件页数:881页
  • 主题词:

PDF下载


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

下载说明

FREEBSD操作系统设计与实现 第2版 英文版PDF格式电子书版下载

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

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

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

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

图书目录

第1部分 概述1

第1章 历史和目标3

1.1 UNIX系统的历史3

起源3

研究UNIX4

AT&TUNIX SystemⅢ和System Ⅴ5

伯克利软件分发6

世界上的UNIX7

1.2 BSD和其他系统7

用户社区的影响8

1.3 BSD向开源的过渡9

网络发布210

诉讼11

4.4BSD13

4.4BSD-Lite版本213

1.4 FreeBSD开发模型14

参考文献17

第2章 FreeBSD设计概述21

2.1 FreeBSD组件与内核21

内核22

2.2 内核组织23

2.3 内核服务26

2.4 进程管理26

信号28

进程组和会话29

2.5 安全29

进程凭证31

特权模式31

自由访问控制32

能力模型32

Jail轻型虚拟化32

强制访问控制34

事件审计35

加密和随机数生成器35

2.6 存储管理36

BSD存储管理设计决策36

内核中的存储管理38

2.7 I/O系统概述39

描述符和I/O39

描述符管41

设备42

套接字IPC42

分散-收集I/O43

多文件系统支持43

2.8 设备44

2.9 快速文件系统45

文件存储48

2.10 泽字节文件系统49

2.11 网络文件系统50

2.12 进程间通信50

2.13 网络层协议51

2.14 传输层协议52

2.15 系统启动与关闭52

练习54

参考文献54

第3章 内核服务57

3.1 内核组织57

系统进程57

系统入口58

运行时管理59

内核入口60

从内核返回61

3.2 系统调用62

返回处理机制62

从系统调用返回63

3.3 陷阱和中断64

I/O设备中断64

软件中断65

3.4 时钟中断65

统计和进程调度机制66

超时67

3.5 存储管理服务69

3.6 计时服务73

实时73

外部表示73

时间调整74

间隔时间74

3.7 资源服务75

进程优先级75

资源利用75

资源限制76

文件系统配额77

3.8 内核跟踪组件77

系统调用跟踪77

DTrace78

内核跟踪82

练习84

参考文献85

第Ⅱ部分 进程87

第4章 进程管理89

4.1 进程管理简介89

多程序设计90

调度机制91

4.2 进程状态92

进程架构94

线程架构98

4.3 上下文切换99

线程状态100

低层上下文切换100

自愿上下文切换101

同步106

互斥同步107

互斥接口109

锁同步110

死锁预防112

4.4 线程调度机制114

低层调度器114

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

分时线程调度117

多处理器调度122

自适应空闲125

传统的分时线程调度125

4.5 创建进程126

4.6 终止进程128

4.7 信号129

发出信号132

传输信号135

4.8 进程组和会话136

进程组137

会话138

作业控制139

4.9 进程调试142

练习144

参考文献146

第5章 安全147

5.1 操作系统安全148

5.2 安全模型149

进程模型149

自由和强制访问控制150

受信计算基(TCB)151

其他内核安全特性151

5.3 进程凭证151

凭证架构152

凭证存储模型153

访问控制校验153

5.4 用户和组154

Setuid和 Setgid 二进制155

5.5 特权模型157

隐式特权157

显式特权157

5.6 进程间访问控制159

可见性160

信号160

调度控制160

等待进程终止161

调试161

5.7 自由访问控制161

虚拟文件系统接口和DAC162

对象属主和组163

UNIX权限164

访问控制列表(ACL)165

POSIX.1 e访问控制列表168

NFSv4访问控制列表171

5.8 Capsicum能力模型174

Capsicum应用架构175

能力系统176

能力177

能力模型179

5.9 Jail180

5.10 强制访问控制框架184

强制策略186

设计原则指导187

MAC框架的架构188

启动框架189

策略注册190

框架入口点设计考量191

策略入口点考量192

内核服务入口点调用193

策略组成194

给对象打标签195

标签生命周期和存储管理196

标签同步199

从用户空间进行策略无关的标签管理199

5.11 安全事件审计200

审计事件和记录201

BSM审计记录和审计跟踪202

内核审计的实施203

5.12 加密服务206

加密框架206

随机数生成器208

5.13 GELI全磁盘加密212

保密性和完整性保护212

密钥管理213

启动GELI214

加密块保护215

I/O模型216

限制216

练习217

参考文献217

第6章 存储管理221

6.1 术语221

进程和存储222

分页223

替换算法224

工作集模型225

交换225

虚拟存储的优势225

虚拟存储的硬件需求226

6.2 FreeBSD虚拟存储系统概述227

用户地址空间管理228

6.3 内核存储管理230

内核映射和子映射231

内核地址空间分配233

Slab分配器236

Keg分配器238

Zone分配器239

Malloc内核241

内核Zone分配器243

6.4 每进程资源244

FreeBSD进程虚拟地址空间245

页面故障调度245

映射到Vm_objects247

Vm_objects249

Vm_object到页面249

6.5 共享存储250

Mmap模型251

共享映射253

私有映射254

阴影链的崩溃257

私有快照258

6.6 创建一个新的进程258

预留内核资源259

用户地址空间的重复260

不使用复制的方式来创建新的进程261

6.7 执行文件262

6.8 进程以及地址空间的操作263

改变进程的大小263

文件映射264

改变保护266

6.9 终止进程266

6.10 分页器接口267

Vnode分页器269

设备分页器270

物理存储分页器272

交换分页器272

6.11 分页机制276

硬件缓存设计280

硬件存储管理282

超级页面284

6.12 页面替换289

分页参数291

分页守护进程292

交换295

进程内的交换296

6.13 可移植性298

pmap模块的角色299

初始化和启动301

映射分配和释放304

更改映射的访问和布线属性306

物理页面使用信息的维护307

物理页面的初始化308

内部数据结构的管理308

练习308

参考文献310

第Ⅲ部分 I/O系统313

第7章 I/O系统概述315

7.1 描述符管理和服务316

开放文件入口318

描述符管理319

异步I/O321

文件描述符锁定322

描述符上的多路复用I/O324

Select的实现327

Kqueues和Kevents329

数据在内核中的移动332

7.2 本地进程间通信333

信号量335

消息队列337

共享存储338

7.3 虚拟文件系统接口339

Vnode的内容339

Vnode的操作342

路径名的转换342

导出文件系统服务343

7.4 独立于文件系统的服务344

名称缓存346

缓冲管理347

缓冲管理的实现350

7.5 可堆叠的文件系统352

简单的文件系统层354

联合文件系统355

其他文件系统357

练习358

参考文献359

第8章 设备361

8.1 设备概述361

PC I/O架构362

FreeBSD海量存储I/O子系统的架构364

设备命名和访问366

8.2 从用户到设备的I/O映射367

设备驱动368

I/O队列机制369

中断处理370

8.3 字符设备370

原始设备和物理I/O372

面向字符的设备373

字符设备驱动的入口点373

8.4 磁盘设备374

磁盘设备驱动的入口点374

磁盘I/O 请求的排序375

磁盘卷标376

8.5 网络设备378

网络驱动的入口点378

配置和控制379

接收数据包380

传输数据包381

8.6 终端处理382

终端进程模型383

用户接口385

进程组、会话和终端控制387

终端的操作388

终端输出(上半部分)388

终端输出(下半部分)389

终端输入390

关闭终端设备391

8.7 GEOM层391

术语和拓扑规则392

更改拓扑393

操作396

拓扑的灵活性397

8.8 CAM层399

通过CAM子系统的SSCI I/O请求路径400

ATA磁盘402

8.9 设备配置402

设备识别405

自动配置数据结构407

资源管理412

8.10 设备虚拟化414

与Hypervisor进行交互414

Virtio415

Xen419

设备直通427

练习428

参考文献429

第9章 快速文件系统431

9.1 分层的文件系统管理431

9.2 Inode的架构433

更改Inode格式435

扩展属性436

新的文件系统能力438

文件标记439

动态Inode441

Inode管理442

9.3 命名443

目录444

在目录中查找名字446

路径名转换447

链接449

9.4 配额451

9.5 文件锁定454

9.6 软更新459

在文件系统中更新依赖460

依赖的架构464

位图依赖跟踪466

Inode依赖跟踪467

直接块依赖跟踪469

间接块依赖跟踪470

新间接块的依赖跟踪471

新目录入口的依赖跟踪472

新的目录依赖跟踪474

目录入口移除依赖跟踪475

文件截断476

文件和目录Inode复垦476

目录入口重命名依赖跟踪476

软更新的Fsync请求477

软更新的文件移除需求478

fsck的软更新需求480

9.7 文件系统快照480

创建一个文件系统快照481

维护一个文件系统快照483

大型文件系统快照484

fsck的背景知识486

用户可见的快照487

实时转储487

9.8 记录软更新487

背景和简介487

与其他实现的兼容488

记录的格式488

需要进行记录的修改489

与记录相关的额外需求490

恢复进程492

性能493

后续工作494

跟踪文件移除依赖495

9.9 本地文件存储496

文件存储概述497

用户对文件的I/O499

9.10 伯克利快速文件系统501

伯克利快速文件系统的组织502

引导块503

存储利用的优化504

读写文件505

布局策略507

分配机制510

块聚类514

基于分区的分配516

练习517

参考文献519

第10章 泽字节文件系统523

10.1 简介523

10.2 ZFS的组织527

ZFS Dnode528

ZFS块指针529

ZFS objset架构531

10.3 ZFS架构532

MOS层533

对象集层534

10.4 ZFS操作535

将新的数据写入磁盘536

记录日志538

RAIDZ540

快照542

ZFS块分配542

释放块543

删除重复数据545

远程复制546

ZFS设计权衡547

练习549

参考文献549

第11章 网络文件系统551

11.1 概述551

11.2 架构和操作553

FreeBSD FNS 的实现558

客户端与服务器的交互562

安全问题564

用于提升性能的技术565

11.3 NFS的演进567

名称空间572

属性572

访问控制列表574

缓存、委派和回调574

锁定581

安全583

崩溃恢复584

练习586

参考文献587

第Ⅳ部分 进程间通信591

第12章 进程间通信593

12.1 进程间通信模型593

使用套接字596

12.2 实现架构和概述599

12.3 存储管理601

Mbufs601

存储管理算法605

Mbuf实用例程606

12.4 IPC数据结构606

套接字地址611

锁612

12.5 连接建立612

12.6 数据传输615

传输数据616

接收数据617

12.7 关闭套接字620

12.8 网络通信协议内部架构621

数据流623

通信协议624

12.9 套接字与协议之间的接口626

协议用户请求例程627

协议控制输出例程630

12.10 协议与协议的接口631

pr_output632

pr_input632

pr_ctlinput633

12.11 协议与网路的接口634

网络接口与链路层协议634

数据包传输641

数据包接收642

12.12 缓冲和流控制643

协议缓冲策略643

队列限制643

12.13 网络虚拟化644

练习646

参考文献648

第13章 网络层协议649

13.1 IPv4650

IPv4地址652

广播地址653

Internet多播654

链路层地址解析655

13.2 Internet控制消息协议(ICMP)657

13.3 IPv6659

IPv6地址660

IPv6数据包格式662

更改套接字API664

自动配置666

13.4 IP代码结构670

输出671

输入673

转发674

13.5 路由675

内核路由表677

路由查找680

路由重定向683

路由表接口683

用户级路由策略684

用户级路由接口:路由套接字685

13.6 原始套接字686

控制块686

输入处理687

输出处理687

13.7 安全688

IPSec概述689

安全协议690

密钥管理693

IPSec实施698

13.8 数据包处理框架700

伯克利数据包过滤器700

IP防火墙701

IPFW和Dummynet702

数据包过滤器(PF)706

Netgraph707

Netmap712

练习715

参考文献717

第14章 传输层协议721

14.1 Internet端口和关联721

协议控制块722

14.2 用户数据报协议(UDP)723

初始化723

输出724

输入724

控制操作725

14.3 传输控制协议(TCP)725

TCP连接状态727

序列变量730

14.4 TCP算法732

计时器733

估算往返时间735

连接建立736

SYN缓存739

SYN Cookie739

连接关闭740

14.5 TCP输入处理741

14.6 TCP输出处理745

发送数据746

避免笨窗口综合征746

避免小数据包747

延迟确认和窗口更新748

选择性确认749

重传状态751

慢启动752

缓存和窗口大小754

带有慢启动的拥塞避免755

快速重传756

模块化拥塞控制758

Vegas算法759

Cubic算法760

14.7 流控传输协议(SCTP)761

大数据块762

关联建立762

数据传输764

关联关闭766

多宿主和心跳767

练习768

参考文献770

第Ⅴ部分 系统操作773

第15章 系统启动和关闭775

15.1 固件和BIOS776

15.2 引导加载程序777

主引导记录和全局唯一标识分区表778

二级引导加载程序:gptboot779

末级引导加载程序:/boot/loader779

在嵌入式平台上引导加载781

15.3 内核引导782

启动汇编语言783

启动特定于平台的C 语言784

模块化内核设计785

模块初始化785

基本的内核服务787

内核线程初始化792

设备模块初始化794

可加载的内核模块796

15.4 用户级初始化798

/sbin/init798

系统启动脚本798

/usr/libexec/getty799

/usr/bin/login799

15.5 系统操作800

内核配置800

关闭和自动重启系统801

系统调试802

信息在内核中的传递803

练习805

参考文献806

术语表807

热门推荐