基本信息·出版社:机械工业出版社 ·页码:342 页 ·出版日期:2010年01月 ·ISBN:7111283740/9787111283744 ·条形码:9787111283744 ·版本:第3版 · ...
商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
|
UNIX操作系统教程(第3版) |
|
|
|
UNIX操作系统教程(第3版) |
|
基本信息·出版社:机械工业出版社
·页码:342 页
·出版日期:2010年01月
·ISBN:7111283740/9787111283744
·条形码:9787111283744
·版本:第3版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:普通高等教育“十一五”国家级规划教材
·图书品牌:华章图书
内容简介 《UNIX操作系统教程(第3版)》内容简介:本教材第3版修订中删减了第2版中一些过时的UNIX技术和描述,增加了针对Linux系统设计技术和使用技术的阐述,增加了对UNIX环境编程实用技术的描述。其中第1章是有关UNIX技术的概述,第2~4章描述UNIX应用技术,第5~6章重点说明UNIX环境的编程技术,第7~11章阐述UNIX内核实现技术,第12~14章描述UNIX扩展知识。《UNIX操作系统教程(第3版)》讲解细致,由浅入深,全面论述了UNIX系统的核心技术与操作系统的基本原理。新版教材更加实用,非常适合作为高等院校计算机及相关专业的操作系统等课程的教材,同时也适合对UNIX系统技术感兴趣的广大读者自学。
编辑推荐 《UNIX操作系统教程(第3版)》即可作为高等院校相关专业的操作系统课程教材,也可为需要了解和研究UNIX技术和应用的设计开发人员提供有益的支持和参考。UNIX操作系统和所包含的核心技术在经历了近半个世纪的风雨和磨难后,在新的流行操作系统如火如荼发展的今天又重新受到大家的关注,因为学术界、产业界和教育界都意识到了此项技术对于今天操作系统发展所起到的不可替代的作用和产生的重要影响。因此如何科学地研究、学习和掌握UNIX技术?如何把握好UNIX技术研究和UNIX应用技术学习的尺度?如何将操作系统的理论学习和实际系统的设计技术相结合?如何在系统学习操作系统技术的同时,给学生或读者提供概念清晰、易于实践的教学读本?是很多操作系统授课老师时常思考的问题。经过多年的教学实践,作者对上述问题有了自己独特的理解,并力求将这些解决方案集中体现在本教程的第3次修订中,希望广大读者和教师能从中获益。
在本次修订中,特别增添了一些UNIX实用编程设计技术,同时为满足学生和读者提出的自学要求,添加了一些指导性的实例教学内容。为配合部分高校老师的教学,对有些教学内容和教学层次也做了适当修订。
目录 第1章 绪论
1.1 操作系统概述
1.1.1 建立操作系统的目标
1.1.2 操作系统是用户与计算机的接口
1.1.3 操作系统是资源管理器
1.2 UNIX系统的主要特性
1.3 UNIX系统的发展史
1.4 开源软件与UNIX的推广发展
1.4.1 开源软件
1.4.2 促进UNIX发展的重要组织机构
1.4.3 各种UNIX系统分支
习题
第2章 UNIX基本概念及入门技术
2.1 UNIX系统基本常识
2.1.1 两种前端机
2.1.2 用户的注册与注销
2.1.3 账户的管理
2.1.4 用户口令的管理
2.1.5 用户组信息
2.2 初识UNIX的shell
2.2.1 什么是shell程序
2.2.2 shell的内部命令和外部命令
2.3 UNIX系统启动及用户登录过程
2.3.1 UNIX系统的启动方式
2.3.2 UNIX系统的启动过程
2.3.3 Linux引导过程实例
2.3.4 用户的登录过程
2.4 UNIX常用命令介绍
2.4.1 UNIX命令使用方法
2.4.2 多命令行及多行命令
2.4.3 一般常用命令
2.4.4 用于目录操作的命令
2.4.5 用于文件操作的命令
2.4.6 有关状态及信息查询的命令
2.4.7 用于网络和通信的命令
2.5 UNIX系统体系结构
2.5.1 传统UNIX系统体系结构
2.5.2 现代UNIX系统体系结构
2.6 UNIX系统使用注意事项
2.6.1 正确选择用户访问权限
2.6.2 移动存储设备的使用
2.6.3 UNIX对多种文件系统类型的支持
2.7 本章小结
习题
第3章 编辑UNIX的文本文件
3.1 标准编辑器ed
3.1.1 使用edc的基本常识
3.1.2 元字符和正则表达式
3.1.3 如何进入ed.c退出ed及保存文本文件
3.1.4 ed中的常用命令
3.2 全屏幕编辑器vi
3.2.1 如何进入vi.c退出vi及保存一个文件
3.2.2 命令行方式下的常用命令
3.2.3 末行命令方式下的常用命令
3.2.4 进入插入编辑方式的常用命令
3.2.5 使用vi的注意事项
3.2.6 vi环境的设置
3.3 Emacs编辑器
3.3.1 Emacs的使用方法
3.3.2 Emacs主菜单功能简介
3.3.3 Emacs中的功能键
3.4 本章小结
习题
第4章 UNIX系统的shell
4.1 shell概述
4.1.1 shell的基本功能
4.1.2 多种UNIX的shell
4.2 shell的内部特性
4.2.1 shell的命令解释过程
4.2.2 UNIX系统定义的标准流
4.2.3 shell语法管理
4.2.4 c标准流重定向与管道线控制
4.2.5 错误流重定向
4.2.6 命令执行控制及滤波功能
4.3 shell的环境设置
4.3.1 shell环境变量
4.3.2 Linux系统的shell环境配置
4.3.3 Korncshell环境设置
4.3.4 Ccshell环境设置
4.4 本章小结
习题
第5章 shell程序设计
5.1 shell编程的基本知识
5.1.1 shell程序可完成的工作
5.1.2 shell程序编写格式
5.1.3 shell程序的运行方式
5.2 shell变量的使用
5.2.1 shell变量及变量赋值
5.2.2 变量的访问及变量参数替换
5.2.3 变量的作用域
5.2.4 shell的预定义变量和环境变量
5.2.5 shell中命令的位置变量
5.2.6 变量替换
5.2.7 用命令做变量替换
5.3 test命令的使用
5.3.1 对文件特性的测试
5.3.2 对字符串内容的测试_
5.3.3 对整数n的测试
5.4 shell程序的控制流
5.4.1 命令的返回状态
5.4.2 程序的控制结构
5.5 条件控制语句
5.6 循环语句
5.7 shell编程中常用的其他语句
5.8 shell程序的输出
5.9 shell程序的调试方法
5.10 本章小结
习题
第6章 UNIX系统编程基础
6.1 程序设计环境
6.1.1 理想中的程序设计环境
6.1.2 多任务环境下的程序执行
6.2 基于操作系统支持的程序设计
6.2.1 建立系统编程思想
6.2.2 UNIX提供的系统支持
6.2.3 关于UNIX的系统调用
6.2.4 系统调用与库函数的关系
6.3 在UNIX环境中完成C编程
6.3.1 编程需要掌握的工具
6.3.2 makefile文件编写
6.3.3 C程序的编译与调试
6.3.4 链接特殊库函数
6.4 常用函数库glib的使用
6.4.1 glib基本类型定义
6.4.2 glib的宏
6.4.3 内存管理函数
6.4.4 字符串处理函数
6.4.5 glib可支持的数据结构
6.4.6 GString
6.4.7 计时器函数
6.4.8 错误处理函数
6.5 其他有关函数库
6.5.1 libxml库
6.5.2 readline库
6.5.3 curses库
6.6 本章小结
习题
第7章 UNIX文件管理系统
7.1 UNIX文件的概念
7.2 UNIX文件分类
7.2.1 普通文件
7.2.2 目录文件
7.2.3 特殊文件
7.2.4 管道文件
7.2.5 链接文件
7.3 UNIX文件系统
7.3.1 文件的组织及命名
7.3.2 文件的许可机制
7.3.3 文件系统功能及结构
7.3.4 系统中的特殊目录
7.3.5 文件系统的安装与卸载
7.4 UNIX文件系统内部存储方式
7.4.1 逻辑卷与物理卷
7.4.2 文件系统的存储结构
7.4.3 索引节点和目录文件的作用
7.4.4 多重索引存储结构
7.5 UNIX文件系统的动态管理技术
7.5.1 支持多种文件系统的机制
7.5.2 文件信息的动态管理
7.5.3 文件的检索过程
7.5.4 文件共享方式
7.6 用于文件管理的系统调用
7.6.1 文件描述符
7.6.2 用于文件创建和文件链接的系统调用
7.6.3 文件打开与关闭的系统调用
7.6.4 文件的读、写系统调用
7.7 文件随机存取技术
7.7.1 改变文件指针位置
7.7.2 捕获当前文件指针位置
7.8 文件记录管理技术
7.8.1 记录锁定技术描述
7.8.2 记录锁定技术举例
7.9 常用文件系统备份与恢复技术
7.10 本章小结
习题
第8章 UNIX的进程管理
8.1 进程的基本概念
8.1.1 程序的并发执行
8.1.2 进程的定义和描述
8.1.3 进程的状态
8.1.4 进程控制基本概念
8.2 UNIX进程管理机制
8.2.1 进程创建
8.2.2 进程描述
8.2.3 进程管理数据结构
8.3 IJNIX命令执行及进程属性
8.3.1 命令执行与进程相关
8.3.2 进程属性说明
8.4 UNIX进程调度与管理
8.4.1 UNIX进程状态及其转换
8.4.2 UNIX进程调度程序
8.4.3 IJNIX进程调度策略及其实现
8.5 UNIX进程管理的系统调用
8.5.1 进程管理系统调用的作用
8.5.2 进程的创建
8.5.3 控制进程执行特定任务
8.5.4.控制进程的终止
8.5.5 进程的同步
8.5.6 库函数system
8.6 本章小结
习题
第9章 UNIX存储管理
9.1 存储管理基本概念
9.1.1 存储器配置原则
9.1.2 存储管理基本任务
9.2 地址重定位
9.2.1 逻辑地址空间
9.2.2 物理地址空间
9.2.3 地址重定位
9.3 常用存储管理技术
9.3.1 连续内存分配方式
9.3.2 覆盖和交换技术
9.3.3 分页管理技术
9.3.4 段式管理技术
9.4 虚拟存储技术
9.4.1 局部性原理
9.4.2 虚拟存储思想
9.4.3 虚拟存储实现方法
9.4.4 虚拟存储页面置换算法
9.5 UNIX存储管理策略
9.5.1 交换策略
9.5.2 请求调页策略
9.6 Linux为存管理实现技术
9.6.1 Linux存储地址识别
9.6.2 Linux进程存储空间
9.6.3 Linux的分段模型
9.6.4 Linux的分页模型
9.6.5 Linux进程虚地址空间描述
9.6.6 Linux物理内存空间管理
9.6.7 基于Slab的缓存管理
9.7 本章小结
习题
第10章 UNIX系统的进程通信
10.1 进程通信的基本概念
10.1.1 进程通信的分类
10.1.2 进程间通信
10.1.3 进程通信实现方式
10.2 UNIX的基本通信技术
10.2.1 锁文件通信
10.2.2 记录锁定文件通信
10.2.3 信号
10.2.4 用信号完成通信
10.3 管道通信
10.3.1 管道的读写控制
10.3.2 无名管道通信
10.3.3 有名管道通信
10.4 共享存储区通信技术
10.4.1 共享存储区的概念
10.4.2 共享存储区的建立与操作
10.4.3 共享存储区通信实例
10.5 UNIX的IP-l
10.5.1 UNIX SystemV IPC基本机制
10.5.2 消息队列
10.5.3 Linux系统的IPC机制
10.6 本章小结
习题
第11章 UNIX的设备管理
11.1 设备管理的基本概念
11.1.1 设备管理模块的功能
11.1.2 设备分类管理
11.1.3 I/O传输控制技术
11.1.4 虚拟设备管理技术
11.2 UNIX的设备管理结构
11.2.1 设备管理体系结构
11.2.2 UNIX的设备分类标识
11.2.3 UNIX的设备特殊文件
11.2.4 逻辑设备描述及访问
11.3 设备状态及设备控制
11.3.1 设备状态及其转换
11.3.2 设备控制策略
11.4 设备驱动与系统内核间的关联
11.4.1 设备驱动程序
11.4.2 驱动程序与内核间的关联
11.4.3 设备驱动程序与文件系统的关系
11.5 块设备的数据高速缓存机制
11.5.1 缓冲控制块的设置
11.5.2 缓冲池的结构
11.5.3 缓冲区的分配与释放
11.6 对设备做读写操作
11.6.1 块设备的读写
11.6.2 字符设备的读写
11.7 Linux系统设备管理问题
11.7.1 Linux设备驱动程序的特点
11.7.2 驱动程序与外界的接口
11.7.3 驱动程序的基本结构
11.7.4 常用设备接口
11.7.5 外设连接自动检测技术
11.8 本章小结
习题
第12章 UNIX的多线程环境
12.1 线程的基本概念
12.1.1 多线程基础
12.1.2 包含线程的进程模型
12.2 多线程平台特性
12.2.1 设计中可利用线程改进程序的响应能力
12.2.2 处理器结构改善直接影响程序执行效率
12.2.3 线程的执行状态及运行特性
12.3 多线程管理模式
12.3.1 纯用户级线程管理模式
12.3.2 纯核心级线程管理模式
12.3.3 组合型的线程管理模式
12.4 UNIX的多线程管理结构
12.5 多线程编程
12.5.1 多线程程序结构的改变
12.5.2 多线程标准库
12.5.3 多线程编程规则
12.6 多线程程序设计技术
12.6.1 创建和使用简单线程
12.6.2 对线程的常用操作
12.6.3 线程中使用的数据
12.7 多线程程序设计综合举例
12.8 本章小结
习题
第13章 UNIX网络特性及支撑环境
13.1 计算机网络基本知识
13.1.1 通信子网
13.1.2 资源子网
13.1.3 计算机网络的主要功能
13.1.4 计算机网络分类
13.1.5 计算机网络体系结构
13.1.6 网络中的传输介质和连接
13.1.7 网络操作系统
13.2 UNIX网络结构及支持协议
13.2.1 LINIX网络分层结构
13.2.2 UNIX中的TCP/IP协议
13.2.3 UNIX系统支持的UUCP协议
13.2.4 基于协议的Internet应用
13.3 网络间进程通信
13.3.1 套接字解决的问题
13.3.2 套接字通信的基本知识
13.3.3 套接字和套接字地址
13.3.4 套接字在虚电路服务中的应用
13.3.5 套接字在数据报服务中的应用
13.3.6 套接字协议族
13.3.7 套接字类型
13.3.8 套接字函数
13.4 用UNIX平台构建Internet网络环境
13.4.1 用户域名和IP地址
13.4.2 TCP/IP配置信息
13.4.3 电子邮件服务
13.4.4 远程文件传输服务
13.4.5 远程登录telnet服务
13.4.6 网络文件系统
13.5 本章小结
习题
第14章 X-Window及其他实用程序
14.1 X-Window
14.1.1 x-Window的特征
14.1.2 x-Window的工作方式
14.1.3 x-Window的组成部件
14.1.4 x-Window编程环境介绍
14.2 数据检索加工工具awk
14.2.1 awk基本描述
14.2.2 awk中的记录和字段
14.2.3 awk中使用的模式
14.2.4 awk中的操作语句
14.3 程序管理器
14.3.1 源代码控制系统SCCS
14.3.2 并行开发程序管理器
14.4 词法分析和语法分析生成工具
14.5 本章小结
习题
附录A UNIX系统中的常用系统调用
附录B Linux系统中的C环境
附录C UNIX/Linux常用命令
参考文献
……
序言 《IJNIX操作系统教程》自2003年出版以来,得到许多高校师生的认同和支持,尤其是本书第2版自2006年1月第1次印刷以来,到目前已重印了9次,并被多所高校确定为授课教材。有很多读者通过多种渠道与我们联系,讨论本书涉及的教学和各种技术问题,并提出很多中肯的批评和建议。这些积极热情的反馈建议说明了读者对我们的支持和厚爱,我们在表示由衷感谢的同时也感到责任的重大。为回报大家的关爱,在本书出版近4年之际,我们决定进行第三次修订。本次修订是在前两版的基础上对教程内容进行的又一次重要调整,主要完成的工作包括:
1)删减了第2版中一些过时的UNIX技术描述;
2)增加了针对Linux系统的设计和使用方法的阐述;
3)将书中所有的举例程序都重新在Linux 2.6系统上进行了运行验证;
4)增加了对UNIX环境的编程实用技术描述。
修订后的教程将更便于读者自学,并可以做到边学习边实践。教程中给出的程序实例都在Linux 2.6环境中进行了调试验证,包括头文件和语法格式都进行了调整。这样做的意义是使大多数读者将学习重点放在理解LINIX相关概念和消化UNIX实用设计技术上,避免过多地关注高级语言的语法细节。另外,在设计书中的程序举例时,我们充分考虑了读者进行扩展练习的需要,一般都是给出一个最基本的格式,在这个格式下读者可以进行多种扩展,以完成一个典型的应用实例。
本书的目标是以介绍UNIX应用技术为起点,进而描述UNIX核心技术和实现策略,修订后的教程应该更适合本科教学和读者自学,因为无论是在系统性方面,还是在由浅入深的技术阐述方面,教程都有了进一步的完善和改进。修订后的教程共包括14章,其中第1章是有关UNIX技术的概述,第2~4章是UNIX应用技术的描述,第5~6章重点说明UNIX环境的编程技术,第7~1l章是UNIX内核实现技术的阐述,第12~14章是有关UNIX扩展知识的描述。这些章节的内容,构成了我们为读者设计的学习UNIX技术的不同阶段,即学习UNIX基本知识的第一个阶段,掌握UNIx实用技术的第二个阶段,理解UNIX核心实现技术的第三个阶段以及了解和掌握UNIX扩展知识的第四个阶段。经历过这些阶段的学习和实践,希望能使读者对UNIX操作系统技术有一个比较全面的理解和认识,同时还能具备一定的UNIX环境编程开发能力。由于UNIX系统的核心实现技术是操作系统原理的很好应用和延展,因此在学习过程中最适宜的做法是采用理论与实践相结合的方式,循序渐进地掌握操作系统理论。希望这种学习方式可以提升读者对操作系统技术的学习兴趣,能够适当地减轻传统操作系统教学中理论枯燥、概念抽象等给人带来的困扰。
本书适合用做高等院校计算机及相关专业的UNIX系统技术和操作系统课程的教学和辅导教材,同时也适合对UNIX系统技术感兴趣的软件开发人员自学。学习本书内容,需要读者具备一定的计算机体系结构和C语言程序设计的知识(当然,这些知识的掌握也可以同步进行)。在进行教学时,课程实验环境建议建立在Linux 2.6系统中,基本的编程语言采用C语言。学习中除了本教程中给出的例题外,读者还可以参考与本教程第2版配套的实验教材。
文摘 插图:
1.2 UNIX系统的主要特性
UNIX系统实现技术中有很多优秀的技术特点,在操作系统的发展历程中,它们一直占据着技术上的制高点。很长一个阶段中,UNIX是许多其他操作系统学习模仿的样板。UNIX系统的特点和优势很多,此处我们仅列出几个主要的特征,便于大家对UNIX系统有一个初步的了解。
1.用简单的设计技术和方法去完成较复杂、较全面的功能
在UNIX系统的设计中,所采用的最基本的设计思想是将复杂的问题进行分解,用最简单、最基本的功能模块做堆积、连接、组合来解决复杂问题。这样在设计上不但可以保证每个基本模块功能单一、易于实现、设计结构清晰,而且组合使用的效果也会比较理想。也正是因为这种设计思想的出现,才引发了软件规范化模块化设计、软件构件可重用理论与方法的研究,这也是当今软件工程设计的重要思想。随着基本设计模块的不断积累,设计库的不断丰富壮大,UNIX系统的延展性、可移植性得到了充分的发挥,并大大缩减了设计的工作量和工程实现时间。这也是UNIX系统不断被新的计算机系统所接受的重要原因之一。
2.支持多用户、多任务的运行环境
由于UNIX系统内部采用分时多任务调度管理策略,它不但可以支持某一用户在某一时刻和某一地点上的多种请求,而且能够同时满足多个用户的相同或不同的请求。采用多用户分时多任务调度管理策略,计算机可为多个用户的一般性请求提供服务。比如,用户可以在进行数据处理的同时向另一个用户发送电子邮件;在边播放音乐的同时浏览相关网站的信息。这种方式与我们在日常生活中做事的情况很相似。一般微机上的UNIX系统就可以支持多个用户的同时请求,在大型机中运行的UNIX系统,更是可以支持几百个用户同时进行工作。由于UNIX具有良好的多用户分时多任务调度管理特点,这些共同使用UNIX系统的用户并不会感觉到所使用的计算机资源被分割、被抢占,而是感觉自己在独占计算机资源。
3.文件系统可随意装卸
由于UNIX系统采用模块化的结构进行设计,为了便于系统构造和用户使用,其文件系统是可裁剪的。用户使用文件系统时,可根据需要构建独特的文件系统并将它对应于某个指定的硬件存储设备。使用时可以加载,用完后卸载。这样做可以最大限度地保证用户使用数据时的方便性和安全性;而对UNIX系统设计来讲,这样的措施可以保证系统的简洁性。
4.良好的开放性和可移植性
随着计算机技术的发展,各
……