第一章 UNIX操作系统的历史与特征 1
1.1 UNIX系统的发展历史与现状 1
1.1.1 UNIX系统的产生 1
目录 1
1.1.2 UNIX系统的发展 2
1.1.3 UNIX系统的现状 2
1.2 UNIX系统的特征 4
1.2.1 UNIX系统的主要优点 4
1.2.2 对UNIX系统的批评 6
第二章 操作系统的基本知识 8
2.1 硬件与软件 8
2.2 操作系统的功能 9
2.3 核心程序与实用程序 10
2.4 操作系统的分类 11
习题 12
3.1 PDP-11系统结构 13
第三章 UNIX系统结构 13
3.2 中断系统 14
3.2.1 中断概念的引入与分类 14
3.2.2 中断与中断向量 15
3.2.3 捕俘与捕俘向量 17
3.2.4 中断保留区 18
3.2.5 中断捕俘总控程序 19
3.3 UNIX系统的程序结构 20
3.3.1 程序的调用与返回 20
3.3.2 再谈中断保留区 22
3.4 UNIX系统的整体结构 23
习题 25
第四章 进程管理 26
4.1 进程的概念 26
4.1.1 进程概念的引入 26
4.1.2 进程的状态 28
4.2.1 进程的程序与数据 29
4.2 进程映象 29
4.2.2 proc结构与ppda 30
4.3 进程调度 33
4.3.1 调度算法 33
4.3.2 进程现场的保留 34
4.3.3 低级调度程序 35
4.4 进程通信 37
4.4.1 概述 37
4.4.2 通信操作的实现 37
4.4.3 进程通信举例 39
4.5 进程的建立 40
4.5.1 建立进程映象 41
4.5.2 子进程的运行 42
4.5.3 系统调用fork 43
4.6.2 可执行文件的格式 45
4.6 执行一个文件 45
4.6.1 更换进程映象 45
4.6.3 自变量传递 46
4.6.4 exec的实现 48
4.6.5 fork-exec的应用 50
4.7 进程的终止与等待 51
4.7.1 进程终止 51
4.7.2 等待子进程 53
4.8 进程的资源 55
习题 56
第五章 存储管理 57
5.1 引言 57
5.1.1 逻辑地址与物理地址 57
5.1.2 连接编辑 58
5.1.3 地址重定位 59
5.1.4 内存的扩充 59
5.2.1 页表 60
5.2 PDP-11的地址转换机构 60
5.2.2 地址转换算法 62
5.2.3 用户栈的表示 63
5.3 逻辑空间的分配 64
5.3.1 用户逻辑空间 64
5.3.2 核心逻辑空间 65
5.3.3 样本页表 66
5.3.4 样本页表与硬件页表的装配 67
5.3.5 estabur与sureg的应用 70
5.4 物理空间的分配 70
5.4.1 分配算法 70
5.4.2 应用举例 72
5.5 程序对换 74
5.5.1 概述 74
5.5.2 对换驱动程序 74
5.5.3 映象换出程序 76
5.5.4 进程0 77
5.6 有关数据段的操作 78
5.6.1 改变数据段的大小 78
5.6.2 用户栈的扩大 79
5.6.3 系统调用brk 79
习题 82
第六章 时钟处理与捕俘处理 84
6.1 时钟处理 84
6.1.1 硬件时钟与软件计时 84
6.1.2 时钟处理程序 85
6.2 捕俘总控与系统调用 86
6.2.1 捕俘总控程序 86
6.2.2 系统调用的转入与参数复制 87
6.2.3 系统调用的分类 91
6.3 软中断 92
6.3.1 软中断的引入 92
6.3.2 软中断处理程序的设置 93
6.3.3 软中断的产生与发送 94
6.3.4 软中断的发现与处理 95
6.3.5 软中断处理举例 100
6.4 跟踪 101
6.4.1 跟踪机构的用法 101
6.4.2 跟踪机构的实现 102
6.4.3 跟踪过程 106
习题 108
第七章 外部设备管理 109
7.1 引言 109
7.1.1 块设备与字符设备 109
7.1.2 主设备号与次设备号 109
7.1.3 UNIX设备管理的特点 110
7.2 设备配置与开关表 111
7.2.1 设备的重新配置 111
7.2.2 开关表与驱动程序的联系 111
7.4.1 硬件背景 112
7.4 块设备的驱动 112
7.4.2 RK磁盘的驱动 114
7.2.3 特别文件的建立 114
7.3 块设备的缓冲区管理 116
7.3.2 缓冲区与缓冲首部 116
7.3.1 块设备系统的结构 116
7.3.3 块设备表与缓冲首部队列 118
7.3.4 缓冲区的申请与释放 119
7.4.3 块设备系统与文件系统的接口 127
7.5 字符设备的缓冲管理与tty结构 131
7.5.1 引言 131
7.5.2 缓冲管理 131
7.5.3 终端设备的tty结构与寄存器组 133
7.6 终端设备的驱动 137
7.6.1 终端的打开与关闭 137
7.6.2 终端输入过程 138
7.6.3 终端输出过程 141
8.1.2 文件的逻辑结构与物理结构 142
8.1.3 UNIX文件系统的特点 143
8.2 文件目录 144
7.7 原始磁盘的管理 147
7.7.2 原始磁盘的启动 147
7.7.1 原始磁盘的用法 147
习题 148
第八章 文件系统 151
8.1 引言 151
8.1.1 文件与文件系统 151
8.2.4 文件的联结 151
8.2.1 简单的文件目录 154
8.2.2 多级目录与UNIX树形目录结构 155
8.2.3 索引节点 157
8.2.5 目录的检索 162
8.3 文件卷的安装与拆卸 163
8.3.1 实现原理 163
8.3.2 实现过程 166
8.4 文件卷存储空间的管理 167
8.4.2 文件卷的专用块与空间块的管理 168
8.4.1 一些常用的方法 168
8.4.3 i节点的分配与释放 172
8.5 文件的访问与存取控制 174
8.5.1 文件的访问与共享 174
8.5.2 文件的存取控制 176
8.6 关于文件的系统调用 177
8.6.1 数据结构 177
8.6.2 文件的创建 179
8.6.3 文件的联结与删除 182
8.6.4 文件的打开与关闭 185
8.6.5 用户打开文件表、系统打开文件表与活动i节点表的关系 187
8.6.6 文件的读写 188
8.6.7 管道文件 197
习题 202
第九章 系统初启 204
9.1 初始引导 204
9.2.1 核心页表寄存器的初置 205
9.2 核心初始化 205
9.2.2 进程0和进程1的建立 207
9.2.3 核心初始化过程 210
9.3 系统初始化 210
9.3.1 单用户环境 210
9.3.2 若干文件 211
9.3.3 多用户环境与文件getty 212
9.3.4 进程1的生命周期 213
习题 214
第十章 shell命令语言及其程序设计 215
10.1 UNIX使用基础 215
10.1.1 注册(login)与注销(logout) 215
10.1.2 终端特性 216
10.2 编辑程序 216
10.2.1 ed的进入与退出 217
10.2.2 建立文件 217
10.2.3 行编辑 218
10.2.4 上下文编辑 220
10.2.5 模式匹配 222
10.2.6 全局编辑 223
10.2.7 其它用法 223
10.3 常用的shell命令 224
10.3.1 有关目录和文件的命令 224
10.3.2 文件打印命令 227
10.3.3 状态询问命令 230
10.3.4 用户通信 231
10.3.5 进程管理 233
10.4 shell的交互特征 234
10.4.1 后台执行与重新定向 234
10.4.2 管道与过滤器 235
10.4.3 文件名字生成 235
10.5.1 shell变量 236
10.4.4 引号的使用 236
10.5 shell程序设计 236
10.5.2 几个专用的shell变量 238
10.5.3 简单的条件 239
10.5.4 简单命令、管道线与命令表 240
10.5.5 if条件 240
10.5.6 shell程序的自变量 241
10.5.7 while和until条件循环 242
10.5.8 命令替换 243
10.5.9 for结构 244
10.5.10 case结构 245
10.5.11 break和continue语句 245
10.6 shell程序的执行 246
10.7 shell解释程序的实现 248
10.7.1 初始化 248
10.7.2 命令行的读入与分析 249
10.7.3 命令树的执行 250
第十一章 C语言 255
11.1 C语言的演变历史及其特点 255
11.1.1 C语言的演变历史 255
11.1.2 C语言的特点 256
11.2 C程序的编写及其运行 257
11.2.1 样本C程序 257
11.2.2 C程序的处理流程 260
11.3 C语言的基本成分 263
11.3.1 C程序的元素 263
11.3.2 基本数据类型 264
11.3.3 常量 265
11.3.4 运算符与表达式 266
11.4 语句与控制流 270
11.4.1 若干简单语句 271
11.4.2 条件语句与开关语句 271
11.4.3 循环语句 275
11.4.4 其它语句 277
11.5 函数与程序结构 278
11.5.1 函数的一般形式 278
11.5.2 函数的递归调用 280
11.5.3 程序结构与存储类 281
11.5.4 初始化 284
11.6 构造数据类型 285
11.6.1 数组 286
11.6.2 指针与数组 287
11.6.3 结构 289
11.6.4 联合 293
11.7 C预处理程序 293
第十二章 UNIX程序设计环境 296
12.2 输入输出程序库 297
12.2.1 输入输出标准函数 297
12.2.2 格式输入输出 298
12.1 自变量约定 299
12.2.3 文件的存取 299
12.2.4 错误处理与出口 302
12.2.5 成行的输入输出 303
12.3 其它函数 303
12.4 低级输入输出 304
12.4.1 文件的读写与打开关闭 304
12.4.2 文件的随机存取 307
12.4.3 fopen的实现 307
12.5 进程管理 309
12.5.1 低级进程执行——execlp和execvp 309
12.5.2 创建并等待子进程——fork和wait 311
12.5.3 进程终止——exit 313
12.6 信号处理 314
参考文献 317
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《管理信息系统习题集》郭晓军 2016
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《英汉翻译理论的多维阐释及应用剖析》常瑞娟著 2019
- 《药剂学实验操作技术》刘芳,高森主编 2019
- 《信息系统安全技术管理策略 信息安全经济学视角》赵柳榕著 2020
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《虚拟流域环境理论技术研究与应用》冶运涛蒋云钟梁犁丽曹引等编著 2019
- 《当代翻译美学的理论诠释与应用解读》宁建庚著 2019