《Linux内核分析与高级教程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:吴国伟,李莹,姚琳编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302286585
  • 页数:338 页
图书介绍:本书深入而全面地论述了嵌入式操作系统的基本原理及应用开发方法。主要内容包括:嵌入式操作系统的基本特征、基于嵌入式操作系统的嵌入式软件基本开发方法和流程、嵌入式软件结构、异常和中断处理方法、定时器和定时器服务、嵌入式软件设计中的常见问题、典型嵌入式操作系统Android的基本构成和应用开发案例。

第1章 Linux内核简介 1

1.1 什么是Linux 1

1.1.1 Linux发展历程 1

1.1.2 常见Linux发行版本 1

1.2 Linux的内核特征 3

1.2.1 接口特色 3

1.2.2 功能特色 4

1.2.3 结构特征 4

1.3 关于Linux内核 4

1.3.1 Linux内核版本 4

1.3.2 Linux内核体系结构 5

1.3.3 单内核与微内核 6

1.4 内核编译方法 7

1.4.1 获取内核代码 7

1.4.2 内核源码的组成 7

1.4.3 编译内核 8

第2章 Linux进程管理 11

2.1 进程描述 11

2.1.1 进程的描述 11

2.1.2 Linux进程描述符 11

2.2 进程的组织形式 18

2.2.1 进程链表 18

2.2.2 哈希链表 19

2.2.3 等待队列 22

2.2.4 当前进程 23

2.3 进程创建 25

2.3.1 概述 25

2.3.2 写时复制 25

2.3.3 fork()、vfork()与clone() 26

2.4 进程终止 30

2.4.1 概述 30

2.4.2 do_exit()函数 30

2.4.3 wait()函数 31

2.5 线程的实现 32

2.5.1 用户线程 32

2.5.2 内核线程 32

2.6 进程使用综合实例 33

2.6.1 问题陈述 33

2.6.2 解决方案 33

第3章 Linux进程调度算法 35

3.1 内核调度概述 35

3.1.1 调度原理 35

3.1.2 Linux调度器发展 36

3.1.3 CFS调度器 38

3.2 与调度相关的数据结构 39

3.2.1 运行队列 39

3.2.2 模块化调度 42

3.2.3 组调度 43

3.3 CFS调度算法 44

3.3.1 进程优先级和虚拟运行时间 44

3.3.2 CFS调度算法的实现 45

3.4 实时调度算法 47

3.4.1 实时调度策略 47

3.4.2 实时调度的具体实现 48

3.5 Linux内核调度 49

3.5.1 schedule() 49

3.5.2 内核抢占 51

3.6 调度相关系统调用 52

第4章 Linux中断机制分析 56

4.1 x86对中断的支持 56

4.1.1 中断向量 56

4.1.2 中断描述符 57

4.1.3 中断描述符的初始化 58

4.2 中断处理程序 64

4.2.1 概述 64

4.2.2 编写中断处理程序 65

4.2.3 中断上下文 66

4.3 中断处理机制的实现 66

4.3.1 中断的硬件处理过程 66

4.3.2 中断处理程序的注册 68

4.3.3 中断的软件处理过程 71

4.4 中断的下半部 75

4.4.1 下半部机制 76

4.4.2 软中断 77

4.4.3 tasklet 81

4.4.4 工作队列 85

第5章 Linux系统调用分析 91

5.1 C程序库和系统调用 91

5.2 系统调用实现分析 91

5.2.1 系统调用的初始化 92

5.2.2 与系统调用相关的数据结构 92

5.2.3 系统调用入口函数 93

5.2.4 系统调用的参数传递 93

5.3 添加系统调用 94

5.4 快速系统调用 95

5.4.1 实现原理 96

5.4.2 实现策略 98

第6章 Linux内核同步机制分析 101

6.1 临界区和竞争条件 101

6.1.1 临界区举例 101

6.1.2 共享队列和加锁 102

6.1.3 确定保护对象 103

6.1.4 并发执行的原因 103

6.2 原子操作 104

6.2.1 原子整数操作 104

6.2.2 原子位操作 107

6.3 自旋锁 108

6.3.1 普通自旋锁 108

6.3.2 读写自旋锁 113

6.4 信号量机制 120

6.4.1 普通信号量 121

6.4.2 读写信号量 125

6.5 RCU同步机制 127

6.5.1 RCU同步机制原理 127

6.5.2 RCU同步机制的实现 128

6.6 其他同步机制 130

6.6.1 每个处理器变量 130

6.6.2 禁止内核抢占 131

6.6.3 BKL 135

第7章 Linux定时器和时间管理机制 136

7.1 内核中的时间概念 136

7.1.1 内核中的时钟 136

7.1.2 节拍率 136

7.1.3 jiffies 137

7.2 时钟中断处理过程 139

7.2.1 时钟中断的初始化 139

7.2.2 时钟中断处理函数 141

7.3 定时器 145

7.3.1 定时器的实现原理 145

7.3.2 定时器的使用 146

7.3.3 定时器的实现过程 148

7.4 内核中的延迟 154

7.4.1 忙等待 155

7.4.2 短延迟 155

7.4.3 schedule_timeout() 156

第8章 Linux模块机制 159

8.1 模块概念 159

8.2 内核模块的使用 160

8.2.1 一个简单的内核模块程序 160

8.2.2 构建模块 161

8.2.3 模块参数 164

8.2.4 内核导出模块符号表 164

8.3 内核模块实现机制分析 165

8.3.1 相关的数据结构 165

8.3.2 内核模块工作机制 168

第9章 内存管理机制 174

9.1 基本机制 174

9.2 物理内存的描述方法 175

9.2.1 内存节点 175

9.2.2 内存区 177

9.2.3 物理页面 181

9.3 物理内存的分配与回收 183

9.3.1 物理页面的请求 183

9.3.2 物理页面的释放 192

9.3.3 伙伴系统 193

9.4 Slub分配器 198

9.4.1 Slub分配器概述 198

9.4.2 Slub分配器的设计 199

9.4.3 相关的数据结构 201

9.4.4 高速缓存的创建与销毁 203

9.4.5 内核对象的分配与释放 210

9.5 进程地址空间 212

9.5.1 内存描述符 212

9.5.2 内存区域 214

9.5.3 页表 216

第10章 Linux文件系统 218

10.1 Linux文件系统基础 218

10.1.1 Linux文件系统 218

10.1.2 文件 219

10.1.3 文件目录和路径 220

10.1.4 磁盘块 221

10.2 Linux虚拟文件系统 221

10.2.1 虚拟文件系统的引入 221

10.2.2 VFS中的对象 222

10.2.3 超级块对象 223

10.2.4 索引节点对象 226

10.2.5 目录项对象 230

10.2.6 文件对象 233

10.2.7 与进程相关的数据结构 236

10.3 文件系统的安装与卸载 237

10.3.1 文件系统的注册 238

10.3.2 文件系统的安装 239

10.3.3 文件系统的卸载 243

10.4 页高速缓存 244

10.4.1 相关数据结构 245

10.4.2 页回写 246

10.5 文件的打开与读写 248

10.5.1 文件的打开与关闭 248

10.5.2 文件的读和写 250

第11章 I/O设备管理 252

11.1 I/O管理机制 252

11.2 块设备管理 255

11.2.1 缓冲区和缓冲区头 255

11.2.2 bio结构体 256

11.2.3 请求队列 256

11.3 驱动程序设计 257

11.3.1 驱动程序框架 257

11.3.2 Linux 2.6驱动程序新特性 261

11.3.3 驱动程序设计实例 262

第12章 Hadoop分布式文件系统 266

12.1 Hadoop框架简介 266

12.2 HDFS——Hadoop分布式文件系统 267

12.2.1 HDFS设计目标 268

12.2.2 HDFS基本架构 268

12.2.3 HDFS的关键技术 270

12.3 HDFS使用 273

12.3.1 访问接口 273

12.3.2 常用特性 275

12.3.3 权限管理 277

12.3.4 命令手册 277

12.4 应用实例——HDFS编译、安装和简单的使用 279

第13章 Linux安全系统 283

13.1 Linux日志系统和审计系统 283

13.1.1 Linux日志系统 283

13.1.2 Linux审计系统 285

13.2 Linux访问控制机制 289

13.2.1 基于ACL的自主访问机制 289

13.2.2 强制访问机制 290

13.3 文件权限管理 291

13.3.1 UGO文件权限管理 291

13.3.2 ACL文件权限管理 293

13.4 内核密钥环 294

13.4.1 密钥和密钥环数据结构 294

13.4.2 密钥环数据操作 296

13.4.3 内核密钥环的管理 296

13.5 应用实例——Linux ACL体验 302

第14章 Linux网络安全 306

14.1 网络安全机制 306

14.1.1 简介 306

14.1.2 安全隐患和基本安全策略 306

14.1.3 Linux网络安全工具 307

14.1.4 Linux 2.6网络安全新功能 309

14.2 防火墙技术 310

14.2.1 什么是防火墙 310

14.2.2 防火墙的种类 311

14.2.3 防火墙配置结构 312

14.3 使用Linux架构包过滤防火墙 314

14.3.1 什么是包过滤 314

14.3.2 工作层次 314

14.3.3 工作原理 315

14.3.4 基本过程 316

14.4 管理工具 316

14.4.1 iptables 317

14.4.2 Netfilter 318

14.5 Linux防火墙程序设计 321

附录A 内核中常见数据结构类型 325

附录B 红黑树 329

附录C 特殊的C语言用法 331

附录D 汇编语法 332

参考文献 338