UNIX操作系统教程(第2版)
作者 : 张红光 李福才
译者 :
出版日期 : 2005-11-03
ISBN : 7-111-11037-4
定价 : 33.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 344
开本 : 16开
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

自诞生以来,UNIX操作系统已经历了近半个世纪的风雨,并成为当今计算机操作系统的典范。事实上,UNIX操作系统在学术界与产业界同时取得了巨大的成功,并在继续快速发展。本书是一本以介绍UNIX应用技术为起点,进而描述UNIX核心技术和实现策略的综合性教材。通过学习本书,读者可以对UNIX操作系统建立起一个全面的、系统的认知体系,并可将UNIX操作系统理论与实际的应用和设计技术相结合,对研究与开发Linux、UNIX甚或Windows都极为有益。

  本书第2版加入了UNIX新技术,修正了第1版中的错误,增加了配套实验,更加方便教学。

  本书可作为高等院校相关专业的操作系统课程教材,也可为在UNIX系统环境下从事相关软件设计与开发的人员提供有益的参考。

图书特色

图书前言

本书是2003年1月出版的《UNIX操作系统教程》的第2版,与第1版相比,主要增加了UNIX系统并行处理中新的管理机制,包括对进程管理、线程控制策略的改进,进一步充实了shell程序的概念及shell编程技术的描述,扩展了进程通信技术及网络进程管理和实用技术的描述。这些内容包容了UNIX系统近年来发展的新趋势,以及它在个人机上发展的主要内容。本书是一本以介绍UNIX应用技术为起点,进而描述UNIX核心技术和实现策略的综合性教材。
  UNIX操作系统的发展充满了传奇性,虽然她经历了近半个世纪的风雨,但今天当我们学习其内核技术时,依然会被其中精湛的技术特点和严谨的系统结构所震撼。UNIX操作系统知识在操作系统原理和计算机体系结构教学中依然占有很大的比重,在计算机科学与技术领域也依然是软件系统平台的一个标准。事实上,当初贝尔实验室最先完成的UNIX系统技术已不仅仅在影响着UNIX系统本身的发展,而是影响着操作系统技术的发展。如今,我们可以在各种操作系统设计中找到UNIX系统设计技术的踪影,包括通用操作系统平台和嵌入式操作系统平台。
  本书的第1版问世后,在多所大学得到了使用,收到了良好的效果和反响。同时在教材的使用中也收到了许多师生的反馈意见,这中间包含大量的肯定和鼓励,也有许多中肯的批评意见。随着计算机技术的推广和应用,人们对UNIX系统技术的关注程度在提升,操作系统理论和UINX系统技术也在技术的演化中不断进步,尤其是近年来UNIX系统在个人机上有了长足的发展。开放平台和公开源码的软件发展策略对UNIX技术的发展起到了极大的推动作用,人们可以通过对UNIX系统知识的理解,进而着手实现自己软件平台的构建计划。因此,为了适应技术的发展,满足人们学习UNIX系统知识和掌握应用技术的要求,我们在第1版的基础上进行了内容的补充和调整,加入了UNIX的新技术,修正了第1版中的错误。
  本书修订后将更加适应高等院校计算机及相关专业的UNIX系统技术和操作系统课程的教学与辅导需要,读者对象是具有一定计算机体系结构和C语言程序设计知识的教师、研究生和本科生。为了使教材更适合教学,并提供一定的实例化练习,我们在这次修订中还配套编写了一本《UNIX操作系统实验教程》。在实验教程中除了包含各章习题的解答外,还编写了大量的以Linux系统为实验环境的实验知识、实验练习及大型实验题目和参考解答。相信这些内容将会对使用本教材进行教学的教师和学生有巨大的帮助,使学生不仅可以认知UNIX系统的基本理论,而且还可以加强动手能力,增加实践机会。在实验教程中,我们还注意留有一定的思考余地和发挥空间,使那些有兴趣有能力的读者可以发挥自己的主动性,补充或完善相应的设计工作和练习内容。
  本书除了用于教学外,还适用于那些希望对UNIX系统进行比较深入研究的开发人员,本书对那些将要在UNIX系统平台上进行软件开发和程序设计的人员也是很好的参考资料。我们的宗旨是希望通过本书介绍一些有关UNIX系统的、较深层次的技术知识和新的开发方法及设计技术。
  在本书的编写过程中,我们为读者设计了四个学习过程,即UNIX系统基本应用技术的学习(第1~4章)、UNIX应用技术的掌握(第5~6章)、UNIX核心技术及并行机制学习(第7~10章)、网络功能及其他实用技术学习(第11~12章)。读者在学习本书时,可以将枯燥的操作系统理论与实际的UNIX操作系统应用和设计技术相结合。学习中从使用简单命令开始,逐步深入,可使读者逐渐对常用技术和系统内核实现方法有基本的了解,从而对UNIX操作系统建立起一个全面的、系统的认知体系,同时也对现代操作系统设计方法有一个比较深入的理解。
  另外,在本书和本书的实验教材中引用的所有程序和例子,除了有特殊说明的外,都已在Linux系统的Red Hat 9.0中调试通过,有些特殊的例子在Solaris 2.5中运行通过。
  本书共分12章,授课时可以根据情况安排16~18周的时间进行讲课,并随讲授内容安排适量的上机练习。书中的前9章包含的是UNIX操作系统及操作系统理论的基本内容,通过这些章节的学习,可以对UNIX系统有一个较全面的认识,因此授课时应该是必讲的。如果有时间,可以对第10~12章的内容进行讲解,这部分内容属于UNIX的扩展知识,从某种意义上讲它们更具有实用性。因为掌握UNIX多线程编程技术有利于并行程序的设计,掌握UNIX网络技术和方法有利于网络环境的程序设计,而第12章中的内容对进行UNIX系统的开发与设计是十分有用的。
  非常感谢在本书的编写与编辑中给予帮助的所有人员,本书的第1、2、9章由李福才老师改编,其余章节由张红光改编。在本书的修订过程中,作者参阅了大量的相关著作和资料,并就修订的相关专题与有关专家和学者进行了多方面的探讨,尤其是我们非常重视南开大学使用本教材的历届本科生的意见,在学习中同学们提出了许多非常好的反馈意见。实际上,正是由于他们的关注和支持才促成了本教材修订工作的完成,在此对他们表示感谢。对直接参与并为完成本教材修订做了大量工作的蒋跃军、任士高、吴佳泽、于银涛、李莹等表示衷心的感谢,还要感谢机械工业出版社华章分社的编辑,正是他们卓有成效的努力和细致用心的工作才使本书得以顺利出版。
  尽管在本书的修订和编写过程中,我们力图认真工作、细心整理,但由于水平所限,加上时间短、内容多等原因,书中难免存在谬误和不足,我们真切期望读者能提出宝贵意见,我的电子邮箱地址是:zhanghg@nankai.edu.cn。

张红光
2005年8月于南开园

作者简介

张红光 李福才:暂无简介

图书目录

第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  初识UNIX的shell 13
2.2.1  什么是shell程序 13
2.2.2  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  UNIX系统与其他系统的关联 35
2.6.1  UNIX与DOS文件格式的转换 35
2.6.2  在UNIX系统中使用DOS分区 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  全屏幕编辑器vi 43
3.2.1  如何进入vi、退出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章  shell程序设计 67
5.1  shell编程的基本知识 67
5.1.1  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.4.2  程序的控制结构 77
5.5  条件控制语句 77
5.6  循环语句 83
5.7  shell编程中常用的其他语句 86
5.8  shell程序的调试方法 87
5.9  本章小结 89
习题 89
第6章  UNIX文件系统 91
6.1  UNIX文件的概念 91
6.2  UNIX文件分类 91
6.2.1  普通文件 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  用于文件管理的系统调用 118
6.6.1  文件描述符 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  UNIX中的进程 136
7.2.1  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.2  UNIX进程调度程序 150
7.4.3  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  UNIX进程管理的系统调用 162
7.7.1  进程管理系统调用的作用 162
7.7.2  进程的创建 162
7.7.3  控制进程执行特定任务 164
7.7.4  控制进程的终止 166
7.7.5  进程的同步 166
7.7.6  库函数system 167
7.8  本章小结 168
习题 169
第8章  UNIX系统的进程通信 171
8.1  进程通信的基本概念 171
8.1.1  进程通信的分类 171
8.1.2  进程间通信 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  管道通信 180
8.3.1  管道的读写控制 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.3  驱动程序的基本结构 218
9.7.4  常用设备接口 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  多线程平台特性 229
10.2.1  设计中可利用线程改进程序的响应能力 229
10.2.2  处理器结构改善直接影响程序执行效率 229
10.2.3  线程的执行状态及运行特性 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.2  多线程标准库 235
10.5.3  多线程编程规则 235
10.6  多线程程序设计技术 238
10.6.1  创建和使用简单线程 238
10.6.2  对线程的常用操作 240
10.6.3  线程中使用的数据 242
10.7  多线程程序设计综合举例 244
10.8  本章小结 248
习题 249
第11章  UNIX网络结构及Internet技术 251
11.1  计算机网络的基本原理 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.1.7  网络操作系统 256
11.2  UNIX网络结构及支持协议 256
11.2.1  UNIX网络分层结构 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.6  套接字协议族 264
11.3.7  套接字类型 264
11.3.8  套接字函数 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  UNIX的信息查询服务工具 275
11.5.1  Archie 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.1  源代码控制系统SCCS 293
12.3.2  并行开发程序管理器 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

教学资源推荐
作者: [美]弗兰克 J. 法博齐(Frank J. Fabozzi),埃德温 H. 尼夫(Edwin H. Neave),[美]周国富(Guofu Zhou) 著
作者: [比]保罗•德•格劳威(Paul De Grauwe) 著