编译前言 1
第一章 DOS概述 1
1.1 回顾 1
1.2 多任务 1
目录 1
1.3 DOS体系结构 2
1.3.1 BIOS层 2
1.3.2 DOS内核层 3
1.3.3 命令处理层 4
1.3.4 1兆地址空间 5
1.3.5 DOS初启程序 6
1.3.7 中断类型和中断向量表 8
1.3.6 DOS和中断 8
1.3.8 访问1兆以上的地址空间 11
1.4 DOS文件系统 12
1.4.1 当前驱动器 12
1.4.2 目录路径 13
1.4.3 DOS文件扩展名 14
1.5 按用户要求配置DOS 14
1.6 DOS中的分时 15
1.7 DOS应用程序开发 17
第二章 UNIX系统V介绍 18
2.1.1 UNIX分层体系结构 20
2.1.2 文件系统 20
2.1 UNIX 20
2.1.2.1 i-结点 21
2.1.2.2 目录 23
2.1.2.3 超级块 23
2.1.2.4 普通文件 24
2.1.2.5 其它文件类型 25
2.1.2.6 可安装的文件系统 25
2.1.2.7 文件连接的建立和删除 27
2.1.2.8 文件系统管理和维护工具 27
2.1.3 I/O子系统简介 27
2.1.3.2 流 28
2.2 UNIX系统概念介绍 28
2.1.3.1 磁盘驱动程序 28
2.2.1 UNIX核心 29
2.2.2 设备驱动程序 29
2.2.3 安全性 29
2.2.4 多任务 30
2.2.5 多用户 31
2.2.6 进程问通讯 31
2.2.7 网络通讯 31
2.2.7.1 基本网络 31
2.2.7.2 uucp,uucpio,uux,uuto和cu 31
2.2.7.3 域网 32
2.2.7.4 NFS 32
2.3 UNIX shell 33
2.2.7.5 RFS 33
2.2.8 定时服务功能 33
2.3.1 环境变量 34
2.3.2 shell程序 34
2.4 用户界面 35
2.4.1 UNIX命令行提示符 35
2.4.2 shell程序控制的界面 35
2.4.3 利用curses开发用户界面 35
2.4.4 图形窗口界面 36
2.5 UNIX系统管理 37
2.5.1 用户记帐管理 37
2.5.4 系统安全管理 38
2.6 UNIX用户的观点 38
2.5.3 通讯管理 38
2.5.2 文件系统管理 38
2.6.1 登录 39
2.6.2 .profile/.login 40
2.6.3 UNIX目录和文件 40
第三章 基本UNIX命令 42
第四章 UNIX和DOS比较 67
4.1 文件系统 67
4.1.1 文件系统命令 67
4.1.2 文件系统的游历 68
4.1.3.2 文件连接 69
4.1.3.1 文件类型和存取权限 69
4.1.3 文件目录 69
4.1.3.3 其它重要属性 70
4.1.4 文件的存取和操作 70
4.2 进程管理 71
4.3 存储管理 71
4.3.1 对换 72
4.3.2 空间管理 72
4.3.3 进程换出 73
4.4.3 进程换入 73
4.3.4 请求调页 73
4.3.5 用户的观点 73
4.5 应用程序开发 74
4.4 I/O管理 74
4.5.1 正文编辑 75
4.5.2 shell程序和批文件 75
4.5.3 程序开发与调试 76
4.5.4 编程环境的设置 76
4.6 系统管理 76
4.7 小结 77
第五章 UNIX进程 78
5.1 进程的基本结构 78
5.1.4 其它与进程有关的内存区 79
5.1.3 栈段 79
5.1.2 数据段 79
5.1.1 正文段 79
5.2 状态与转换 80
5.2.1 进程关联信息 80
5.2.2 进程控制:进程创建 83
5.2.3 进程信号 83
5.2.4 进程睡眠 83
5.2.5 进程地址空间管理 84
5.2.6 进程终止 85
第六章 UNIX的正文编辑器 86
6.1 ed正文编辑程序 86
6.1.1 基本用法 86
6.1.1.1 显示内容 87
6.1.1.2 当前行 88
6.1.1.3 执行shell命令 88
6.1.2 编辑命令 88
6.1.2.1 插入,附加,修改,删除 88
6.1.2.2 替换 89
6.1.2.3 元字符和正则表达式 90
6.1.2.4 全局命令 90
6.1.2.5 行的移动与拷贝 91
6.1.2.6 行的标记 91
6.1.2.7 行的分离与拼接 92
6.1.2.8 文件处理 92
6.1.3 命令小结 93
6.1.2.9 命令文件 93
6.2 vi正文编辑程序介绍 94
6.2.1 启动vi 94
6.2.2 vi的方式 94
6.2.3 测量单位 95
6.2.3.1 字符 95
6.2.3.2 词(word) 95
6.2.3.3 空白定界词 95
6.2.3.4 行 96
6.2.3.5 句子 96
6.2.3.6 段落 96
6.2.4 通过测量单位来移动光标 97
6.2.3.8 屏幕 97
6.2.3.7 重复因子 97
6.2.5 看工作缓冲区的不同部分 98
6.2.6 增加正文 98
6.2.7 删除和修改正文 98
6.2.8 检索字符串 99
6.2.9 字符串替换 99
6.2.10 杂项命令 99
6.2.11 重复正文 100
6.2.12 退出vi 100
6.2.13 小结 100
7.1 UNIX shell环境 101
第七章 UNIX Shell 101
7.2 shell命令语言解释器 105
7.2.1 I/O重定向 105
7.2.2 管道文件输出 107
7.3 shell程序设计 107
7.3.1 shell命令 108
7.3.1.1 命令中的命令 108
7.3.1.2 变量和替换 109
7.3.1.3 变量和子shell 112
7.3.2 其他有用的shell特性 115
7.3.3 判断 116
7.3.4 循环 119
7.3.5 shell函数 120
7.3.6 捕捉事件 120
7.3.7 shell文件的后台执行 121
第八章 C Shell 122
8.1 C shell的进入与退出 122
8.2 历史 122
8.2.1 重新运行一个事件 123
8.2.2 事件中的各个部分 124
8.2.3 修改前面的事件 125
8.3 别名 126
8.3.1 别名功能的实现 127
8.4 作业控制 128
8.3.2 参数替换 128
8.5 标准错误重定向 129
8.6 变量 130
8.6.1 变量替换 130
8.6.2 字符变量 130
8.6.3 字符变量数组 131
8.6.3 数字变量 131
8.6.4 数字变量数组 134
8.6.6 大括号 134
8.6.7 变量的特殊形式 134
8.6.8.1 有特定的值的变量 135
8.6.8 shell变量 135
8.6.8.2 开关变量 136
8.7 文件名生成 137
8.8 C shell命令程序 137
8.8.1 文件的执行 137
8.8.2 自动执行的C shell命令程序 137
8.8.3 控制结构 138
8.8.3.1 if语句 138
8.8.3.2 goto语句 138
8.8.3.3 中断处理 138
8.8.3.4 if-then-else语句 139
8.8.3.5 foreach语句 139
8.8.5 C shell的内部命令 140
8.8.4 读取输入 140
8.8.3.6 break和continue语句 140
8.8.3.8 switch 140
8.8.3.7 while语句 140
第九章 程序设计工具介绍 143
9.1 调试C程序 143
9.2 make实用程序 143
9.2.1 makefile 144
9.2.2 隐含依赖 145
9.2.3 宏 147
9.3 源代码控制系统(SCCS) 148
9.3.1 SCCS文件的版本演变 148
9.3.2 SCCS的实用程序 149
第十章 键盘和屏幕处理 152
10.1 终端 152
10.1.1 终端设备驱动程序 153
10.1.2 控制终端 153
10.1.3 基本的数据传送 154
10.2 计算机和终端的连接 154
10.3 UNIX终端 155
10.3.1 标准I/O 155
10.3.2 非成块终端I/O 156
10.3.3 原始终端I/O 156
10.4 基本窗口处理 159
10.4.2 基本curses程序结构 160
10.4.1 Curses 160
10.4.3 状态设置 161
10.4.4 curses I/O函数 161
第十一章 UNIX I/O子系统 170
11.1 设备概述 170
11.1.1 特殊文件 170
11.2 设备驱动程序的系统调用 171
11.2.1 系统调用open() 171
11.1.3 设备(系统)配置 171
11.1.2 设备类型 171
11.2.2 系统调用close() 172
11.2.3 系统调用read() 172
11.2.4 系统调用write() 172
11.2.5 系统调用ioctl() 172
11.2.6 块驱动程序策略例程 172
11.2.7 中断处理程序 172
11.3 设备驱动程序 173
11.3.1 驱动程序的组成 173
11.3.2 序言 173
11.3.3 驱动例程命名约定 173
11.3.6 CLOSE例程 174
11.3.7 策略例程(仅适用于块模式的驱动程序) 174
11.3.4 初始化例程 174
11.3.5 OPEN例程 174
11.3.8 WRITE例程 175
11.3.9 READ例程 175
11.3.10 START例程 175
11.3.11 INTR(中断)例程 175
11.3.12 IOCTL例程(仅用于字符方式的驱动程序) 176
11.3.13 驱动程序的生成,安装和调试 176
11.4 STREAMS 177
11.4.1 概述 177
11.4.2 系统调用 177
11.5 小结 177
12.1 信号 178
第十二章 UNIX的进程间通信 178
12.2 管道 182
12.3 消息队列 185
12.4 信号量(semaphore亦称为信号灯) 187
12.5 共享存储区 189
第十三章 UUCP 192
13.1 UUCP综述 192
13.2 uucp 195
13.3 cu 196
13.4 uux 197
13.5 uuname 197
13.9 uupick 198
13.8 uuto 198
13.6 uulog 198
13.7 uustat 198
第十四章 远程文件共享(RFS) 199
14.1 RFS的使用 199
14.2 RFS下的应用程序开发 201
14.2.1 共享资源 201
14.2.1.1 举例 202
14.2.1.2 用户/小组ID的映射 203
14.2.1.3 顾客—服务者关系和服务者进程 203
14.2.2.1 共享资源不能嵌套 204
14.2.2.2 用户ID和小组ID有可能不同 204
14.2.2 应用程序开发 204
14.2.2.3 主次设备号不一致 205
14.2.2.4 进程ID不唯一 205
14.2.2.5 网络中计算机标识的唯一性 206
14.2.2.6 路径名可能改变 206
14.2.2.7 有些系统目录不适于作安装点 207
14.2.3 有名管道的使用 207
14.2.3.1 应用程序测试 208
14.2.3.2 进一步的工作 208
14.2.4 数据文件的使用 208
14.2.6.2 进一步的工作 209
14.2.6.1 应用程序测试 209
14.2.6 固定路径名的使用 209
14.2.5.2 进一步的工作 209
14.2.5.1 应用程序的测试 209
14.2.5 临时文件的使用 209
14.2.7 用不同的名字共享资源 210
14.2.7.1 应用程序测试 210
14.2.7.2 进一步的工作 210
14.2.8 终端端口的使用 210
14.2.8.1 应用程序测试 211
14.2.8.2 进一步的工作 211
14.2.9 锁控文件的使用 211
14.2.10 数字形式的用户/小组ID码的使用 212
14.2.9.2 进一步的工作 212
14.2.9.1 应用程序测试 212
14.2.11 Kill命令或系统调用的使用 213
14.2.11.1 应用程序测试 213
14.2.11.2 进一步的工作 213
14.2.12 在系统目录中保存数据 213
14.2.12.1 应用程序测试 213
14.2.12.2 进一步的工作 214
14.2.13 系统相关信息的使用 214
14.2.13.1 应用程序测试 214
14.2.13.2 进一步的工作 214
第十五章 以太网 215
15.1.2 以太网拓扑结构和传输媒介 216
15.1 以太网的背景 216
15.1.1 802.3--CSMA/CD系统 216
15.2 以太网组成 217
15.2.1 双纽线 217
15.2.2 同轴电缆 218
15.2.3 无线广播 218
15.2.4 导波管 218
15.2.5 红外线 219
15.2.6 光导纤维 219
15.2.7 接头 219
15.2.9 接口 220
15.2.10 控制器 220
15.2.8 收发器 220
第十六章 TCP/IP介绍 221
16.1 基本定义和概念 221
16.1.1 TCP 221
16.1.2 IP 224
16.1.3 以太网 225
16.2 套接字(socket) 226
16.2.1 连接描述 227
16.2.2 连接的使用 227
16.2.3 标准表示法 228
16.2.4 用户数据报文协议 228
16.3 包的路由选择 229
16.2.5 互连网控制信息协议 229
16.4 互连网地址 230
16.4.1 子网 231
16.5 包故障和重组 232
16.6 进一步的信息 233
16.7 开放式系统互连 234
16.7.1 物理层 235
16.7.2 数据链路层 235
16.7.3 网络层 235
16.7.4 传输层 235
16.7.6 表示层 236
16.7.7 应用层 236
16.7.5 会话层 236
第十七章 UNIX的目录与文件 237
第十八章 UNIX的cron机制 247
18.1 /etc/cron 247
18.2 crontab文件的记录格式 248
18.3 小结 251
第十九章 UNIX系统管理 252
19.1 系统的启动与关闭 252
19.1.1 系统启动 253
19.1.2 初始状态 254
19.1.3 文件系统检测 254
19.1.4 系统关闭 255
19.2 文件系统管理 256
19.2.2 文件系统的安装与拆卸 257
19.2.1 建立文件系统 257
19.2.3 转贮与复原 258
19.3 用户管理 259
19.3.1 增加用户 259
19.3.2 删除用户 261
19.4 系统安全管理 262
19.4.1 文件系统安全性 262
19.4.2 目录 264
19.4.3 数据加密 264
19.4.4 口令安全性 265
20.1 系统基础 267
第二十章 X窗口系统介绍 267
20.1.1 X服务器 268
20.1.2 X顾客 269
20.1.3 窗口管理程序 269
20.2 标准X顾客 270
附录一 UNIX的系统调用和库函数 273
附录二 高级用户命令 281
附录三 Korn shell 290
附录四 正则表达式 302
附录五 UNIX版本及标准介绍 309
参考书目 314