UNIX

  UNIX操作系统是能在微机工作站、小型机到大型机上都能运行的操作系统,也是当今世界的多用户、多任务操作系统。它是一个强大的多用户、多任务操作系统,支持多种处理器架构,属于分时操作系统。UNIX操作系统,是美国AT&T公司于1971年在PDP-11上运行的操作系统,最早由肯·汤普逊(Kenneth Lane Thompson)、丹尼斯·里奇(Dennis MacAlistair Ritchie)和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。目前它的商标权由国际开放标准组织(The Open Group)所拥有。

发展历史

  一、初创期

  Unix的诞生和Multics(Multiplexed Information and Computing System)是有一定渊源的。Multics是由麻省理工学院,AT&T贝尔实验室和通用电气合作进行的操作系统项目,被设计运行在GE-645大型主机上,但是由于整个目标过于庞大,糅合了太多的特性,Multics虽然发布了一些产品,但是性能都很低,最终以失败而告终。

  AT&T最终撤出了投入Multics项目的资源,其中一位开发者──肯·汤普逊则继续为GE-645开发软件,并最终编写了一个太空旅行游戏。经过实际运行后,他发现游戏速度很慢而且耗费昂贵——每次运行会花费75美元。

  在丹尼斯·里奇的帮助下,汤普逊用PDP-7的汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。这次经历加上Multics项目的经验,促使汤普逊开始了一个DEC PDP-7上的新操作系统项目。汤普逊和里奇领导一组开发者,开发了一个新的多任务操作系统。这个系统包括命令解释器和一些实用程序,Multics是“MULTiplexed Information and Computing System”的缩写,在1970年时,那部PDP-7却只能支持两个用户,当时,Brian Kernighan就开玩笑地戏称他们的系统其实是:“UNiplexed Information and Computing System”,缩写为“UNICS”。于是这个项目被称为UnICS( Uniplexed Information and Computing System)。后来,大家取其谐音这个名字被改为UNIX。

  二、发展期

  最初的Unix是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的。B语言在进行系统编程时不够强大,所以汤普逊和里奇对其进行了改造,并与1971年共同发明了C语言。1973年汤普逊和里奇用C语言重写了Unix。在当时,为了实现效率,系统程序都是由汇编语言编写,所以汤普逊和里奇此举是极具大胆创新和革命意义的。用C语言编写的Unix代码简洁紧凑、易移植、易读、易修改,为此后Unix的发展奠定了坚实基础。

  1974年,汤普逊和里奇合作在ACM通信上发表了一篇关于UNIX的文章,这是UNIX次出现在贝尔实验室以外。此后UNIX被政府机关,研究机构,企业和大学注意到,并逐渐流行开来。

  1975年,UNIX发布了4、5、6三个版本。1978年,已经有大约600台计算机在运行UNIX。1979年,版本7发布,这是一个广泛发布的研究型UNIX版本。20世纪80年代相继发布的8、9、10版本只授权给了少数大学。此后这个方向上的研究导致了九号计划的出现,这是一个新的分布式操作系统。

  1982年,AT&T基于版本7开发了UNIX System Ⅲ的个版本,这是一个商业版本仅供出售。为了解决混乱的UNIX版本情况,AT&T综合了其他大学和公司开发的各种UNIX,开发了UNIX System V Release 1。

  这个新的UNIX商业发布版本不再包含源代码,所以加州大学柏克莱分校继续开发BSD UNIX,作为UNIX System III和V的替代选择。BSD对UNIX最重要的贡献之一是TCP/IP。BSD有8个主要的发行版中包含了TCP/IP:4.1c、4.2、4.3、4.3-Tahoe、4.3-Reno、Net2、4.4以及4.4-lite。这些发布版中的TCP/IP代码几乎是现在所有系统中TCP/IP实现的前辈,包括AT&T System V UNIX和Microsoft Windows。

  其他一些公司也开始为其自己的小型机或工作站提供商业版本的UNIX系统,有些选择System V作为基础版本,有些则选择了BSD。BSD的一名主要开发者,比尔·乔伊,在BSD基础上开发了SunOS,并最终创办了太阳计算机系统公司。

  1991年,一群BSD开发者(Donn Seeley、Mike Karels、Bill Jolitz和Trent Hein)离开了加州大学,创办了Berkeley Software Design, Inc (BSDI)。BSDI是家在便宜常见的Intel平台上提供全功能商业BSD UNIX的厂商。后来Bill Jolitz离开了BSDI,开始了386BSD的工作。386BSD被认为是FreeBSD、OpenBSD和NetBSD、DragonFlyBSD的先辈。

  AT&T继续为UNIX System V增加了文件锁定,系统管理,作业控制,流和远程文件系统。1987到1989年,AT&T决定将Xenix(微软开发的一个x86-pc上的UNIX版本),BSD,SunOS和System V融合为System V Release 4(SVR4)。这个新发布版将多种特性融为一体,结束了混乱的竞争局面。

  1993年以后,大多数商业UNIX发行商都基于SVR4开发自己的UNIX变体了。

  三、现况

  UNIX System V Release 4发布后不久,AT&T就将其所有UNIX权利出售给了Novell。Novell期望以此来对抗微软的Windows NT,但其核心市场受到了严重伤害,最终Novell将SVR4的权利出售给了X/OPEN Consortium,后者是定义UNIX标准的产业团体。X/OPEN和OSF/1合并,创建了国际开放标准组织(Open Group)。由它定义的多个标准定义着什么是以及什么不是UNIX。

  实际的UNIX代码则辗转到了Santa Cruz Operation,这家公司后来出售给了Caldera Systems。Caldera原来也出售Linux系统,交易完成后,新公司又被重命名为SCO Group。

特点

  1、易编写和修改,可移植性好。

  2、外围系统实用程序丰富

  3、UNIX系统具有逻辑上无限层次的树状分级文件系统,提供文件系统的装卸功能,提高了文件系统的灵活性及安全性;它还提供了文件和设备的统一处理方法,可以用相同的方法打开、读写和关闭设备文件,简化了系统设计,便于用户使用;提供了远程文件共享RFS和网络文件系统NFS,方便用户共享网络上的软件和信息。

  4、UNIX系统提供了众多的本地进程和远程主机间进程通信的手段。如管道、共享内存、消息、信号灯、软中断、插座等机制。

  5、良好的用户界面

  UNIX系统提供了许多数据保安特性,可以给计算机信息机构和管理信息系统的主管们对他们的系统有一种安全感。

  6、可连接性

  在可连接性领域中各UNIX厂商都特别专注于文件/打印的集成。NOS(网络操作系统)支持与NetWare和NT共存。

系统结构

  1、内核:在UNIX中,也被称为基本操作系统,负责管理所有与硬件相关的功能。这些功能由UNIX内核中的各个模块实现。其中包括直接控制硬件的各模块,这也是系统中最重要的部分,用户当然也不能直接访问内核的。

  2、常驻模块层:常驻模块层提供了执行我们请示的服务例程。 它提供的服务包括输入/输出控制服务、文件/磁盘访问服务以及进程创建和中止服务。我们的程序通过系统调用来访问常驻模块层。

  3、工具层:是UNIX的用户接口,就是常用的shell。它和其他UNIX命令和工具一样都单独的程序,是UNIX系统软件的组成部分,但不是内核的组成部分。

  4、虚拟计算机:是向系统中的每个用户指定一个执行环境。这个环境包括一个与用户进行交流的终端和共享的其他计算机资源,如最重要的CPU。如果是多用户的操作系统,UNIX视为一个虚拟计算机的集合。而对每一个用户都有一个自己的专用虚拟计算机。但是由于CPU和其他硬件是共享的,虚拟计算机比真实的计算机速度要慢一些。

  5、进程:UNIX通过进程向用户和程序分配资源。每个进程都有一个作为进程标识的整数和一组相关的资源。当然它也可以在虚拟计算机环境中执行。

和LINUX的区别和联系

  UNIX是一个功能强大、性能全面的多用户、多任务操作系统,可以应用从巨型计算机到普通PC机等多种不同的平台上,是应用面最广、影响力的操作系统。

  Linux是一种外观和性能与UNIX相同或更好的操作系统,但,Linux不源于任何版本的UNIX的源代码,并不是UNIX,而是一个类似于 UNIX的产品。Linux产品成功的模仿了UNIX系统和功能,具体讲Linux是一套兼容于System V以及BSD UNIX的操作系统,对于System V来说,目前把软件程序源代码拿到Linux底下重新编译之后就可以运行,而对于BSD UNIX来说它的可执行文件可以直接在Linux环境下运行。

  linux就是模仿unix界面和功能的操作系统,但是源代码和unix一点关系都没有。换句话讲,linux不是unix,但像unix。(Linux is not unix!)

  另外两大区别:

  1) UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上.

  2) UNIX有些版本比如aix, hp-ux是商业软件是闭源的(不过solaris, *bsd等unix都是开源的),而Linux是自由软件,免费、公开源代码的.

相关百科