第一部分 Linux操作环境第1章 Linux基础 1
1.1 登录和退出 1
1.2 Linx的shell 4
1.3 shell的一些基本命令 9
第2章 文本编辑 20
2.1 vi文本编辑器 20
2.2 emacs文本编辑器 25
第3章 Linux文件系统操作 29
3.1 文件类型 29
3.2 文件系统目录结构 31
3.3 目录操作的基本命令 35
3.4 文件操作的基本命令 39
3.5 显示字符串echo 46
3.6 命令行中使用扩展符 46
第4章 文件权限与文件共享 52
4.1 存取权限 52
4.2 改变文件的存取权限 55
4.3 特殊权限位SUID、SGID、Sticky 57
4.4 硬链接 58
4.5 符号链接 60
第5章 文件管理工具 63
5.1 正则表达式 63
5.2 排序文件 65
5.3 查找文件 66
5.4 搜索文件内容 68
5.5 命令记录 69
5.6 压缩文件、解压缩文件与打包文件 70
5.7 RPM包管理 72
第6章 Linux进程、管道和重定向 75
6.1 进程的属性 76
6.2 进程的终止 78
6.3 进程和作业控制 79
6.4 命令行中使用操作符 82
6.5 Linux系统启动和进程层次结构 83
6.6 系统启动和关机 84
6.7 输入、输出重定向 85
6.8 使用文件描述符 86
6.9 输入和输出重定向的组合使用 86
6.10 管道(pipe) 87
第7章 C语言开发工具 90
7.1 编写程序的工具 90
7.2 编译C语言程序 92
7.3 make工具 96
7.4 gdb调试工具 100
第8章 Bourn Again Shell编程 106
8.1 bash脚本的建立和运行 107
8.2 shell的变量 108
8.3 shell脚本位置参数的传递 113
8.4 控制结构语句 115
8.5 其他几个有用的语句 123
8.6 数值处理 126
8.7 数组 130
8.8 函数 131
8.9 here文档 134
8.10 exec命令 136
8.11 trap命令 139
8.12 调试脚本程序 141
第二部分 Linux内核分析与实践第9章 编译Linux内核 143
9.1 Linux内核 143
9.2 查找并且下载一份内核源代码 146
9.3 部署内核源代码 147
9.4 配置内核 147
9.5 编译内核和模块 148
9.6 了解Linux内核的启动 149
9.7 应用grub配置启动文件 151
9.8 编写制作Linux启动盘的shell脚本程序 153
9.9 Linux源程序的目录分布 156
9.10 学习Linux的常用工具 159
9.11 查看Linux内核状况 162
9.12 编程序检查系统状况 163
9.13 Linux编程环境 167
第10章 系统调用 174
10.1 一个简单的例子 174
10.2 系统调用基础知识 175
第11章 进程创建 211
11.1 进程是什么 211
11.2 进程的产生 229
11.3 进程的消亡/退出 262
11.4 实验一:用fork()系统调用 264
11.5 实验二:使用clone()系统调用 266
11.6 实验三:使用kernel thread 269
第12章 /proc文件系统 279
12.1 /proc文件系统 279
12.2 现有proc文件系统中各个文件的含义 280
12.3 怎样使用/proc文件系统 285
12.4 seq__file 289
12.5 proc文件系统的内部实现机制 293
12.6 实验一:使用proc文件系统的一个简单例子 325
12.7 实验二:利用/proc文件系统显示缺页状态 330
12.8 实验三:seq__file使用例子 330
第13章 内核模块 337
13.1 什么是内核模块 337
13.2 模块实现机制 340
13.3 使用内核模块 350
13.4 实例 352
第14章 内存管理 356
14.1 虚拟内存管理 356
14.2 Linux虚拟内存管理 363
14.3 实例 391
14.4 综合实验的原理 394
14.5 综合实验的实施 395
第15章 内核时钟与定时器 400
15.1 关于时钟和定时器 400
15.2 Linux系统时钟 405
15.3 Linux系统定时器 421
15.4 时钟命令 432
15.5 实验一:一个应用定时器的简单例子 435
15.6 实验二:统计关于进程的时间 437
15.7 实验三:更进一步的进程时间统计 440
第16章 共享内存 450
16.1 进程间通信和共享内存 450
16.2 共享内存的API 452
16.3 共享内存在Linux中的实现 463
第17章 同步机制 494
17.1 同步机制 494
17.2 Linux中几种同步机制的实现 508
17.3 设计我们自己的同步机制 553
第18章 文件系统 561
18.1 文件系统基本概念 561
18.2 文件系统的抽象 565
18.3 VFS文件系统 566
18.4 ext2文件系统 600
18.5 对文件的操作 608
18.6 块读写与页缓存 624
18.7 本章总结 632
18.8 实验:添加一个文件系统 632
18.9 附录:优秀的日志文件系统——ext3 648