第1章 计算机操作系统 1
1.1 操作系统的概述 2
1.1.1 什么是操作系统 2
1.1.2 计算机系统中的操作系统 3
1.2 操作系统的功能和特征 5
1.2.1 操作系统的功能 5
1.2.2 操作系统的特征 7
1.3.1 批处理系统 8
1.3 操作系统的基本类型 8
1.3.2 分时系统 9
1.3.3 实时系统 9
1.3.4 通用操作系统 10
1.4 小结 10
1.5习题 11
第2章 作业管理 12
2.1 作业、作业的类别和组织 12
2.1.1 作业、作业步和作业流 12
2.2.1 作业的组成 13
2.2 批量型作业的管理和调度 13
2.1.2 作业的类别和组织 13
2.2.2 作业的进入 14
2.2.3 作业的建立 14
2.2.4 作业的调度 15
2.3 终端型作业的管理 17
2.3.1 作业的建立和进入 17
2.3.2 终端型作业与批量型作业在管理方面的其他区别 17
2.4.1 系统调用 18
2.4 用户与操作系统的接口 18
2.4.2 作业控制语言 20
2.4.3 键盘操作命令 20
2.5 作业控制 21
2.5.1 脱机控制方式 21
2.5.2 联机控制方式 22
2.6 小结 22
2.7 习题 23
3.1.2 程序的并发执行及特点 24
3.1.1 程序的顺序执行及特点 24
3.1 并发程序 24
第3章 进程管理 24
3.2 进程模型 27
3.2.1 进程的定义和特征 27
3.2.2 进程结构 29
3.3 进程同步与通信 32
3.3.1 临界资源与临界区问题 33
3.3.2 进程之间同步机构 34
3.4.1 进程控制 39
3.4 进程控制与调度 39
3.4.2 进程调度 41
3.5 线程 44
3.5.1 线程的概念 44
3.5.2 线程和进程的关系 44
3.5.3 线程的执行状态及其转换 44
3.5.4 引入线程的优点 45
3.6 小结 45
3.7 习题 46
4.1 概述 47
第4章 存储管理 47
4.2 实存管理技术 48
4.2.1 用户连续存储管理 49
4.2.2 分区存储管理 50
4.2.3 覆盖与交换技术 53
4.2.4 简单页式存储管理 55
4.3 虚拟存储管理技术 57
4.3.1 概述 57
4.3.2 请求页式存储管理 59
4.3.3 分段式存储管理 61
4.3.4 段页式存储管理 64
4.4 小结 65
4.5 习题 66
第5章 设备管理 67
5.1 设备的分类和设备管理功能 67
5.1.1 设备的分类 67
5.1.2 设备管理的目标和功能 69
5.2 I/O设备控制与驱动软件 69
5.2.1 设备控制器 70
5.2.2 I/O控制方式 71
5.2.3 I/O驱动软件 72
5.3 设备管理实现 73
5.3.1 操作系统与中断处理 73
5.3.2 设备驱动程序 75
5.3.3 与硬件无关的I/O软件 76
5.4 设备的调度和分配 77
5.4.1 设备的调度 77
5.4.2 设备的分配 78
5.5 小结 78
5.6 习题 79
第6章 文件管理 80
6.1 文件和文件系统 80
6.1.1 文件的概念 80
6.1.2 文件操作 82
6.1.3 文件系统功能 83
6.2.1 文件的结构 84
6.2 文件系统的实现 84
6.2.2 文件的存取方法 87
6.2.3 文件存储空间管理 87
6.2.4 文件目录 89
6.2.5 文件目录检索 90
6.3 文件的共享和安全 92
6.3.1 文件共享 92
6.3.2 文件的保护和保密 93
6.4 小结 93
6.5 习题 94
第7章 网络操作系统 95
7.1 计算机网络概念 95
7.2 网络协议和网络操作系统 95
7.2.1 OSI参考模型 95
7.2.2 网络操作系统的定义和特性 97
7.2.3 网络操作系统的分类 98
7.2.4 网络操作系统的结构模式 100
7.2.5 网络操作系统的功能 101
7.2.6 网络操作系统介绍 102
7.4 习题 104
7.3 小结 104
第8章 Linux操作系统概述 105
8.1 Linux简介 105
8.1.1 什么是Linux 105
8.1.2 计算机系统以Linux为平台的好处 105
8.1.3 Linux的发行版本 106
8.2.2 多用户 107
8.2.3 可编程Shell 107
8.2.1 多任务 107
8.2 Linux的特性 107
8.2.4 多文件系统 108
8.2.5 支持的硬件多 108
8.2.6 丰富的软件 108
8.3 Linux使用基础 108
8.3.1 Linux的开机程序和正常关机步骤 108
8.3.2 使用者的管理 114
8.3.3 文件系统的结构 114
8.3.4 Linux的基本命令 119
8.5 习题 137
8.4 小结 137
9.1 Linux的Shell 138
9.1.1 什么是Shell 138
第9章 Linux的作业管理 138
9.1.2 Shell的主要版本 139
9.2 Shell命令的语法分析 140
9.2.1 Shell的命令格式 140
9.2.2 通配符 142
9.2.3 重定向 144
9.2.5 命令别名 147
9.2.4 管道 147
9.2.6 命令替换 148
9.2.7 自动补全命令行 149
9.2.8 命令行编辑 149
9.2.9 命令历史 150
9.2.10 引用 151
9.2.11 作业管理 152
9.3 Shell编程 155
9.3.1 变量 156
9.3.2 Shell程序设计的流程控制 159
9.3.3 Shell脚本的建立和执行 162
9.3.4 调试Shell脚本 164
9.3.5 实例 165
9.4 小结 166
9.5 习题 167
第10章 Linux中的进程管理 168
10.1 Linux中的进程 168
10.1.1 Linux中的进程控制块 168
10.1.2 Linux的进程标识与状态 172
10.2 Linux的进程控制 173
10.2.1 进程的创建(fork和vfork) 173
10.2.2 进程的执行(exec) 175
10.2.3 进程的等待(wait) 176
10.2.4 进程的结束(exit) 176
10.3 Linux进程调度 177
10.3.1 调度的时机 177
10.3.2 调度的策略 178
10.4.1 信号 180
10.4 Linux进程通信 180
10.4.2 管道 182
10.4.3 SystemV的进程通信 183
10.5 小结 188
10.6 习题 188
第11章 Linux中的存储管理 190
11.1 Linux的虚拟存储管理 190
11.1.1 分页机制 191
11.1.2 共享和保护 192
11.2 Linux内存映射 194
11.3 Linux存储管理的实现技术 196
11.3.1 内存的分配和回收 196
11.3.2 需求分页机制 198
11.3.3 交换机制 199
11.3.4 高速缓存 203
11.4 小结 205
11.5 习题 205
12.1.1 Linux中的总线使用 207
12.1 概述 207
第12章 Linux中的设备管理 207
12.1.2 Linux中的数据传送方式 211
12.2 Linux设备驱动程序与内核的接口 215
12.2.1 字符设备的管理 216
12.2.2 块设备的管理 217
12.3 Linux设备驱动程序框架 219
12.4 Linux设备的I/O调用 220
12.6 习题 222
12.5 小结 222
第13章 Linux文件系统 223
13.1 概述 223
13.1.1 文件的用户接口 223
13.1.2 Linux文件系统框架 224
13.2 Ext2文件系统 225
13.2.1 Ext2文件系统的特点 225
13.2.2 Ext2文件的逻辑结构与物理结构 228
13.2.3 Ext2文件系统存储空间管理 230
13.2.4 Ext2文件系统目录文件的实现 232
13.3 虚拟文件系统(VFS) 234
13.3.1 VFS对文件系统的描述 235
13.3.2 VFS对文件系统的管理 237
13.3.3 文件系统的接口 240
13.3.4 VFS的缓冲机制 241
13.4 小结 244
13.5 习题 245
14.1 安装Linux的硬件需求 246
14.2 硬盘分区 246
第14章 Linux系统的安装和管理 246
14.2.1 为RedHatLinux的安装准备空间 247
14.2.2 分区命名方案 248
14.2.3 磁盘分区和其他操作系统 248
14.2.4 分区数 249
14.2.5 LILO的介绍和使用 249
14.3 Linux的安装方法与启动盘的制作 249
14.3.1 Linux的安装方法 249
14.3.2 制作系统安装启动盘 250
14.4.1 关于安装的几点说明 251
14.4.2 启动安装程序 251
14.4 RedHatLinux的安装过程 251
14.4.3 开始安装 252
14.4.4 配置Linux 262
14.5 小结 271
14.6 习题 272
第15章 软件包的管理 273
15.1 RPM的设计目的 273
15.2 使用RPM 274
15.2.1 安装软件包 274
15.2.2 卸载 276
15.2.3 升级 276
15.2.4 查询 277
15.2.5 验证 278
15.3 RPM使用实例 279
15.4 小结 281
15.5 习题 281
16.1 启动GnoRPM 282
第16章 GnoRPM 282
16.2 显示软件包 283
16.3 选择软件包 283
16.4 安装新的软件包 284
16.5 设置GnoRPM 285
16.6 软件包操作 287
16.6.1 查询软件包 287
16.6.3 卸载软件包 288
16.6.2 验证软件包 288
16.6.4 升级软件包 290
16.6.5 查找软件包 290
16.7 小结 290
16.8 习题 291
第17章 系统设置和维护 292
17.1 用户、组和私有用户组 292
17.1.1 用户和组管理的概念 292
17.1.2 私有用户组 293
17.2.2 禁止所有控制台访问 295
17.2.3 定义控制台 295
17.2.1 取消控制台程序访问权限 295
17.2 设置控制台的访问权 295
17.2.4 使文件可被控制台访问 296
17.2.5 其他可通过控制台访问的应用程序 296
17.3 软盘组 297
17.4 带PAM的用户认证 297
17.4.1 PAM的体系结构 297
17.4.2 PAM的功能与模块 298
17.4.3 PAM的配置 300
17.5 Shadow工具 302
17.6 构造自定义内核 302
17.6.1 创建模块化内核的流程 303
17.6.2 构造initrd镜像 305
17.7 匿名FTP 306
17.8 设置NFS 307
17.8.1 安装NFS 307
17.8.2 配置NFS服务器 307
17.8.3 配置NFS客户端 310
17.10 习题 311
17.9 小结 311
第18章 系统管理 312
18.1 使用Linuxconf设置系统 312
18.1.1 运行Linuxconf 312
18.1.2 组 317
18.1.3 文件系统 318
18.1.4 配置网络 321
18.1.5 日期和时间的设置 324
18.2 使用控制面板设置系统 325
18.2.1 设置打印机 325
18.2.2 内核守护进程的配置 330
18.2.3 网络配置 332
18.3 小结 336
18.4 习题 336
附录实验 337
实验一 操作系统与用户交互界面实验 337
实验二 进程管理实验 339
实验三 存储器管理实验 340
实验四 文件管理实验 342
实验五 Linux系统的用户交互界面实验 343
参考文献 345