第1部分 Linux操作系统 3
第1章 操作系统概述 3
1.1 操作系统简介 3
1.1.1 操作系统概念 3
1.1.2 操作系统发展简介 4
1.2 操作系统接口 6
1.2.1 程序员级接口 6
1.2.2 用户级接口 6
1.3 操作系统功能 7
1.3.1 处理机管理 7
1.3.2 存储管理 7
1.3.3 设备管理 7
1.3.4 文件系统 8
1.3.5 网络管理 8
1.4 操作系统结构 8
1.4.2 操作系统的体系结构 9
1.4.1 操作系统的逻辑结构 9
1.5 Linux操作系统介绍 11
1.5.1 Linux——自由操作系统 11
1.5.2 UNIX、GNU与Linux 12
1.6 Linux的内核特征 16
1.6.1 接口特色 16
1.6.2 功能特色 17
1.6.3 结构特征 17
1.7.1 开发模式 18
1.7 Linux的发展及展望 18
1.7.2 内核版本 19
1.7.3 国内应用状况 19
1.7.4 发展方向 20
1.8 小结 21
习题 22
第2章 处理机管理 23
2.1 作业 23
2.2.1 进程的概念 24
2.2 进程 24
2.2.2 进程描述 26
2.2.3 进程状态及转换 28
2.2.4 进程控制 31
2.2.5 进程约束 32
2.2.6 进程通信 33
2.2.7 死锁 35
2.3.1 线程的概念 36
2.3 线程 36
2.3.2 线程和进程 37
2.3.3 Linux系统的线程 37
2.4 小结 38
习题 38
第3章 存储管理 40
3.1 虚拟存储器 40
3.1.1 局部性原理 40
3.2.1 页 41
3.2 内存管理方式 41
3.1.2 虚拟地址和虚拟地址空间 41
3.2.2 段 43
3.2.3 段页 43
3.3 80386段页机制 44
3.3.1 实模式与保护模式 44
3.3.2 地址空间 44
3.4 Linux存储管理 45
3.4.1 段页设置 45
3.4.2 地址映射 46
3.4.3 共享与保护 47
3.4.4 分配与回收 49
3.5 小结 51
习题 52
第4章 调度 53
4.1 调度的层次 53
4.2 Linux交换调度 54
4.2.1 交换空间 55
4.2.2 进程的内存组织 55
4.2.3 换入 56
4.2.4 换出 57
4.3 Linux进程调度 59
4.3.1 初始化过程及进程树 59
4.3.2 进程的组织 60
4.3.3 进程调度时机 61
4.3.4 进程调度算法 62
4.3.5 进程调度过程 63
4.4 小结 65
习题 66
第5章 设备 67
5.1 设备介绍 67
5.1.1 设备分类 68
5.1.2 设备实例——磁盘 68
5.2 数据传输 69
5.2.1 数据传输控制方式 69
5.2.2 数据传输关键技术 71
5.3.1 Linux系统I/O软件层次结构 72
5.3 I/O软件原理 72
5.3.2 Linux设备驱动程序 74
5.4 小结 75
习题 76
第6章 文件系统 77
6.1 文件系统概述 77
6.2 文件管理 78
6.2.1 文件 78
6.2.2 文件结构 79
6.2.3 Linux文件 82
6.3 目录 83
6.3.1 目录结构 83
6.3.2 访问权限 84
6.3.3 Linux目录分布 88
6.3.4 Linux目录文件 89
6.3.5 特殊目录 89
6.4.1 Ext2文件系统 92
6.4 逻辑文件系统——Ext2 92
6.4.2 基本数据结构 93
6.4.3 存储空间管理 94
6.5 虚拟文件系统——VFS 96
6.5.1 基本数据结构 97
6.5.2 文件系统管理 98
6.5.3 VFS和进程的接口 100
6.5.4 缓冲区管理 102
6.6 小结 105
习题 106
第2部分 操作系统命令及shell编程 109
第7章 Linux基本命令 109
7.1 Linux的登录和退出 109
7.2 文件命令 111
7.3 目录和层次命令 113
7.4 查找命令 115
7.5 目录和文件安全性 116
7.6 磁盘存储命令 118
7.7 进程命令 119
7.8 联机帮助命令 119
7.9 小结 120
习题 120
第8章 使用vi编辑文件 121
8.1 vi的启动与退出 121
8.2 vi的两种模式 122
8.3 基本vi命令 123
8.4 使用vi查找和替换 124
8.5 编辑多个文件 125
8.6 小结 125
习题 126
第9章 shell编程 127
9.1 shell概述 127
9.1.1 什么是shell 127
9.1.2 shell程序语言的特点 127
9.1.3 shell的版本 127
9.2.2 使用保留字和元字符 128
9.2 shell的基本功能 128
9.2.1 程序的运行 128
9.2.3 变量、文件名的替换 129
9.2.4 输入输出重定向(改向) 130
9.2.5 运行环境的控制 130
9.2.6 支持shell的编程 130
9.3.2 命令的查询 131
9.3.3 shell常用的命令 131
9.3.1 shell的启动 131
9.3 shell启动及其命令 131
9.3.4 shell的内部命令 132
9.4 shell命令的集成 132
9.4.1 元字符和文件名生成 132
9.4.2 管道和命令表 133
9.4.3 命令组合 133
9.4.4 命令替换 134
9.4.5 输入、输出重定向 134
9.5.2 用户自定义变量 135
9.5 shell变量 135
9.5.1 shell变量描述 135
9.5.3 位置变量 137
9.5.4 环境变量 138
9.5.5 预定义的特殊变量 138
9.5.6 变量替换 138
9.5.7 特殊字符的引用 139
9.6 shell的控制结构 141
9.6.1 条件与test命令 141
9.6.2 if结构 145
9.6.3 case结构 146
9.6.4 for结构 147
9.6.5 while结构 147
9.6.6 until结构 147
9.6.7 循环体中其他命令 147
9.6.8 函数的定义和使用 148
9.7.1 局部变量 149
9.7 shell的运行环境 149
9.7.2 全局变量 150
9.7.3 局部变量和全局变量作用域 151
9.7.4 程序调试 151
9.7.5 shell程序的应用 153
9.8 shell应用实例 154
9.9 小结 158
习题 158
第3部分 系统管理 163
第10章 Linux系统软件的获取和安装 163
10.1 硬件需求 163
10.2 Linux上可用的软件 163
10.3 Linux系统软件的获取途径 164
10.4 Linux的安装 164
10.5 软件包及模块的安装与加载 166
10.6 配置与创建内核 168
10.7.1 系统引导程序LILO 169
10.7 系统的引导与关闭 169
10.7.2 系统启动与关闭的相关脚本与命令 170
10.8 XLinux的安装示范 171
10.8.1 安装前的准备工作和安装 171
10.8.2 安装后的设置 176
10.9 小结 177
习题 177
11.1 了解账号管理 178
第11章 账号管理 178
11.2 Linux系统中的归属关系模式 179
11.3 超级用户 180
11.3.1 root的权威性和危险性 180
11.3.2 root的登录方式 180
11.3.3 与root环境变量相关的脚本文件 181
11.4 其他特殊用户 182
11.5 普通用户 182
11.5.1 增加普通用户 182
11.5.2 设置用户口令 182
11.5.3 删除用户 183
11.5.4 禁用用户 184
11.5.5 修改用户信息 184
11.6 用户组策略 185
11.7 账号相关的配置文件 185
11.7.1 passwd文件 185
11.7.2 shadow文件 186
11.7.3 group文件 187
11.8 小结 188
习题 188
第12章 文件系统维护 190
12.1 Linux的目录构造 190
12.2 了解文件系统的使用情况 192
12.3 如何安装和拆卸文件系统 193
12.3.1 文件系统的配置信息 193
12.3.2 特殊的文件系统 194
12.3.3 如何用命令安装和拆卸文件系统 196
12.4 如何创建、修复和格式化文件系统 197
12.5 如何限制普通用户的使用空间 198
12.5.1 quota的配置 198
12.5.2 quota的使用 199
12.5.3 其他的quota命令 199
12.6 小结 200
习题 200
第13章 TCP/IP网络管理 201
13.1 网络概述 201
13.2 网络配置 202
13.2.1 以太网卡的安装 202
13.2.2 TCP/IP网络相关的概念 203
13.2.3 和网络相关的一些配置文件 205
13.2.4 用命令行方式配置TCP/IP网络 208
13.3 定位基本的网络故障和收集网络状态信息 210
13.4.2 邮件系统 213
13.4.3 域名服务器 213
13.4.1 Web服务器 213
13.4 基本网络服务的介绍 213
13.5 小结 214
习题 214
第14章 备份与恢复 215
14.1 备份的重要性 215
14.1.1 选择备份介质 215
14.2.1 备份类型 216
14.2 备份策略和注意事项 216
14.1.2 选择备份工具 216
14.2.2 备份级别 217
14.2.3 备份的注意事项 217
14.3 常用备份命令 218
14.4 文件恢复 219
14.5 利用cron命令和脚本实现任务的自动化 220
14.6 小结 221
习题 221
15.1 XWindow的工作原理 222
第15章 XWindow及Genie应用程序 222
15.2 XWindow的配置 223
15.2.1 建立XFree86系统 223
15.2.2 配置XFree86系统 224
15.2.3 XF86Config文件 225
15.3 如何启动XWindow系统 228
15.4 常用的窗口管理程序 229
15.4.1 什么是窗口管理器 229
15.5.1 Genie简介 230
15.5 XLinux的系统配置应用程序Genie 230
15.4.2 GNOME 230
15.5.2 Genie硬件设置 231
15.5.3 Genie网络设置 232
15.5.4 Genie系统设置 234
15.5.5 Genie动态设置项目 236
15.6 小结 238
习题 239
附录 GPL声明 240
参考文献 254