第1章 Linux组成结构 1
1.1 Linux内核结构 1
1.1.1 中断处理 2
1.1.2 进程管理 4
1.1.3 内存管理 13
1.1.4 文件系统 18
1.1.5 网络协议 23
1.2 Linux应用程序接口 26
1.2.1 进程管理函数 27
1.2.2 进程间通信函数 29
1.2.3 网络操作函数 30
1.2.4 设备管理函数 31
1.2.5 未封装的系统调用函数 32
1.2.6 执行Shell命令的函数 32
1.3 Linux应用程序 32
第2章 Linux常规安全机制 37
2.1 身份认证 37
2.1.1 认证过程 38
2.1.2 认证框架 38
2.2 访问控制 42
2.2.1 基于UID的访问控制 42
2.2.2 基于权能的访问控制 43
2.2.3 基于LSM的访问控制 44
2.3 防火墙 48
2.4 数据变换 51
2.4.1 算法管理框架 52
2.4.2 算法操作接口 55
2.4.3 加密通信 56
2.4.4 加密存储 62
2.5 随机化 68
2.6 虚拟化 70
第3章 名字空间 73
3.1 名字空间管理结构 73
3.2 名字空间管理文件 79
3.3 名字空间管理命令 81
3.4 名字空间管理函数 84
3.4.1 clone() 84
3.4.2 unshare() 87
3.4.3 setns() 90
第4章 USER名字空间 95
4.1 UID和GID 95
4.2 进程权能 100
4.3 USER名字空间结构 104
4.4 进程证书 108
4.5 USER名字空间接口文件 115
第5章 UTS名字空间 122
5.1 基本系统信息 122
5.2 UTS名字空间结构 124
5.3 UTS名字空间接口文件 127
第6章 MNT名字空间 130
6.1 目录树 130
6.2 安装树 135
6.3 共享子树 140
6.4 MNT名字空间结构 144
6.5 路径名 152
6.6 MNT名字空间接口文件 157
6.7 Overlay文件系统 157
第7章 PID名字空间 161
7.1 进程ID 161
7.2 PID名字空间结构 167
7.3 进程pid结构 170
7.4 PID名字空间接口文件 175
7.5 PID名字空间中的进程 181
第8章 IPC名字空间 192
8.1 System Ⅴ的IPC机制 192
8.1.1 信号量集 194
8.1.2 消息队列 200
8.1.3 共享内存 203
8.2 POSIX的IPC机制 207
8.3 IPC名字空间结构 210
8.4 IPC名字空间接口文件 217
第9章 NET名字空间 219
9.1 网络协议栈 219
9.2 协议栈管理参数 225
9.3 协议栈管理命令 229
9.4 防火墙管理命令 241
9.5 NET名字空间结构 246
9.6 NET名字空间管理命令 255
9.7 NET名字空间接口文件 259
第10章 CGROUP名字空间 263
10.1 进程与资源 263
10.2 控制群树与限定树 266
10.3 进程与控制群 274
10.4 资源子系统 280
10.5 CGROUP名字空间结构 294
第11章 基于名字空间的程序示例 300
11.1 名字空间的安全特性 300
11.2 基于名字空间的动态服务程序框架 303
11.3 程序示例 307
参考文献 322