《UNIX作业系统教程(第3版)》是由张红光、李福才编着,机械工业出版社出版的普通高等教育“十一五”国家级规划教材。本书可作为高等院校相关专业的作业系统课程教材,也可为需要了解和研究UNIX技术和套用的设计开发人员提供有益的支持和参考。
基本介绍
- 书名:UNIX作业系统教程(第3版)
- 作者:张红光、李福才
- ISBN:978-7-111-28374-4
- 出版社:机械工业出版社
- 出版时间:2009-12
- 开本:16开
内容摘要
UNIX作业系统和所包含的核心技术在经历了近半个世纪的风雨和磨难后,在新的流行作业系统如火如荼发展的今天又重新受到大家的关注,因为学术界、产业界和教育界都意识到了此项技术对于今天作业系统发展所起到的不可替代的作用和产生的重要影响。因此如何科学地研究、学习和掌握UNIX技术?如何把握好UNIX技术研究和UNIX套用技术学习的尺度?如何将作业系统的理论学习和实际系统的设计技术相结合?如何在系统学习作业系统技术的同时,给学生或读者提供概念清晰、易于实践的教学读本?是很多作业系统授课老师时常思考的问题。经过多年的教学实践,作者对上述问题有了自己独特的理解,并力求将这些解决方案集中体现在本教程的第3次修订中,希望广大读者和教师能从中获益。
在本次修订中,特别增添了一些UNIX实用编程设计技术,同时为满足学生和读者提出的自学要求,添加了一些指导性的实例教学内容。为配合部分高校老师的教学,对有些教学内容和教学层次也做了适当修订。
在本次修订中,特别增添了一些UNIX实用编程设计技术,同时为满足学生和读者提出的自学要求,添加了一些指导性的实例教学内容。为配合部分高校老师的教学,对有些教学内容和教学层次也做了适当修订。
教材目录
第3版前言 第1章 绪论 1 1.1 作业系统概述 1 1.1.1 建立作业系统的目标 1 1.1.2 作业系统是用户与计算机的接口 1 1.1.3 作业系统是资源管理器 2 1.2 UNIX系统的主要特性 3 1.3 UNIX系统的发展史 4 1.4 开源软体与UNIX的推广发展 6 1.4.1 开源软体 6 1.4.2 促进UNIX发展的重要组织机构 7 1.4.3 各种UNIX系统分支 7 习题 9 第2章 UNIX基本概念及入门技术 10 2.1 UNIX系统基本常识 10 2.1.1 两种前端机 10 2.1.2 用户的注册与注销 11 2.1.3 账户的管理 12 2.1.4 用户口令的管理 12 2.1.5 用户组信息 13 2.2 初识UNIX的shell 13 2.2.1 什幺是shell程式 13 2.2.2 shell的内部命令和外部命令 14 2.3 UNIX系统启动及用户登录过程 14 2.3.1 UNIX系统的启动方式 14 2.3.2 UNIX系统的启动过程 14 2.3.3 Linux引导过程实例 15 2.3.4 用户的登录过程 17 2.4 UNIX常用命令介绍 18 2.4.1 UNIX命令使用方法 18 2.4.2 多命令行及多行命令 19 2.4.3 一般常用命令 19 2.4.4 用于目录操作的命令 23 2.4.5 用于档案操作的命令 24 2.4.6 有关状态及信息查询的命令 28 2.4.7 用于网路和通信的命令 31 2.5 UNIX系统体系结构 34 2.5.1 传统UNIX系统体系结构 34 2.5.2 现代UNIX系统体系结构 35 2.6 UNIX系统使用注意事项 36 2.6.1 正确选择用户访问许可权 36 2.6.2 移动存储设备的使用 36 2.6.3 UNIX对多种档案系统类型的支持 37 2.7 本章小结 40 习题 40 第3章 编辑UNIX的文本档案 42 3.1 标準编辑器ed 42 3.1.1 使用ed 的基本常识 43 3.1.2 元字元和正则表达式 43 3.1.3 如何进入ed、退出ed及保存文本 档案 44 3.1.4 ed中的常用命令 44 3.2 全萤幕幕编辑器vi 46 3.2.1 如何进入vi、退出vi及保存一个 档案 46 3.2.2 命令行方式下的常用命令 46 3.2.3 末行命令方式下的常用命令 47 3.2.4 进入插入编辑方式的常用命令 48 3.2.5 使用vi的注意事项 48 3.2.6 vi环境的设定 49 3.3 Emacs编辑器 50 3.3.1 Emacs的使用方法 51 3.3.2 Emacs主选单功能简介 52 3.3.3 Emacs中的功能键 53 3.4 本章小结 53 习题 54 第4章 UNIX系统的shell 55 4.1 shell概述 55 4.1.1 shell的基本功能 55 4.1.2 多种UNIX的shell 55 4.2 shell的内部特性 57 4.2.1 shell的命令解释过程 57 4.2.2 UNIX系统定义的标準流 57 4.2.3 shell语法管理 58 4.2.4 标準流重定向与管道线控制 58 4.2.5 错误流重定向 60 4.2.6 命令执行控制及滤波功能 60 4.3 shell的环境设定 62 4.3.1 shell环境变数 62 4.3.2 Linux系统的shell环境配置 63 4.3.3 Korn shell环境设定 63 4.3.4 C shell环境设定 64 4.4 本章小结 66 习题 67 第5章 shell程式设计 68 5.1 shell编程的基本知识 68 5.1.1 shell程式可完成的工作 68 5.1.2 shell程式编写格式 68 5.1.3 shell程式的运行方式 69 5.2 shell变数的使用 69 5.2.1 shell变数及变数赋值 69 5.2.2 变数的访问及变数参数替换 70 5.2.3 变数的作用域 71 5.2.4 shell的预定义变数和环境变数 71 5.2.5 shell中命令的位置变数 72 5.2.6 变数替换 73 5.2.7 用命令做变数替换 73 5.3 test命令的使用 74 5.3.1 对档案特性的测试 74 5.3.2 对字元串内容的测试 74 5.3.3 对整数n的测试 75 5.4 shell程式的控制流 75 5.4.1 命令的返回状态 75 5.4.2 程式的控制结构 76 5.5 条件控制语句 77 5.6 循环语句 81 5.7 shell编程中常用的其他语句 84 5.8 shell程式的输出 85 5.9 shell程式的调试方法 86 5.10 本章小结 87 习题 88 第6章 UNIX系统编程基础 89 6.1 程式设计环境 89 6.1.1 理想中的程式设计环境 89 6.1.2 多任务环境下的程式执行 90 6.2 基于作业系统支持的程式设计 91 6.2.1 建立系统编程思想 91 6.2.2 UNIX提供的系统支持 92 6.2.3 关于UNIX的系统调用 94 6.2.4 系统调用与库函式的关係 95 6.3 在UNIX环境中完成C编程 96 6.3.1 编程需要掌握的工具 96 6.3.2 makefile档案编写 96 6.3.3 C程式的编译与调试 100 6.3.4 连结特殊库函式 101 6.4 常用函式馆glib的使用 102 6.4.1 glib基本类型定义 102 6.4.2 glib的宏 103 6.4.3 记忆体管理函式 103 6.4.4 字元串处理函式 104 6.4.5 glib可支持的数据结构 105 6.4.6 GString 107 6.4.7 计时器函式 108 6.4.8 错误处理函式 108 6.5 其他有关函式馆 108 6.5.1 libxml库 109 6.5.2 readline库 109 6.5.3 curses库 110 6.6 本章小结 112 习题 113 第7章 UNIX档案管理系统 114 7.1 UNIX档案的概念 114 7.2 UNIX档案分类 114 7.2.1 普通档案 114 7.2.2 目录档案 116 7.2.3 特殊档案 117 7.2.4 管道档案 117 7.2.5 连结档案 118 7.3 UNIX档案系统 118 7.3.1 档案的组织及命名 118 7.3.2 档案的许可机制 119 7.3.3 档案系统功能及结构 120 7.3.4 系统中的特殊目录 121 7.3.5 档案系统的安装与卸载 121 7.4 UNIX档案系统内部存储方式 123 7.4.1 逻辑卷与物理卷 123 7.4.2 档案系统的存储结构 125 7.4.3 索引节点和目录档案的作用 129 7.4.4 多重索引存储结构 130 7.5 UNIX档案系统的动态管理技术 132 7.5.1 支持多种档案系统的机制 132 7.5.2 档案信息的动态管理 133 7.5.3 档案的检索过程 135 7.5.4 档案共享方式 135 7.6 用于档案管理的系统调用 138 7.6.1 档案描述符 138 7.6.2 用于档案创建和档案连结的 系统调用 138 7.6.3 档案打开与关闭的系统调用 140 7.6.4 档案的读、写系统调用 140 7.7 档案随机存取技术 141 7.7.1 改变档案指针位置 141 7.7.2 捕获当前档案指针位置 143 7.8 档案记录管理技术 145 7.8.1 记录锁定技术描述 145 7.8.2 记录锁定技术举例 145 7.9 常用档案系统备份与恢复技术 147 7.10 本章小结 147 习题 148 第8章 UNIX的进程管理 150 8.1 进程的基本概念 150 8.1.1 程式的并发执行 150 8.1.2 进程的定义和描述 151 8.1.3 进程的状态 152 8.1.4 进程控制基本概念 154 8.2 UNIX进程管理机制 155 | 8.2.1 进程创建 155 8.2.2 进程描述 157 8.2.3 进程管理数据结构 157 8.3 UNIX命令执行及进程属性 163 8.3.1 命令执行与进程相关 163 8.3.2 进程属性说明 164 8.4 UNIX进程调度与管理 165 8.4.1 UNIX进程状态及其转换 165 8.4.2 UNIX进程调度程式 166 8.4.3 UNIX进程调度策略及其实现 167 8.5 UNIX进程管理的系统调用 169 8.5.1 进程管理系统调用的作用 169 8.5.2 进程的创建 170 8.5.3 控制进程执行特定任务 171 8.5.4 控制进程的终止 173 8.5.5 进程的同步 173 8.5.6 库函式system 174 8.6 本章小结 175 习题 176 第9章 UNIX存储管理 178 9.1 存储管理基本概念 178 9.1.1 存储器配置原则 178 9.1.2 存储管理基本任务 178 9.2 地址重定位 179 9.2.1 逻辑地址空间 179 9.2.2 物理地址空间 179 9.2.3 地址重定位 180 9.3 常用存储管理技术 181 9.3.1 连续记忆体分配方式 181 9.3.2 覆盖和交换技术 181 9.3.3 分页管理技术 182 9.3.4 段式管理技术 184 9.4 虚拟存储技术 185 9.4.1 局部性原理 185 9.4.2 虚拟存储思想 185 9.4.3 虚拟存储实现方法 186 9.4.4 虚拟存储页面置换算法 188 9.5 UNIX存储管理策略 191 9.5.1 交换策略 191 9.5.2 请求调页策略 191 9.6 Linux记忆体管理实现技术 192 9.6.1 Linux存储地址识别 192 9.6.2 Linux进程存储空间 193 9.6.3 Linux的分段模型 193 9.6.4 Linux的分页模型 194 9.6.5 Linux进程虚地址空间描述 195 9.6.6 Linux物理记忆体空间管理 196 9.6.7 基于Slab的快取管理 197 9.7 本章小结 197 习题 198 第10章 UNIX系统的进程通信 200 10.1 进程通信的基本概念 200 10.1.1 进程通信的分类 200 10.1.2 进程间通信 200 10.1.3 进程通信实现方式 200 10.2 UNIX的基本通信技术 202 10.2.1 锁档案通信 202 10.2.2 记录锁定档案通信 202 10.2.3 信号 204 10.2.4 用信号完成通信 204 10.3 管道通信 207 10.3.1 管道的读写控制 208 10.3.2 无名管道通信 208 10.3.3 有名管道通信 210 10.4 共享存储区通信技术 213 10.4.1 共享存储区的概念 213 10.4.2 共享存储区的建立与操作 214 10.4.3 共享存储区通信实例 215 10.5 UNIX的IPC 216 10.5.1 UNIX System V IPC基本机制 217 10.5.2 讯息伫列 217 10.5.3 Linux系统的IPC机制 222 10.6 本章小结 222 习题 223 第11章 UNIX的设备管理 224 11.1 设备管理的基本概念 224 11.1.1 设备管理模组的功能 224 11.1.2 设备分类管理 225 11.1.3 I/O传输控制技术 225 11.1.4 虚拟设备管理技术 227 11.2 UNIX的设备管理结构 227 11.2.1 设备管理体系结构 227 11.2.2 UNIX的设备分类标识 228 11.2.3 UNIX的设备特殊档案 228 11.2.4 逻辑设备描述及访问 229 11.3 设备状态及设备控制 230 11.3.1 设备状态及其转换 230 11.3.2 设备控制策略 230 11.4 设备驱动与系统核心间的关联 232 11.4.1 设备驱动程式 232 11.4.2 驱动程式与核心间的关联 233 11.4.3 设备驱动程式与档案系统的关係 233 11.5 块设备的数据高速快取机制 235 11.5.1 缓冲控制块的设定 235 11.5.2 缓冲池的结构 236 11.5.3 缓冲区的分配与释放 237 11.6 对设备做读写操作 238 11.6.1 块设备的读写 238 11.6.2 字元设备的读写 239 11.7 Linux系统设备管理问题 241 11.7.1 Linux设备驱动程式的特点 241 11.7.2 驱动程式与外界的接口 242 11.7.3 驱动程式的基本结构 242 11.7.4 常用设备接口 242 11.7.5 外设连线自动检测技术 244 11.8 本章小结 246 习题 247 第12章 UNIX的多执行绪环境 248 12.1 执行绪的基本概念 248 12.1.1 多执行绪基础 248 12.1.2 包含执行绪的进程模型 250 12.2 多执行绪平台特性 251 12.2.1 设计中可利用执行绪改进程式的 回响能力 251 12.2.2 处理器结构改善直接影响程式 执行效率 251 12.2.3 执行绪的执行状态及运行特性 251 12.3 多执行绪管理模式 252 12.3.1 纯用户级执行绪管理模式 252 12.3.2 纯核心级执行绪管理模式 253 12.3.3 组合型的执行绪管理模式 253 12.4 UNIX的多执行绪管理结构 254 12.5 多执行绪编程 255 12.5.1 多执行绪程式结构的改变 255 12.5.2 多执行绪标準库 256 12.5.3 多执行绪编程规则 257 12.6 多执行绪程式设计技术 259 12.6.1 创建和使用简单执行绪 259 12.6.2 对执行绪的常用操作 261 12.6.3 执行绪中使用的数据 263 12.7 多执行绪程式设计综合举例 264 12.8 本章小结 267 习题 269 第13章 UNIX网路特性及支撑环境 270 13.1 计算机网路基本知识 270 13.1.1 通信子网 270 13.1.2 资源子网 271 13.1.3 计算机网路的主要功能 271 13.1.4 计算机网路分类 272 13.1.5 计算机网路体系结构 272 13.1.6 网路中的传输介质和连线 274 13.1.7 网路作业系统 274 13.2 UNIX网路结构及支持协定 274 13.2.1 UNIX网路分层结构 274 13.2.2 UNIX中的TCP/IP协定 275 13.2.3 UNIX系统支持的UUCP协定 277 13.2.4 基于协定的Internet套用 278 13.3 网路间进程通信 278 13.3.1 套接字解决的问题 279 13.3.2 套接字通信的基本知识 279 13.3.3 套接字和套接字地址 280 13.3.4 套接字在虚电路服务中的套用 281 13.3.5 套接字在数据报服务中的套用 281 13.3.6 套接字协定族 282 13.3.7 套接字类型 282 13.3.8 套接字函式 282 13.4 用UNIX平台构建Internet网路环境 284 13.4.1 用户域名和IP位址 284 13.4.2 TCP/IP配置信息 285 13.4.3 电子邮件服务 286 13.4.4 远程档案传输服务 287 13.4.5 远程登录telnet服务 288 13.4.6 网路档案系统 290 13.5 本章小结 290 习题 291 第14章 X-Window及其他实用程式 292 14.1 X-Window 292 14.1.1 X-Window的特徵 292 14.1.2 X-Window的工作方式 293 14.1.3 X-Window的组成部件 294 14.1.4 X-Window编程环境介绍 295 14.2 数据检索加工工具awk 296 14.2.1 awk基本描述 296 14.2.2 awk中的记录和栏位 297 14.2.3 awk中使用的模式 298 14.2.4 awk中的操作语句 300 14.3 程式管理器 300 14.3.1 原始码控制系统SCCS 300 14.3.2 并行开发程式管理器 300 14.4 词法分析和语法分析生成工具 302 14.5 本章小结 303 习题 303 附录A UNIX系统中的常用系统调用 304 附录B Linux系统中的C环境 308 附录C UNIX/Linux常用命令 314 参考文献 343 |
参考资料