目录 1
第1章 绪论 1
1.1 操作系统概述 1
1.1.1 建立操作系统的目标 1
1.1.2 操作系统是用户与计算机的接口 2
1.1.3 操作系统是资源管理器 3
1.2 UNIX系统的主要特性 3
1.3 UNIX系统的发展史 5
1.4 UNIX系统的各种分支 7
习题 8
第2章 UNIX基本概念及入门技术 9
2.1 UNIX系统的基本常识 9
2.1.1 两种前端机 9
2.1.2 用户的注册与注销 10
2.1.3 账户的管理 11
2.1.4 用户口令的管理 12
2.1.5 用户组信息 12
2.2.2 shell的内部命令和外部命令 13
2.2 初识UNIX的shell 13
2.2.1 什么是shell程序 13
2.3 UNIX系统启动及用户登录过程 14
2.3.1 UNIX系统的启动方式 14
2.3.2 UNIX系统的启动过程 14
2.3.3 用户的登录过程 15
2.4 UNIX常用命令介绍 15
2.4.1 UNIX命令使用方法 16
2.4.2 多命令行及多行命令 17
2.4.3 一般常用命令介绍 18
2.4.4 用于目录操作的命令 22
2.4.5 用于文件操作的命令 22
2.4.6 有关状态及信息查询的命令 27
2.4.7 用于网络和通信的命令 29
2.5 UNIX系统体系结构 32
2.5.1 传统UNIX系统体系结构 32
2.5.2 现代UNIX系统体系结构 33
2.6.1 UNIX与DOS文件格式的转换 35
2.6.2 在UNIX系统中使用DOS分区 35
2.6 UNIX系统与其他系统的关联 35
2.7 本章小结 37
习题 37
第3章 编辑UNIX的文本文件 39
3.1 标准编辑器ed 39
3.1.1 使用ed的基本常识 40
3.1.2 元字符和正则表达式 40
3.1.3 如何进入ed、退出ed及保存文本文件 41
3.1.4 ed中的常用命令 42
3.2.1 如何进入vi、退出vi及保存一个文件 43
3.2 全屏幕编辑器vi 43
3.2.2 命令行方式下的常用命令 44
3.2.3 末行命令方式下的常用命令 45
3.2.4 进入插入编辑方式的常用命令 46
3.2.5 使用vi的注意事项 46
3.2.6 vi环境的设置 47
3.3 Emacs编辑器 49
3.3.1 Emacs的使用方法 49
3.3.2 Emacs主菜单功能简介 50
3.3.3 Emacs中的功能键 51
3.4 本章小结 52
习题 53
第4章 UNIX系统的shell 55
4.1 shell概述 55
4.1.1 shell的基本功能 55
4.1.2 多种UNIX的shell 55
4.2 shell程序的特性 56
4.2.1 shell的命令解释功能 56
4.2.2 UNIX系统定义的标准流 57
4.2.3 重定向与管道线 58
4.2.4 错误流重定向 59
4.2.5 后台处理及滤波功能 60
4.3 shell的环境设置 61
4.3.1 shell环境变量 61
4.3.2 Korn shell的环境变量的设置 62
4.3.3 C shell的环境变量的设置 64
4.4 本章小结 65
习题 66
5.1 shell编程的基本知识 67
5.1.1 shell程序可完成的功能 67
第5章 shell程序设计 67
5.1.2 shell程序的格式 68
5.1.3 shell程序的运行方式 68
5.2 shell变量的使用 69
5.2.1 shell变量及变量赋值 69
5.2.2 变量的访问及变量参数替换 69
5.2.3 变量的作用域 70
5.2.4 shell的预定义变量和环境变量 71
5.2.5 shell中命令的位置变量 72
5.2.6 变量替换 73
5.2.7 用命令做变量替换 74
5.3 test命令的使用 74
5.3.1 对文件特性的测试 74
5.3.2 对字符串内容的测试 75
5.3.3 用于对整数n的测试 75
5.4 shell程序的控制流 76
5.4.1 命令的返回状态 76
5.5 条件控制语句 77
5.4.2 程序的控制结构 77
5.6 循环语句 83
5.7 shell编程中常用的其他语句 86
5.8 shell程序的调试方法 87
5.9 本章小结 89
习题 89
6.2 UNIX文件分类 91
6.2.1 普通文件 91
6.1 UNIX文件的概念 91
第6章 UNIX文件系统 91
6.2.2 目录文件 93
6.2.3 特殊文件 94
6.2.4 管道文件 95
6.2.5 链接文件 95
6.3 UNIX文件系统 96
6.3.1 文件的组织结构 96
6.3.2 文件的许可机制 97
6.3.3 文件系统的功能及结构 98
6.3.4 系统中的特殊文件和目录 99
6.3.5 文件系统的安装与卸载 100
6.4 UNIX文件系统内部存储方式 101
6.4.1 逻辑卷与物理卷 102
6.4.2 文件系统的存储结构 104
6.4.3 索引节点和目录文件的作用 108
6.4.4 多重索引存储结构 109
6.5 UNIX文件系统的动态管理技术 111
6.5.1 支持多种文件系统的机制 111
6.5.2 数据结构的动态管理 113
6.5.3 文件的检索过程 115
6.5.4 文件共享的方式 116
6.6.1 文件描述符 118
6.6 用于文件管理的系统调用 118
6.6.2 用于文件创建和文件链接的系统调用 119
6.6.3 文件打开与关闭的系统调用 121
6.6.4 文件的读、写系统调用 121
6.7 文件随机存取技术 122
6.7.1 改变文件指针位置 122
6.7.2 捕获当前文件指针位置 124
6.8 文件记录管理技术 125
6.8.1 记录锁定技术描述 125
6.8.2 记录锁定技术举例 126
6.9 文件系统的备份与恢复技术 127
6.10 本章小结 128
习题 129
第7章 UNIX进程及进程存储管理 131
7.1 进程的基本概念 131
7.1.1 程序的并发执行 131
7.1.2 进程的定义和描述 133
7.1.3 进程的状态 133
7.1.4 进程控制 135
7.2.1 UNIX进程管理机制 136
7.2 UNIX中的进程 136
7.2.2 UNIX的进程描述 139
7.2.3 UNIX进程描述中的数据结构 139
7.3 命令执行及产生的进程属性 146
7.3.1 UNIX命令执行与进程紧密相关 146
7.3.2 进程属性说明 147
7.4 UNIX进程调度与管理 147
7.4.1 UNIX进程状态及其转换 148
7.4.3 UNIX进程调度策略及其实现 150
7.4.2 UNIX进程调度程序 150
7.5 存储管理的基本概念 153
7.5.1 内存管理技术 153
7.5.2 虚拟存储技术 157
7.6 UNIX进程存储管理 159
7.6.1 进程存储中的交换策略 159
7.6.2 进程存储中的请求调页策略 160
7.6.3 UNIX进程存储管理体系结构 161
7.7.2 进程的创建 162
7.7.1 进程管理系统调用的作用 162
7.7 UNIX进程管理的系统调用 162
7.7.3 控制进程执行特定任务 164
7.7.4 控制进程的终止 166
7.7.5 进程的同步 166
7.7.6 库函数system 167
7.8 本章小结 168
习题 169
8.1.2 进程间通信 171
8.1.1 进程通信的分类 171
8.1 进程通信的基本概念 171
第8章 UNIX系统的进程通信 171
8.1.3 进程通信实现方式 172
8.2 UNIX的基本通信技术 173
8.2.1 锁文件通信 173
8.2.2 记录锁定文件通信 174
8.2.3 信号 175
8.2.4 用信号完成通信 176
8.3.1 管道的读写控制 180
8.3 管道通信 180
8.3.2 无名管道通信 181
8.3.3 有名管道通信 182
8.4 共享存储区通信技术 186
8.4.1 共享存储区的概念 187
8.4.2 共享存储区的建立与操作 187
8.4.3 共享存储区通信实例 188
8.5 UNIX的IPC 190
8.5.1 UNIX System V IPC基本机制 190
8.5.2 消息队列 191
8.5.3 Linux系统的IPC机制 196
8.6 本章小结 197
习题 198
第9章 UNIX的设备管理 199
9.1 设备管理的基本概念 199
9.1.1 设备管理模块的功能 199
9.1.2 设备分类管理 200
9.1.3 I/O传输控制技术 201
9.2 UNIX系统设备管理结构 202
9.2.1 UNIX设备管理体系结构 202
9.2.2 UNIX的设备分类标识方式 203
9.2.3 物理设备描述 204
9.2.4 逻辑设备描述 204
9.3 设备状态及设备控制 205
9.3.1 设备状态及其转换 205
9.3.2 设备控制策略 206
9.4 设备驱动与文件系统的关联 208
9.4.1 设备驱动程序 208
9.4.2 设备驱动程序与文件系统的关系 208
9.5 块设备的数据高速缓存机制 210
9.5.1 缓冲控制块的设置 211
9.5.2 缓冲池的结构 212
9.5.3 缓冲区的分配与释放 213
9.6 对设备做读写操作 213
9.6.1 块设备的读写 213
9.6.2 字符设备的读写 215
9.7 Linux系统设备管理问题 216
9.7.1 Linux设备驱动程序的特点 216
9.7.2 驱动程序与外界的接口 217
9.7.4 常用设备接口 218
9.7.3 驱动程序的基本结构 218
9.7.5 外设连接自动检测技术 220
9.8 本章小结 223
习题 223
第10章 UNIX的多线程环境 225
10.1 线程的基本概念 225
10.1.1 多线程基础 225
10.1.2 包含线程的进程模型 227
10.2.3 线程的执行状态及运行特性 229
10.2.2 处理器结构改善直接影响程序执行效率 . 229
10.2.1 设计中可利用线程改进程序的响应能力 . 229
10.2 多线程平台特性 229
10.3 多线程管理模式 230
10.3.1 纯用户级线程管理模式 230
10.3.2 纯核心级线程管理模式 231
10.3.3 组合型的线程管理模式 231
10.4 UNIX的多线程管理结构 232
10.5 多线程编程 233
10.5.1 多线程程序结构的改变 234
10.5.3 多线程编程规则 235
10.5.2 多线程标准库 235
10.6 多线程程序设计技术 238
10.6.1 创建和使用简单线程 238
10.6.2 对线程的常用操作 240
10.6.3 线程中使用的数据 242
10.7 多线程程序设计综合举例 244
10.8 本章小结 248
习题 249
11.1 计算机网络的基本原理 251
第11章 UNIX网络结构及Internet技术 251
11.1.1 通信子网 252
11.1.2 资源子网 252
11.1.3 计算机网络的主要功能 253
11.1.4 计算机网络分类 253
11.1.5 计算机网络体系结构 254
11.1.6 网络中的传输介质和连接硬件 255
11.2 UNIX网络结构及支持协议 256
11.2.1 UNIX网络分层结构 256
11.1.7 网络操作系统 256
11.2.2 UNIX中运行的TCP/IP协议 257
11.2.3 UNIX系统支持的UUCP协议 259
11.3 网络间的进程通信套接字 261
11.3.1 套接字要解决的问题 261
11.3.2 套接字通信的基本知识 261
11.3.3 套接字和套接字地址 263
11.3.4 套接字在虚电路服务中的应用 263
11.3.5 套接字在数据报服务中的应用 263
11.3.8 套接字函数 264
11.3.7 套接字类型 264
11.3.6 套接字协议族 264
11.4 用UNIX平台构建Internet网络环境 267
11.4.1 用户域名和IP地址 267
11.4.2 TCP/IP配置信息 268
11.4.3 电子邮件服务 269
11.4.4 远程文件传输服务 271
11.4.5 远程登录telnet服务 271
11.4.6 UNIX支持的网络文件系统 274
11.5.1 Archie 275
11.5 UNIX的信息查询服务工具 275
11.5.2 WAIS 278
11.5.3 信息查询工具Gopher 280
11.5.4 WWW查询工具 281
11.6 本章小结 281
习题 282
第12章 X-Window及其他实用程序 283
12.1 X-Window 283
12.1.1 X-Window的特征 283
12.1.2 X-Window的工作方式 284
12.1.3 X-Window的组成部件 285
12.1.4 X-Window编程环境介绍 286
12.2 数据检索加工工具awk 287
12.2.1 awk基本描述 288
12.2.2 awk中的记录和字段 290
12.2.3 awk中使用的模式 290
12.2.4 awk中的操作语句 292
12.3 程序管理器 292
12.3.2 并行开发程序管理器 293
12.3.1 源代码控制系统SCCS 293
12.3.3 make程序 295
12.4 词法分析和语法分析生成工具 297
12.5 本章小结 297
习题 298
附录A UNIX系统中的常用系统调用 299
附录B Linux系统中的C环境 303
附录C UNIX/Linux常用命令 311
参考文献 345