Unix 系统教程
UNIX
UNIX,一种多用户、多进程的计算机操作系统,源自于从 20 世纪 70 年代开始在美国 AT&T 公司的贝尔实验室开发的 AT&T Unix 。
Unix 除了作为网络操作系统之外,还可以作为单机操作系统使用。
Unix 作为一种开发平台和台式操作系统获得了广泛使用,目前主要用于工程应用和科学计算等领域。
Unix 特点
UNIX 系统在计算机操作系统的发展史上占有重要的地位。它确实对已有技术不断作了精细、谨慎而有选择的继承和改造,并且,在操作系统的总体设计构想等方面有所发展,才使它获得如此大的成功。UNIX 系统的主要特点表现在以下几方面:
-
UNIX 系统在结构上分为核心程序 (kernel) 和外围程序 (shell) 两部分,而且两者有机结合成为一个整体。核心部分承担系统内部的各个模块的功能,即处理机和进程管理、存储管理、设备管理和文件系统。核心程序的特点是精心设计、简洁精干,只需占用很小的空间而常驻内存,以保证系统的高效率运行。外围部分包括系统的用户界面、系统实用程序以及应用程序,用户通过外围程序使用计算机。
-
UNIX 系统提供了良好的用户界面,具有使用方便、功能齐全、清晰而灵活、易于扩充和修改等特点。UNIX 系统的使用有两种形式:一种是操作命令,即 shell 语言,是用户可以通过终端与系统发生交互作用的界面;另一种是面向用户程序的界面,它不仅在汇编语言,而且在 C 语言中向用户提供服务。
-
UNIX 系统的文件系统是树形结构。它由基本文件系统和若千个可装卸的子文件系统组成,既能扩大文件存储空间,又有利于安全和保密。
-
UNIX 系统把文件、文件目录和设备统一处理。它把文件作为不分任何记录的字符流进行顺序或随机存取,并使得文件、文件目录和设备具有相同的语法语义和相同的保护机制,这样既简化了系统设计,又便于用户使用。
-
UNIX 系统包含有非常丰富的语言处理程序、实用程序和开发软件用的工具性软件,向用户提供了相当完备的软件开发环境。
-
UNIX 系统的绝大部分程序是用 C 语言编程的,只有约占 5% 的程序用汇编语盲编程。C 语言是一种高级程序设计语言,它使得 UNIX 系统易于理解、修改和扩充,并且具有非常好的移植性。
-
UNIX 系统还提供了进程间的简单通信功能。
这里是一个 UNIX 系统基本框图:
功能模块
操作系统要管理计算机系统的硬件资源和软件资源,以便为用户所使用。硬件资源一般指 CPU(中央处理机)、存储器(内存和外存)、外部设备等。软件资源是指系统程序和数据,即操作系统、系统实用程序及应用软件,以及用户的程序和数据,它们都以文件的方式存放在存储器中。操作系统由若干个功能模块有机地联系在一一起,协调地进行工作。这些模块是:处理机和进程管理模块、存储管理模块、设备管理模块、文件系统和用户界面。
处理机和进程管理模块
由于处理机 (CPU) 是计算机中关键的资源,进程的执行与 CPU 密切相关,因此处理机和进程管理模块可简称为进程管理模块。我们把确定哪些作业将调入内存运行和完成运行后撤出内存的工作称为作业调度。把如何控制一个作业在运行阶段的三个状态间的转换称为进程调度。因而,如何充分发挥资源的利用率,使响应时间短,使各用户作业等待执行的时间最短,是制订相应的作业调度算法和进程调度算法的原则。只是在不同的操作系统中,对以上目标有不同的着重点,因而调度算法也就有所不同。
存储管理模块
存储管理是对作业从进入就绪状态起到运行结束之间所使用的存储器(包括内存和外存)进行管理。可以将存储管理模块的任务分为存储分配、地址映射和存储保护 3 部分。
存储分配
一个程序在编译和链接后,得到一个称为内存映像的文件。该文件描述了这个程序在运行时所需要的内存大小,其中包括代码和数据区的地址。这些地址称为逻辑地址,并且以首地址 0 为参考地址。每当一个作业调入内存,进入就绪状态,存储管理模块就要根据可利用的内存空间与作业所需要的内存两者进行计算,给该作业分配相应的内存空间。
地址映射
将一个作业装入内存,意味着一个进程将被创建。存储管理模块会把该作业的映像文件首地址(为零)对准内存中进程的首地址。这个进程的首地址或起始地址是内存中的物理地址,称为偏移量 (offset)。映像文件的逻辑地址加上偏移量,得到内存中的地址值均为物理地址。计算逻辑地址到物理地址的转换工作称为地址映射。映像中所有的逻辑地址都可转换为物理地址。
内存保护
内存空间总是被若干个进程分享,其中包括操作系统本身要常驻在内存中的那一部分。内存保护的任务是对内存空间中已划分出的区域,知道它们各属于哪些进程,并且知道每个进程有权访问的区域。每当一个进程执行过程中需要访问某个地址时,存储管理模块就要检查一下这个进程是否有权访问这个物理地址。通常,每个进程在内存中的区域是该进程可以访问的合法地址。如果访问的地址落在该进程的区域之外,即产生了非法访问。一旦遇到非法访问,内存保护就要拒绝访问,并进行出错处理。
设备管理模块
外部设备包括文件存储介质,例如磁盘、磁带、光盘等输入输出设备,例如字符终端、图形终端、各种打印机、绘图仪、显示器等;以及专用的输入输出设备,例如数据采集仪、图像摄入装置、音频输入输出设备等。 设备管理模块的任务是为用户提供方便和统一的界面,并根据作业对设备的申请,合理地分配这些资源,根据设备的性能和作用对设备分类,再用不同的驱动程序去驱动这些设备工作,以提高设备的效率。
文件系统
文件系统又可称为信息管理模块,或者文件管理模块,主要负责对软件资源的管理。所有的软件资源都以文件的形式存放在存储介质中,并以文件为单位,在计算机中传递信息。因此,文件被定义为一组相关信息元素的集合。所有的文件在计算机中形成一个文件系统,虽然与操作系统的一个管理模块同名,但是由于它们出现的场合及上下文不同,通常是可以区分的。
用户界面
用户界面 (user interface) 又称为用户接口。用户通过用户接口使用操作系统。良好的用户接口将使用户感觉到操作系统的友好和方便。用户接口通常包括作业控制语言、操作语言和系统调用。
类 Unix 操作系统
类 Unix 操作系统具有可靠性高、安全性强和数据库支持功能强大等优点叫,已成为最为安全、可靠、流行的大型服务器操作系统,被广泛应用于各行业的工业服务器设备。然而,此类系统存在操作复杂、普适性低以及缺乏有效监测与维护手段等问题,并存在重要数据丢失和系统崩溃的风险,大幅缩短了硬件设备使用寿命。
目前常用的类 Unix 系统服务器硬件检测方法包括基于 Linux Live 技术的检测方法、基于 Windows togo 技术的检测方法和基于类 Unix 系统硬件检测软件的方法。虽使用 Linux Live 技术能抽取出开源软件的源代码,灵活定制硬件自动检测软件及生成所需的精简版检测报告。
但由于 Linux Live 系统自带的软件驱动库版本老旧且不完整,在不同硬件配置机器间的检测中,需耗费大量时间从系统 ISO 驱动文件库中查找及安装驱动程序 (>30min),且常由于缺乏与最新服务器硬件匹配的驱动文件,造成系统无法启动。
基于 Windows togo 技术的检测方法虽拥有完整的系统,但相较于基于 Linux Live 技术的检测方法需要占用的 U 盘空间大 (16GB 以上),且对于 U 盘的读取速度要求过高。而基于类 Unix 系统硬件检测软件的方法又存在检测功能单一、兼容性不足和操作难度大的问题。