Unix是一个分时操作系统,不仅作为网路操作系统之外,还可以作为单机操作系统使用。Unix作为一种开发平台和台式操作系统获得了广泛使用,目前主要用于工程应用和科学估算等领域。
Unix是20世纪70年代初出现的一个操作系统,不仅作为网路操作系统之外unix系统干什么用的,还可以作为单机操作系统使用。Unix作为一种开发平台和台式操作系统获得了广泛使用,目前主要用于工程应用和科学估算等领域。
发展历史
UNIX系统是一个分时系统。最早的UNIX系统于1970年问世。此前,只有面向批处理作业的操作系统,这样的系统对于须要立刻得到响应的用户来说是太慢了。在60年代末,KennethThompson和DennisRitchie都曾出席过交互方法分时系统Multics的设计,而开发该系统所使用的工具是CTSS。这两个系统在操作系统的发展过程中都形成过重大影响。在此基础上,在对当时现有的技术进行精选提炼和发展的过程中,K.Thompson于1969年在大型计算机上开发UNIX系统,后于1970年投入运行。
1973年,DennisRitchie开发出C语言,拿来改写原先用汇编语言编撰的UNIX,由此形成了UNIXVersionV。1974年,KennethThompson和DennisRitchie合写的“TheUNIXTime-SharingSystem”在CommunicationofACM上发表,即将向外界披露了UNIX系统。
当时,PDP-11系列大型计算机在世界各地早已得到广泛应用,UNIX系统一开发后便广泛配备于日本各学院的PDP-11系列计算机上,由此为UNIX的广泛应用创造了物质条件。
1978年,UNIXVersionVI发表,随即又于1979年用于VAX-11超级大型机。之后,不断地出现各类新的版本。日本电话电报公司分别于1981年和1983年发表AT&TUNIXSystemII和UNIXSystemV。日本加洲学院伯克莱中学也先后发表了UNIX的版本BSD4.1,BSD4.2和BSD4.3。
如今UNIX系统的用户日渐增多,应用范围也日渐扩大。无论在各种类型的微型机、小型机,还是在中、大型计算机,以及在计算机工作站甚至个人计算机上,好多都已配有UNIX系统。除了新推出的型号配有UNIX系统,但是一些历史较久的生产厂商,也竞相将原有型号配上UNIX系统便于打开销路、争取市场。
特征
UNIX系统在计算机操作系统的发展史上占有重要的地位。它确实对已有技术不断作了精细、谨慎而有选择的承继和改建,但是,在操作系统的总体设计设想等方面有所发展,才使它获得这么大的成功。UNIX系统的主要特征表现在以下几方面:
(1)UNIX系统在结构上分为核心程序(kernel)和外围程序(shell)两部份,但是二者有机结合成为一个整体。核心部份承当系统内部的各个模块的功能,即处理机和进程管理、存储管理、设备管理和文件系统。核心程序的特征是悉心设计、简洁精干,只需占用很小的空间而常驻显存,以保证系统的高效率运行。外围部发包括系统的用户界面、系统实用程序以及应用程序,用户通过外围程序使用计算机。
(2)UNIX系统提供了良好的用户界面,具有使用便捷、功能齐全、清晰而灵活、易于扩展和更改等特性。UNIX系统的使用有两种方式:一种是操作命令,即shell语言,是用户可以通过终端与系统发生交互作用的界面;另一种是面向用户程序的界面,它除了在汇编语言,但是在C语言中向用户提供服务。
(3)UNIX系统的文件系统是树状结构。它由基本文件系统和若千个可装卸的子文件系统组成,既能扩大文件储存空间,又有利于安全和保密。
(4)UNIX系统把文件、文件目录和设备统一处理。它把文件作为不分任何记录的字符流进行次序或随机存取,并促使文件、文件目录和设备具有相同的句型语义和相同的保护机制,这样既简化了系统设计,又易于用户使用。
(5)UNIX系统包含有特别丰富的语言处理程序、实用程序和开发软件用的工具性软件,向用户提供了相当完备的软件开发环境。
(6)UNIX系统的绝大部份程序是用C语言编程的,只有约占5%的程序用汇编语言编程。C语言是一种中级程序设计语言,它促使UNIX系统便于理解、修改和扩展,而且具有特别好的移植性。
(7)UNIX系统还提供了进程间的简单通讯功能。
功能模块
操作系统要管理计算机系统的硬件资源和软件资源,便于为用户所使用。硬件资源通常指CPU(中央处理机)、存储器(显存和外存)、外部设备等。软件资源是指系统程序和数据,即操作系统、系统实用程序及应用软件,以及用户的程序和数据,它们都以文件的形式储存在储存器中。操作系统由若干个功能模块有机地联系在一一起,协调地进行工作。这种模块是:处理机和进程管理模块、存储管理模块、设备管理模块、文件系统和用户界面。
处理机和进程管理模块
因为处理机(CPU)是计算机中关键的资源,进程的执行与CPU密切相关,因此处理机和进程管理模块可简称为进程管理模块。我们把确定什么作业将调入显存运行和完成运行后撤离显存的工作称为作业调度。把怎样控制一个作业在运行阶段的三个状态间的转换称为进程调度。因此,怎么充分发挥资源的借助率,使响应时间短,使各用户作业等待执行的时间最短,是制定相应的作业调度算法和进程调度算法的原则。只是在不同的操作系统中,对以上目标有不同的着重点,因此调度算法也就有所不同。
储存管理模块
储存管理是对作业从步入就绪状态起到运行结束之间所使用的储存器(包括显存和外存)进行管理。可以将储存管理模块的任务分为储存分配、地址映射和储存保护3部份。
储存分配
一个程序在编译和链接后,得到一个称为显存映像的文件。该文件描述了这个程序在运行时所须要的显存大小,其中包括代码和数据区的地址。这种地址称为逻辑地址,但是以首地址0为参考地址。每每一个作业调入显存,步入就绪状态,储存管理模块就要按照可借助的显存空间与作业所须要的显存三者进行估算,给该作业分配相应的显存空间。
地址映射
将一个作业放入显存,意味着一个进程将被创建。储存管理模块会把该作业的映像文件首地址(为零)对准显存中进程的首地址。这个进程的首地址或起始地址是显存中的数学地址,称为偏斜量(offset)。映像文件的逻辑地址加上偏斜量,得到显存中的地址值均为化学地址。估算逻辑地址到化学地址的转换工作称为地址映射。映像中所有的逻辑地址都可转换为化学地址。
显存保护
显存空间总是被若干个进程分享,其中包括操作系统本身要常驻在显存中的那一部份。显存保护的任务是对显存空间中已界定出的区域,晓得它们各属于什么进程,而且晓得每位进程有权访问的区域。每每一个进程执行过程中须要访问某个地址时,储存管理模块就要检测一下这个进程是否有权访问这个数学地址。一般unix系统干什么用的,每位进程在显存中的区域是该进程可以访问的合法地址。假如访问的地址落在该进程的区域之外,即形成了非法访问。一旦碰到非法访问,显存保护就要拒绝访问,并进行出错处理。
UNIX标准化
ISOC
1989年下半年,C程序设计语言的ANSI标准X3.159-1989得到批准。此标准被也采纳为国际标准ISO/IEC9899:1990。ANSI是日本国家标准学会(AmericanNationalStandardsInstitute)的简写,它是国际标准化组织(InternationalOrganizationforStandardization,ISO)中代表英国的成25]员。IEC是国际电子技术委员会(InternationalElectrotechnicalCommission)的简写。
ISOC标准如今由ISO/IEC的C程序设计语言国际标准工作组维护和开发。ISOC标准的意图是提供C程序的可移植性,使其能适宜于大量不同的操作系统,而不只是适宜UNIX系统。此标准除了定义了C程序设计语言的句型和语义,还定义了其标准库。
1999年,ISOC标准被更新,并被批准为ISO/IEC9899:1999,它明显改善了对进行数值处理的应用软件的支持。不仅对个别函数原型降低了关键字restrict外,这些改变并不影响本书中描述的POSIX插口。restrict关键字告诉编译器,什么表针引用是可以优化的,其方式是强调表针引用的对象在函数中只通过该表针进行访问。
1999年以来,早已公布了3个技术勘误来修正ISOC标准中的错误,分别在2001年、2004年和2007年公布。就像大多数标准一样,在批准标准和更改软件使其符合标准二者之间有一段时间延后。随着供应商编译系统的不断演进,对最新ISOC标准的支持也就越来越多。
UNIX版本
FreeBSD
FreeBSD是完全开放源代码的类UNIX系统,它的发展源于1993年,始于386/BSD。FreeBSD以易用性与高性能而闻名。在最初的发行版中,FreeBSD只支持PC硬件构架,后来又被移植到其他的硬件前面。
NetBSD
NetBSD同样也是一个完全开放源代码的类UNIX系统。最初FreeBSD只能运行在PC硬件上,为了FreeBSD就能兼容其他的硬件,便形成了一个FreeBSD的衍生版NetBSD。可以说,NetBSD就是为了提升FreeBSD的可移植性而形成的一个BSD发行版。
OpenBSD
OpenBSD同样也是一个从BSD派生出的类UNIX操作系统。与NetBSD不同,OpenBSD的关注点在于安全。知名的OpenSSH合同就是最先在OpenBSD上实现的。OpenBSD的吉祥物是一个名称为Puffy的河豚。
OpenSolaris
在UNIX的各发行版中,OpenSolaris是惟一个由商业版转为开放源代码的个例。
OracleSolaris
在UNIX商业版中,Solaris是一个极其优秀的操作系统。
IBMAIX
AIX(AdvancedInteractiveeXecutive)是IBM公司所有的UNIX操作系统。AIX源自于SystemVRelease3,运行在IBM公司的PowerPC硬件构架之上。
HP-UX
HP-UX(HewlettPackardUNIX,HPUX)是日本惠普公司在Systemv的基础上开发的UNIX操作系统。
UNIXV6
1975年发表的UNIXV6版是比较成熟的版本,贝尔实验室免费向日本各学院提供该版本linux学习,并开始广泛地配备于各学院的PDP-11系列计算机上。1977年,UNIX首次移植到非PDP类型的计算机上。
BSDUNIX
不仅贝尔实验室内,另一个使用比较广泛的UNIX版本是日本加洲学院贝克利中学开发的BSDUNIX,该版本大量安装在SUN工作站上。1993年推出了4.4BSD版本。BSD是网路的主要平台linux下载,对DARPA的TCP/IP提供了支持,其中的网路文件系统(NFS)提供了与好多计算机机种的联接,NFS及AT&T开发的远程文件共享(RFS)使UNIX系统在网路支持方面保持领先地位。
MINIX
由Andrews.Tanenbaum设计的MINIX是一个精巧玲珑又脏腑俱全的UNIX型结构的操作系统,把主体部分割裂成份立的模块,程序编制得使用户便于理解、易于更改,过程短小精悍,并指出训练中学生的操作、调试、修改方面的动手能力。
Solaris
Solaris曾是使用最广泛、最成功的商业UNIX实现版本。Sun公司的操作系统最初称作SunOS,主要基于BSDUNIX版本。
类Unix操作系统
类Unix操作系统具有可靠性高、安全性强和数据库支持功能强悍等优点叫,已成为最为安全、可靠、流行的小型服务器操作系统,被广泛应用于各行业的工业服务器设备。但是,这种系统存在操作复杂、普适性低以及缺少有效检测与维护手段等问题,并存在重要数据遗失和系统崩溃的风险,急剧减短了硬件设备使用寿命。
目前常用的类Unix系统服务器硬件监测方式包括基于LinuxLive技术的测量方式、基于Windowstogo技术的测量方式和基于类Unix系统硬件监测软件的方式。虽使用LinuxLive技术能抽取出开源软件的源代码,灵活订制硬件手动检查软件及生成所需的精简版检查报告。但因为LinuxLive系统自带的软件驱动库版本老旧且不完整,在不同硬件配置机器间的测量中,需花费大量时间从系统ISO驱动文件库中查找及安装驱动程序(>30min),且常因为缺少与最新服务器硬件匹配的驱动文件,导致系统未能启动。基于Windowstogo技术的测量方式虽拥有完整的系统,但相较于基于LinuxLive技术的测量方式须要占用的U盘空间大(16GB以上),且对于U盘的读取速率要求偏高。而基于类Unix系统硬件监测软件的方式又存在检查功能单一、兼容性不足和操作难度大的问题。