本书全面实用地介绍了UNIX操作系统。全书共分三部分,首先介绍UNIX系统的常用命令和使用方法;然后讲述了UNIX的核心设计技术,对UNIX中的文件系统、设备管理以及进程与存储管理进行全面讲述;最后介绍UNIX的扩展知识,如UNIX中的Internet技术等。\r\n 本书可作为大学计算机专业及相关专业的教材或参考书,也可供有关技术人员阅读参考。
前言\r\n\r\n第一部分 UNIX系统基础篇\r\n\r\n第1章 UNIX系统绪论 \r\n\r\n1.1 UNIX系统的主要特性 \r\n1.2 UNIX系统的发展史 \r\n1.3 UNIX系统的基本结构 \r\n习题 \r\n\r\n第2章 UNIX系统技术入门 \r\n\r\n2.1 UNIX系统基本常识 \r\n2.1.1 控制台和终端机 \r\n2.1.2 用户的注册与注销 \r\n2.1.3 账户的管理 \r\n2.1.4 用户口令的管理 \r\n2.1.5 用户组信息 \r\n2.2 UNIX的shell \r\n2.2.1 内部命令和外部命令 \r\n2.2.2 UNIX的shell程序 \r\n2.3 UNIX系统启动及用户登录 \r\n2.3.1 UNIX系统的启动方式 \r\n2.3.2 UNIX系统的启动过程 \r\n2.3.3 用户的登录过程 \r\n2.4 UNIX常用命令介绍 \r\n2.4.1 UNIX命令使用方法 \r\n2.4.2 多命令行及多行命令 \r\n2.4.3 一般常用命令介绍 \r\n2.4.4 用于目录操作的命令 \r\n2.4.5 用于文件操作的命令 \r\n2.4.6 有关状态和信息查询的命令 \r\n2.4.7 用于网络和通信的命令\r\n2.5 UNIX系统与其他系统关联\r\n2.5.1 UNIX与DOS文件格式的转换\r\n2.5.2 DOS分区在UNIX系统中的使用\r\n2.6 本章小结\r\n习题\r\n\r\n第3章 UNIX系统编辑器\r\n\r\n3.1 UNIX标准编辑工具ed\r\n3.1.1 使用ed的基本常识\r\n3.1.2 元字符和正则表达式\r\n3.1.3 ed中使用的命令\r\n3.2 全屏幕编辑工具vi\r\n3.2.1 vi的操作方式\r\n3.2.2 命令行方式中常用命令\r\n3.2.3 末行命令方式下常用操作命令\r\n3.2.4 进入插入编辑方式的常用命令\r\n3.2.5 使用vi时的注意事项\r\n3.3 emacs编辑器\r\n3.3.1 emacs的使用方法\r\n3.3.2 emacs主菜单功能简介\r\n3.3.3 emacs中的功能键\r\n3.4 本章小结\r\n习题\r\n\r\n第4章 shell及shell编程\r\n\r\n4.1 shell基本概念\r\n4.1.1 shell的基本功能\r\n4.1.2 UNIX系统中标准流的定义\r\n4.2 shell命令解释功能\r\n4.2.1 shell命令解释程序\r\n4.2.2 输入/输出重定向\r\n4.2.3 错误流重定向\r\n4.2.4 管道线的处理\r\n4.2.5 后台处理及滤波功能\r\n4.3 用户工作环境设置\r\n4.3.1 工作环境变量\r\n4.3.2 Korn shell的环境变量的设置\r\n4.3.3 C shell中环境变量的设置\r\n4.4 shell程序设计\r\n4.4.1 shell程序的执行方式\r\n4.4.2 shell变量的使用\r\n4.4.3 test命令的使用\r\n4.4.4 条件控制语句\r\n4.4.5 循环语句\r\n4.4.6 shell程序的调试方法\r\n4.5 本章小结\r\n习题\r\n\r\n第二部分 UNIX系统核心技术篇\r\n\r\n第5章 UNIX文件系统\r\n\r\n5.1 UNIX系统中的文件\r\n5.1.1 普通文件\r\n5.1.2 目录文件\r\n5.1.3 特殊文件\r\n5.1.4 UNIX文件的许可机制\r\n5.2 UNIX文件系统设计\r\n5.2.1 文件管理系统结构\r\n5.2.2 文件系统的维护\r\n5.2.3 物理卷与逻辑卷定义\r\n5.2.4 文件系统的存储结构\r\n5.2.5 索引节点和目录文件的作用\r\n5.2.6 文件的多重索引存储结构\r\n5.2.7 可支持多种文件系统的机制\r\n5.3 UNIX文件系统动态管理方法\r\n5.3.1 文件系统的动态数据结构\r\n5.3.2 文件的检索过程\r\n5.3.3 文件共享的实现及应用\r\n5.4 用于文件管理的系统调用\r\n5.4.1 文件描述符\r\n5.4.2 用于文件创建和文件链接的系统调用\r\n5.4.3 文件的打开与关闭的系统调用\r\n5.4.4 文件的读和写系统调用\r\n5.4.5 文件随机存取系统调用\r\n5.4.6 文件记录锁定系统调用\r\n5.5 文件系统的备份与恢复\r\n5.6 本章小结\r\n习题\r\n\r\n第6章 UNIX进程调度及进程存储管理\r\n\r\n6.1 进程基本概念\r\n6.1.1 程序的并发执行\r\n6.1.2 进程的定义和描述\r\n6.1.3 进程的状态\r\n6.1.4 进程控制基本概念\r\n6.2 UNIX中的进程\r\n6.2.1 UNIX系统进程创建机制\r\n6.2.2 UNIX中进程的描述\r\n6.2.3 UNIX进程描述中的数据结构\r\n6.3 UNIX进程调度与管理\r\n6.3.1 UNIX进程状态及其转换\r\n6.3.2 UNIX进程调度程序\r\n6.3.3 UNIX进程调度算法与调度策略\r\n6.4 存储管理基本概念\r\n6.4.1 存储管理技术\r\n6.4.2 虚拟存储技术\r\n6.5 UNIX进程存储管理\r\n6.5.1 进程存储中的交换策略\r\n6.5.2 进程存储中的请求调页策略\r\n6.5.3 UNIX进程存储管理体系结构\r\n6.6 UNIX进程管理的系统调用\r\n6.6.1 系统调用可以控制进程的运行\r\n6.6.2 进程的创建\r\n6.6.3 进程执行特定任务的系统调用\r\n6.6.4 进程终止的系统调用\r\n6.6.5 进程的同步\r\n6.6.6 库函数system\r\n6.7 本章小结\r\n习题\r\n\r\n第7章 UNIX系统的进程通信\r\n\r\n7.1 进程通信基本概念\r\n7.1.1 主从式通信\r\n7.1.2 会话式通信\r\n7.1.3 消息或邮箱通信\r\n7.1.4 共享存储区进程通信\r\n7.1.5 UNIX系统进程通信方式\r\n7.2 基本通信\r\n7.2.1 锁文件通信\r\n7.2.2 记录锁定文件通信\r\n7.2.3 信号\r\n7.2.4 使用信号完成通信\r\n7.3 管道通信\r\n7.3.1 管道的读写特点\r\n7.3.2 无名管道通信\r\n7.3.3 有名管道\r\n7.4 IPC\r\n7.4.1 IPC简介\r\n7.4.2 IPC中的消息队列机制\r\n7.5 本章小结\r\n习题\r\n\r\n第8章 UNIX系统的设备管理\r\n\r\n8.1 设备管理的基本概念\r\n8.1.1 设备管理模块的功能\r\n8.1.2 设备分类管理\r\n8.1.3 I/O传输控制技术\r\n8.2 UNIX系统设备管理结构\r\n8.2.1 UNIX设备管理体系结构\r\n8.2.2 UNIX设备分类描述方式\r\n8.2.3 UNIX描述的物理设备\r\n8.2.4 UNIX描述的逻辑设备\r\n8.3 UNIX设备状态及设备控制\r\n8.3.1 设备状态及其转换\r\n8.3.2 设备控制策略\r\n8.4 设备驱动与文件系统的关联\r\n8.4.1 设备驱动程序\r\n8.4.2 设备驱动与文件系统的关联\r\n8.5 块设备的高速数据缓存机制\r\n8.5.1 缓冲控制块的设置\r\n8.5.2 缓冲池的结构\r\n8.5.3 缓冲区的分配与释放操作\r\n8.6 设备的读写访问\r\n8.6.1 块设备的读写\r\n8.6.2 字符设备的读写\r\n8.7 设备管理中磁盘管理的实现\r\n8.7.1 磁盘控制器的类型\r\n8.7.2 系统对磁盘驱动器的管理\r\n8.8 本章小结\r\n习题\r\n\r\n第三部分 UNIX系统技术扩展篇\r\n\r\n第9章 UNIX系统多线程环境\r\n\r\n9.1 线程的基本概念\r\n9.1.1 线程引入原理\r\n9.1.2 包含线程的进程模型\r\n9.1.3 引入线程后的系统特性\r\n9.1.4 多线程系统中的线程管理模式\r\n9.2 UNIX的多线程管理结构\r\n9.3 多线程程序设计规则\r\n9.3.1 多线程程序结构的改变\r\n9.3.2 多线程标准库\r\n9.3.3 多线程编程规则\r\n9.4 多线程程序设计技术\r\n9.4.1 创建和使用简单线程\r\n9.4.2 对线程的常用操作\r\n9.4.3 线程中使用的数据\r\n9.5 多线程程序设计综合举例\r\n9.6 本章小结\r\n习题\r\n\r\n第10章 UNIX网络结构及Internet技术\r\n\r\n10.1 网络系统基本原理\r\n10.1.1 通信子网\r\n10.1.2 资源子网\r\n10.1.3 计算机网络分类方法\r\n10.1.4 网络协议及OSI参考模型\r\n10.2 UNIX网络系统结构及使用协议\r\n10.2.1 UNIX网络分层结构\r\n10.2.2 UNIX中运行的TCP/IP协议\r\n10.2.3 UNIX中运行的UUCP协议\r\n10.3 用UNIX系统构建Internet网络平台\r\n10.3.1 主机地址和域名服务\r\n10.3.2 UNIX的TCP/IP配置信息\r\n10.3.3 Internet服务的建立\r\n10.4 UNIX的信息查询服务工具\r\n10.4.1 Archie\r\n10.4.2 WAIS\r\n10.4.3 信息查询工具Gopher\r\n10.4.4 WWW查询工具\r\n10.5 本章小结\r\n习题\r\n\r\n第11章 X-Window及其他实用程序\r\n\r\n11.1 X-Window\r\n11.1.1 X-Window软件的特征\r\n11.1.2 X-Window的工作方式\r\n11.1.3 X-Window中的功能模块\r\n11.1.4 X-Window的编程环境\r\n11.2 数据检索加工工具 awk\r\n11.2.1 awk的基本功能\r\n11.2.2 awk字段的使用说明\r\n11.2.3 awk模式的解释\r\n11.2.4 awk中执行动作的说明\r\n11.3 程序管理器\r\n11.3.1 源代码控制系统SCCS\r\n11.3.2 程序文件维护实用程序make\r\n11.4 词法分析和语法分析生成工具\r\n11.5 本章小结\r\n习题\r\n\r\n附录A UNIX系统中的常用系统调用\r\n附录B Linux系统安装与环境设置\r\n附录C 习题解答与综合测试\r\n参考文献
UNIX系统自20世纪70年代诞生以来,经历了30多年的风风雨雨,从最初的一个简单文件管理软件,变成当今事实上的操作系统标准。纵观UNIX系统的发展史可以深切地感受到,UNIX之所以有强大的生命力,完全是源于其完美的技术内涵、系统的严谨性和系统的安全可靠性以及方便的使用方式等特点。
今天UNIX系统依然是各种类型计算机(特别是小型机和工作站)上的主流操作系统。近年来,Linux系统与UNIX系统全兼容的性能以及系统内码开放等特点得到了众多用户的青睐。人们在研究和开发Linux系统的同时也在探索UNIX成功的奥秘,进而掀起了学习UNIX系统技术的新浪潮。实践证明,掌握UNIX系统技术不仅可以使我们获得计算机操作系统应用技术,增强对计算机体系结构和操作系统理论的了解,同时对研究与开发Linux和UNIX都会有很大的帮助。
本书适合作为高等院校计算机及相关专业的操作系统课程的教材或参考书,读者对象是具有一定计算机体系结构和C语言程序设计知识的教师、研究生和本科生。本书还可作为那些对UNIX系统平台进行较深入内核技术研究的设计者,以及那些在UNIX系统平台上进行软件开发人员和程序设计人员的参考用书。我们希望通过本书来介绍一些关于UNIX系统较深层次的技术知识和新开发的技术。
在本书的编写过程中,我们为读者安排了三步走的过程,即UNIX系统基本应用技术的学习、操作系统的理论知识和系统内核设计技术的学习、现代UNIX操作系统技术的了解与学习。读者通过本书的学习,可以将枯燥的操作系统理论与实际可用的UNIX操作系统应用和设计技术相结合。读者可以从UNIX的简单使用命令开始,逐步深入到系统内核的基本实现技术中,对UNIX操作系统建立一个全面的、系统的认知体系,同时也对现代操作系统设计方法有全面的认识。
为了帮助读者加深学习与理解,也为了使本书更好地为教学服务,我们为每章习题都做了解答,放在附录中,并且出了两套综合练习,以帮助读者加深学习和理解。本书中所有引用的程序和例子除了有特殊的说明外都在Solaris 2.5或Linux系统的Red Hat Linux 7.1中调试通过。
本书共分三篇11章,对UNIX系统做了全面系统地介绍,内容包括:
·UNIX系统基础篇 包括4章的内容。主要介绍UNIX系统的发展过程、UNIX在操作系统领域中的位置及常用命令和基本知识,同时还描述了shell的基本结构、shell的基本功能、shell环境设置以及shell编程方法。
·UNIX系统核心技术篇 包括4章的内容。主要针对UNIX系统内核设计技术描述了文件系统的设计与实现方法,UNIX系统的进程和存储管理技术,UNIX系统进程通信的机制,UNIX系统的设备管理技术。
·UNIX系统技术扩展篇 包括3章的内容。主要介绍现代UNIX系统发展的状况及新技术,内容包括:线程引入概念、UNIX系统的多线程编程环境的体系结构、多线程程序设计方法、多线程同步问题以及多线程程序设计的实例;UNIX系统中的网络技术及Internet技术。包括网络的概念网络参考模型、TCP/IP、UUCP协议、UNIX系统中的网络配置及命令使用方法和网络工具的介绍等;在UNIX系统运行中使用的一些相关实用模块功能的介绍。包括X-Window、awk和程序管理工具等内容。
本书的第1、2、8章由李福才编写,其余章节由张红光编写。在本书的编写过程中作者参阅了大量的相关著作和资料,并就书中的一些相关专题与有关专家和学者进行了多方面的探讨,获益匪浅。在本书的编写中得到清华大学和南开大学诸多教授和同行们的指点,并对作者给予了很多的支持和帮助;南开大学信息学院研究生张楠、徐巧丽完成了本书附录C“习题解答与综合测试”中部分内容的编写和程序调试,研究生李彤、刘图昭等对本书进行了编辑和校对工作,付出了辛勤的劳动。此外机械工业出版社华章图文信息有限公司的编辑们为本书的出版付出了辛勤劳动和努力,在此一并表示衷心的感谢。
虽然我们在编写和编辑过程中竭尽全力、仔细认真地工作,但由于水平有限和时间仓促,加上UNIX技术发展迅速,很多新思想和新技术容不得我们细心整理、学习总结。读者可能会发现书中存在的一些谬误和过时的观点,我们真心地期望读者能批评指正,提出宝贵意见,我们的电子邮件地址是:zliying@public.tpt.tj.cn
作 者
2002年5月于南开园