Linux和Unix的历史渊源
(2012-05-14 10:38:08)
标签:
linuxit |
UNIX ,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、DennisRitchie和DouglasMcIlroy于1969年在AT&T的贝尔实验室开发。
目前它的商标权由国际开放标准组织(The Open
Group)所拥有。
在Unix的开发过程中,产生了B语言,并再次进行改良,形成了 今天的大名鼎鼎的C语言。于是,Ken
Thompson 与Dennis
Ritchie成功地用C语言重写了Unix的第三版内核。至此,Unix这个操作系统修改、移植相当便利,为Unix日后的普及打下了坚实的基础。而Unix和C完美地结合成为一个统一体,C与Unix很快成为世界的主导。由于Unix的开源,使其开始广泛流行起来,并在此基础上进行各种改进和扩展。
同时,其他一些公司也开始为其自己的小型机或工作站提供商业版本的UNIX系统,有些选择System
V作为基础版本,有些则选择了BSD。BSD的一名主要开发者,Bill Joy,在BSD基础上开发了SunOS,并最终创办了Sun
Microsystems。
AIX (Advanced
Interactive eXecutive)是IBM开发的一套UNIX操作系统。它符合Open
group的UNIX 98行业标准(The Open Group UNIX 98 Base Brand)。它可以在所有的IBM ~
p系列和IBM RS/6000工作站、服务器和大型并行超级计算机上运行。
Solaris 是SUN公司研制的类Unix操作系统。目前最新版为Solaris
11。
早期的Solaris是由BSDUnix发展而来。这是因为升阳公司的创始人之一,比尔·乔伊(Bill
Joy)来自柏克莱加州大学(U.C.Berkeley)。但是随着时间的推移,Solaris现在在接口上正在逐渐向System
V靠拢。目前Solaris仍旧属于私有软件。2005年6月14日,Sun公司将正在开发中的Solaris
11的源代码以CDDL许可开放,这一开放版本就是OpenSolaris。
Sun的操作系统最初叫做SunOS,SunOS
5.0开始,SUN的操作系统开发开始转向System V 4, 并且有了新的名字叫做Solaris 2.0;Solaris
2.6以后,SUN删除了版本号中的"2,因此,SunOS 5.10就叫做Solaris
10。Solaris的早期版本后来又被重新命名为Solaris 1.x.
所以"SunOS"这个词被用做专指Solaris操作系统的内核,因此Solaris被认为是由SunOS,图形化的桌面计算环境,以及它网络增强部分
组成。
HP-UX(取自Hewlett
Packard UniX)是惠普科技公司(HP,Hewlett-Packard)以SystemV为基础所研发成的类UNIX操作系统。HP-UX可以在HP的PA-RISC处理器、Intel的Itanium处理器的电脑上运行,另外过去也能用于后期的阿波罗电脑(Apollo/Domain)系统上。
FreeBSD 是一种类UNIX操作系统,但不是真正意义上的UNIX操作系统,它是由经过BSD、386BSD和4.4BSD发展而来的Unix的一个重要分支,FreeBSD是以一个完善的操作系统的定位来做开发。其内核、驱动程序以及所有的用户层(Userland)应用程序(比方说是Shell)均由同一源代码版本控制系统保存(目前使用Subversion并与CVS兼容)。相较于另一知名的的操作系统Linux,其内核为一组开发人员设计,而用户应用程序则交由他人开发(例如GNU计划),最后再由其他团体集成并包装成Linux包。
FreeBSD默认是无桌面环境的命令行界面,想要使用桌面环境必须自行安装,或是使用PC-BSD之类的桌面发行版。
NetBSD 是一份免费,安全的具有高度可定制性的类Unix操作系统,适于多种平台,从64位AMDAthlon服务器和桌面系统到手持设备和嵌入式设备。它设计简洁,代码规范,拥有众多先进特性,使得它在业界和学术界广受好评,用户可以通过完整的源代码获得支持。
Mac OS X 是苹果公司(原苹果电脑公司)为麦金塔电脑开发的专属操作系统Mac
OS的最新版本。Mac OS
X于2001年首次在市场上推出,并从2002年起随麦金塔电脑发售。它是一套Unix基础的操作系统,包含两个主要的部份:核心名为Darwin,是以FreeBSD源代码和Mach微核心为基础,由苹果公司和独立开发者社区协力开发;及一个由苹果电脑开发,名为Aqua之专有版权的图形用户界面。
Minix 的名称取自英语Mini
UNIX,是一个迷你版本的类Unix操作系统(约300MB),其它类似的系统还有Idris,Coherent,和Uniflex等。这些类Unix操作系统都是重新发展的,并没有使用任何AT&T的程序码。Minix原来是荷兰阿姆斯特丹的Vrije大学计算机科学系的Andrew
S. Tanenbaum教授所发展的一个类Unix操作系统。Linux,是一类Unix计算机操作系统的统称。该操作系统的核心的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。
Linux核心最初是为英特尔386微处理器设计的。现在Linux核心支持从个人电脑到大型主机甚至包括嵌入式系统在内的各种硬件设备。
分裂
1978年,对 Unix而言是革命性的一年;因为学术界的老大柏克利大学 (UC Berkeley),推出了一份以第六版为基础,加上一些改进和新功能而成的 Unix。这就是著名的“1 BSD(1st Berkeley Software Distribution)”,开创了Unix的另一个分支:BSD 系列。同时期,AT&T成立USG(Unix Support Group),将 Unix变成商业化的产品。从此,BSD的 Unix 便和AT&T 的Unix 分庭抗礼,Unix就分为System IV和4.x BSD这两大主流,各自蓬勃发展。Unix的发展开始走向闭源的道路。纠纷
Berkeley Software Design,Inc(BSDI)很快就与AT&T的UNIX Systems Laboratories(USL)附属公司产生了法律纠纷,USL是AT&T注册的公司。AT&T为了拥有System V版权,以及Unix商标,为了垄断Unix,1992年,USL正式对BSDI提起诉讼,说BSD剽窃他的源码。而最终了结了好评如潮的BSD系统。 由于最后判决悬而未决,这桩法律诉讼将BSD后裔的开发,特别是自由软件,延迟了两年,这导致没有法律问题的Linux内核获得了极大的支持。Linux跟386BSD的开发几乎同时起步,Linus说,当时如果有自由的基于386的Unix-like操作系统,他就可能不会创造Linux。尽管无法预料这给以后的软件业究竟造成了什么样的影响,但有一点可以肯定,Linux更加丰富了这块土壤。 这场官司一直打到 AT&T将自己的Unix系统实验室卖掉,新接手的Novell公司采取了一种比较开明的做法,允许BSDI自由发布自己的BSD,但是前提是必须将来自于AT&T的代码完全删除,于是诞生了4.4 BSD Lite版,由于这个版本不存在法律问题,4.4BSD Lite成为了现代BSD系统的基础版本。于是,BSD Unix走上了复兴的道路。BSD的开发也走向了几个不同的方向,并最终导致了FreeBSD、OpenBSD和NetBSD的出现。 Unix的版权曾经为AT&T所有,之后Novell拥有了Unix,再之后Novell又将版权出售给了SCO(这一事实双方尚存在争议)。有很多大公司在取得了Unix的授权之后,开发了自己的Unix产品。 由于Unix是由C语言写的,所以修改和移植都很容易,因此,很多商业公司及学术机构均加入这个操作系统的研发,各个不同版本的Unix也开始蓬勃发展。这才产生了今天这么多的各式各样的Unix衍生产品。如AIX、Solaris、HP-UX、IRIX、OSF、Ultrix等等。开源
AT&T的这种商业态度,让当时许许多的Unix的爱好者和软件开发者们感到相当的痛心和忧虑,他们认为商业化的种种限制并不利于产生的发展,相反还能导制产品出现诸多的问题。随着商业化Unix的版本的种种限制和诸多问题,引起了大众的不满和反对。于是,大家开始有组织地结成“反叛联盟”以此对抗欺行罢市的AT&T等商业化行为。 另一方面,关于“大教堂”(集权、封闭、受控、保密)和“集市”(分权、公开、精细的同僚复审)两种开发模式的对比成为了新思潮的中心思想。这个新思潮对IT业产生了非常深远影响。为整个计算机世界带来了革命性的价值观。 此时,一个名叫Richard Stallman的领袖出现了,他认为Unix是一个相当好的操作系统,如果大家都能够将自己所学贡献出来,那么这个系统将会更加的优异!他倡导的Open Source的概念,就是针对Unix这一事实反对实验室里的产品商业化私有化。尽管Stallman既不是、也从来没有成为一个Unix程序员,但在后1980的大环境下,实现一个仿Unix操作系统成了他追求的明确战略目标。Richard Stallman早期的捐助者大都是新踏入Unix土地的老牌ARPANET黑客,他们对代码共享的使命感甚至比那些有更多Unix背景的人强烈。 为了这个理想,Richard Stallman于1984年创业了GNU,计划开发一套与Unix相互兼容的的软件。1985 年 Richard Stallman 又创立了自由软件基金会(Free Software Foundation)来为 GNU 计划提供技术、法律以及财政支持。尽管 GNU 计划大部分时候是由个人自愿无偿贡献,但 FSF 有时还是会聘请程序员帮助编写。当 GNU 计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。当中最著名的就是之后被 Red Hat 兼并的 Cygnus Solutions。 GNU组织的建立,延续了当年Unix刚出现时的情形,并为这种情形建立了可靠的法律和财务保障。GNU 工程十几年以来,已经成为一个对软件开发主要的影响力量, 创造了无数的重要的工具。例如:强健的编译器,有力的文本编辑器,甚至一个全功能的操作系统。从那时开始,许多程序员聚集起来开始开发一个自由的、高质量、易理解的软件,让这使得Unix社区生机勃勃,一派繁荣景象。 自90年代发起这个计划以来,GNU 开始大量的产生或收集各种系统所必备的组件,像是——函数库(libraries)、编译器(compilers)、调试工具(debugs)、文本编辑器(text editors)、网站服务器(web server),以及一个Unix的使用者接口(Unix shell)等等,等等。但由于种种原因,GNU一直没有开发操作系统的kernel。正当Richard Stallman在为操作系统内核伤脑筋的时候,Linux出现了。正是因为Unix的不开源路线促成了Linux的诞生,Linus Torvalids 在1991年使用Minix创造了Linux –这并不是一个简单的Unix克隆版本,只不过它长得像Unix(系统结构和功能上),该内核和GNU套件整合后形成了如今各式各样的Linux版本。三大派生版本
System V
主要有A/UX,AIX,HP-UX,IRIX,LynxOS,SCOOpenServer,Tru64,Xenix。 A/UX(取自Apple Unix)是苹果电脑(Apple Computer)公司所开发的UNIX操作系统,此操作系统可以在该公司的一些麦金塔电脑(Macintosh)上运行。Berkley
主要有386BSD,DragonFly
BSD,FreeBSD,NetBSD,NEXTSTEP,Mac OS
X,OpenBSD,Solaris,(OpenSolaris,OpenIndiana)
不同的BSD操作系统针对不同的用途及用户,可应用于多种硬件构架。在政府机构中常能看到BSD的身影。虽然下面的BSD功能可能并非独有,但每种BSD在各自的领域,都逐渐具有了良好声誉,有的专注于性能,有的则以安全见长。
Hybrid
主要有GNU / Linux,Minix,QNXUnix的特点
严格来讲,Linux这个词本身只表示Linux核心,但在实际上人们已经习惯了用Linux来形容整个基于Linux核心,并且使用GNU工程各种工具和数据库的操作系统(也被称为GNU/Linux)。基于这些组件的Linux软件被称为Linux发行版。一般来讲,一个Linux发行包包含大量的软件,比如软件开发工具、数据库(例如PostgreSQL、MySQL)、网络服务器(例如Apache)、X
Window、桌面环境(例如GNOME和KDE)、办公包(例如OpenOffice)、脚本语言(例如Perl、PHP和Python)等等。
现在,Linux已经成为了一种受到广泛关注和支持的操作系统。包括国际商用机器公司和惠普、戴尔在内的一些信息业巨头也陆续支持Linux,并且成立了一些组织支持其发展,如Open
Invention Network(OIN)(成员有IBM,索尼,NEC,Philips,Novell,Red Hat
等)购买了微软专利,允许任何个体以开放的原则使用。很多人认为,和微软Windows相比,作为自由软件的Linux具有低软件成本,高安全性,更加可信赖等优势,但是同时却需要更多的人力成本。
与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是自由软件,免费、公开源代码的.
总结:Linux只是在Unix发展的过程中为解决开源问题而产生的一种类Unix系统,两者之间没有没有代码逻辑上的关系,只不过Linux模仿Unix的系统结构、功能,独立开发出来的一种兼容Unix的系统。