标题：Linux内核分析与高级教程
图书信息
作者：吴国伟 李莹 姚琳 [1]  
定价：34.5元
印次：1-1
装帧：平装
印刷日期：2012-8-13
图书简介
本书主要分析了Linux（2.6.38）版本的内核源代码，向读者系统而详尽地介绍和分析了Linux内核各个子系统的结构、原理及Hadoop分布式文件系统、Linux安全子系统和Linux的网络安全问题。全书分为14章，内容包括Linux内核简介、进程管理、进程调度算法、中断机制、系统调用、内存管理、文件系统、I/O设备管理、内核安全、Hadoop分布式文件系统、Linux安全子系统和Linux的网络安全问题等。
本书内容丰富，概念和原理讲解细致，深入浅出。其中，有关代码的部分都标有注释详细介绍功能，书中的设计和分析也配以编程实例帮助理解。书中的每一章都相对独立，兼顾了通用性和系统性，覆盖了许多方面的内容。
本书主要针对从事Linux内核编程的中高级读者及软件工程师学习内核工作原理的自学参考书籍，也适合作为高校计算机专业学生学习操作系统课程的辅助和实践教材。
前言
Linux是于1991年发展起来的基于GPL类似UNIX的操作系统，是一个完全免费、开放、跨平台的操作系统。随着Linux内核的日益完善，无论是庞大的数据中心，还是灵活方便的嵌入式设备，Linux的使用越来越受到开发商的青睐。
学习Linux的关键在于对内核的理解和把握，而现有Linux操作系统教材，有的偏重于结构、原理的阐述，比较抽象，学生难以掌握和应用； 有的侧重阐述Linux内核部分特征与编程技术，缺少Linux操作系统全面而系统的原理和实践应用，读者难以举一反三。据此，编者精心组织编写了本书，以利于教学和应用。
内容安排上，全书共分14章，从Linux操作系统的简介入手，基于Linux内核2.6.30版本具体而全面地阐述了其组成结构，并深入分析各个模块的工作策略和实现机制。重点阐述了Linux操作系统的进程管理、中断和异常的处理、定时服务、内核模块机制安全问题等。并在其基本的文件系统讲解的基础上，列举了Hadoop分布式文件系统的原理和实际应用来帮助读者拓展对于Linux文件系统的认识。
叙述方法上，各章首先介绍了相应子系统的基本工作原理，然后从内核源码的角度进一步讲述实施细节，最后通过实例设计来阐述相应的实践应用，这种叙述方法最大限度地使读者易于掌握Linux操作系统原理及其程序计。此外，本书的案例结合作者多年科研实践的项目总结，具有很强的代表性和实用性。
书的出版得到教育部特色专业建设支持，Intel教育部精品课程建设和大连理工大学精品课程建设支持。感谢大连理大学软件学院领导对本书出版的关怀和支持； 同时，本书的出版也得到了清华大学出版社的大力支持
，对表示衷心的感谢！
伴随着联网的发展，Linux操作系统的相应技术也在不断发展，由于作者学疏才浅，书中错误在所难免，敬请读者批评指。
图书目录第1章Linux内核简介
1.1什么是Linux
1.1.1Linux发展历程
1.1.2常见Linux发行版本
1.2Linux的内核特征
1.2.1接口特色
1.2.2功能特色
1.2.3结构特征
1.3关于Linux内核
1.3.1Linux内核版本
1.3.2Linux内核体系结构
1.3.3单内核与微内核
1.4内核编译方法
1.4.1获取内核代码
1.4.2内核源码的组成
1.4.3编译内核
第2章Linux进程管理
2.1进程描述
2.1.1进程的描述
2.1.2Linux进程描述符
2.2进程的组织形式
2.2.1进程链表
2.2.2哈希链表
2.2.3等待队列
2.2.4当前进程
2.3进程创建
2.3.1概述
2.3.2写时复制
2.3.3fork()、vfork()与clone()
2.4进程终止
2.4.1概述
2.4.2do_exit()函数
2.4.3wait()函数
2.5线程的实现
2.5.1用户线
2.5.2内核线程
2.6进程使用综合实例
2.6.1问题陈
2.6.2解决方案
第3章Linux进程调度算法
3.1内核调度概述
3.1.1调度原
3.1.2Linux调度器发
3.1.3CFS调度器
3.2与调度相关的数据结构
3.2.1运行队列
3.2.2模块化调度
3.2.3组调度
3.3CFS调度算法
3.3.1进程优先级和虚拟运行时间
3.3.2CFS调度算法的实现
3.4实时调度算法
3.4.1实时调度策略
3.4.2实时调度的具体实现
3.5Linux内核调度
3.5.1schedule()
3.5.2内核抢占
3.6调度相关系统调用
第4章Linux中断机制分析
4.1x86对中断的支持
4.1.1中断向量
4.1.2中断描述符
4.1.3中断描述符的初始化
4.2中断处理程序
4.2.1概述
4.2.2编写中断处理程序4.2.3中断上下文
4.3中断处理机制的实现
4.3.1中断的硬件处理过
4.3.2中断处理程序的注册
4.3.3中断的软件处理过程
4.4中断的下半部
4.4.1下半部机制
4.4.2软中断
4.4.3tasklet
4.4.4工作队列
第5章Linux系统调用分
5.1C程序库和系统调用
5.2系统调用实现分析
5.2.1系统调用的初
5.2.2与系统调用相关的数据结构
5.2.3系统调用入口函数
5.2.4系统调用的参数传递
5.3添加系统调用
5.4快速系统调用5.4.1实现原理
5.4.2实现策略
第6章Linux内核同步机制分析
6.1临界区和竞争条件
6.1.1临界区举例
6.1.2共享队列和加锁
6.1.3确定保护对象
6.1.4并发执行的原因
6.2原子操作
6.2.1原子整数操作
6.2.2原子位操作6.3自旋锁
6.3.1普通自旋锁
6.3.2读写自旋锁
6.4信号量机制
6.4.1普通信号量
6.4.2读写信号量
6.5RCU同步机制
6.5.1RCU同步机制原理
6.5.2RCU同步机制的实现
6.6其他同步机制
6.6.1每个处理器变量
6.6.2禁止内核抢占
6.6.3BKL
第7章Linux定时器和时间管理机制
7.1内核中的时间概念
7.1.1内核中的时钟
7.1.2节拍率
7.1.3jiffies
7.2时钟中断处理过程
7.2.1时钟中断的初始化
7.2.2时钟中断处理函数
7.3定时器
7.3.1定时器的实现原理
7.3.2定时器的使用
7.3.3定时器的实现过程
7.4内核中的延迟
7.4.1忙等待
7.4.2短延迟
7.4.3schedule_timeout()
第8章Linux模块机制
8.1模块概念
8.2内核模块的使用
8.2.1一个简单的内核模块程序
8.2.2构建模块
8.2.3模块参数
8.2.4内核导出模块符号表
8.3内核模块实现机制分析
8.3.1相关的数据结构
8.3.2内核模块工作机制
第9章内存管理机
9.1基本机制
9.2物理内存的描述方法
9.2.1内存节点
9.2.2内存区
9.2.3物理页
9.3物理内存的分配与回收
9.3.1物理页面的请求
9.3.2物理页面的释放
9.3.3伙伴系统
9.4Slub分配器
9.4.1Slub分配器概述
9.4.2Slub分配器的设计
9.4.3相关的数据结构
9.4.4高速缓存的创建与销毁
9.4.5内核对象的分配与释放
9.5进程地址空间
9.5.1内存描述符
9.5.2内存区域
9.5.3页表
第10章Linux文件系统
10.1Linux文件系统基础
10.1.1Linux文件系统
10.1.2文件
10.1.3文件目录和路径
10.1.4磁盘块
10.2Linux虚拟文件系统
10.2.1虚拟文件系统的引入
10.2.2VFS中的对象
10.2.3超级块对象
10.2.4索引节点对象
10.2.5目录项对象
10.2.6文件对象
10.2.7与进程相关的数据结构
10.3文件系统的安装与卸载
10.3.1文件系统的注册
10.3.2文件系统的安装
10.3.3文件系统的卸载
10.4页高速缓存
10.4.1相关数据结构
10.4.2页回写
10.5文件的打开与读写
10.5.1文件的打开与关闭
10.5.2文件的读和写
第11章I/O设备管理
11.1I/O管理机制
11.2块设备管理
11.2.1缓冲区和缓冲区头
11.2.2bio结构体
11.2.3请求队列
11.3驱动程序设计
11.3.1驱动程序框架
11.3.2Linux 2.6驱动程序新特性
11.3.3驱动程序设计实例
第12章Hadoop分布式文件系统
12.1Hadoop框架简介
12.2HDFS——Hadoop分布式文件系统
12.2.1HDFS设计目标
12.2.2HDFS基本架构
12.2.3HDFS的关键技术
12.3HDFS使用
12.3.1访问接口
12.3.2常用特性
12.3.3权限管理
12.3.4命令手册
12.4应用实例——HDFS编译、安装和简单的使用
第13章Linux安全系统
13.1Linux日志系统和审计系统
13.1.1Linux日志系统
13.1.2Linux审计系统
13.2Linux访问控制机制
13.2.1基于ACL的自主访问机制
13.2.2强制访问机制
13.3文件权限管理
13.3.1UGO文件权限管理
13.3.2ACL文件权限管理
13.4内核密钥
13.4.1密钥和密钥环数据结构
13.4.2密钥环数据操作
13.4.3内核密钥环的管理
13.5应用实例——Linux ACL体验
第14章Linux网络安全
14.1网络安全机制
14.1.1简介
14.1.2安全隐患和基本安全策略
14.1.3Linux网络安全工具
14.1.4Linux 2.6网络安全新功能
14.2防火墙技术
14.2.1什么是防火墙
14.2.2防火墙的种类
14.2.3防火墙配置结构
14.3使用Linux架构包过滤防火墙
14.3.1什么是包过滤
14.3.2工作层次
14.3.3工作原理
14.3.4基本过程
14.4管理工具
14.4.1iptables
14.4.2Netfilte
14.5Liux防火墙程序设
附录A内核中常见数据结构类型
附录B红黑树
附录C特殊的C语言用法
附录D汇编语法
参考文献