为了让大家对本书所讨论的内容有更清楚的了解,让我们先来简要回顾一下Linux的历史。由于Linux是在Unix的基础上发展而来的,我们的话题就从Unix开始。
Unix是由AT&T贝尔实验室的Ken Thompson和Dennis Ritchie于1969年在一台已经废弃了的PDP-7上开发的;它最初是一个用汇编语言写成的单用户操作系统。不久,Thompson和Ritchie成功地说服管理部门为他们购买更新的机器,以便该开发小组可以实现一个文本处理系统,Unix就在PDP-11上用C语言重新编写(发明C语言的部分目的就在于此)。它果真变成了一个文本处理系统——不久之后。只不过问题是他们先实现了一个操作系统而已…
最终,他们实现了该文本处理工具,而且Unix(以及Unix上运行的工具)也在AT&T得到广泛应用。在1973年,Thompson和Ritchie在一个操作系统会议上就这个系统发表了一篇论文,该论文引起了学术界对Unix系统的极大兴趣。
由于1956年反托拉斯法案的限制,AT&T不能涉足计算机业务,但允许它可以以象征性的费用发售该系统。就这样,Unix被广泛发布,首先是学术科研用户,后来又扩展到政府和商业用户。
伯克利(Berkeley)的加州大学是学术用户中的一个。在这里Unix得到了计算机系统研究小组(CSRG)的广泛应用。并且在这里所进行的修改引发了Unix的一大系列,这就是广为人知的伯克利软件开发(BSD)Unix。除了AT&T所提供的Unix系列之外,BSD是最有影响力的Unix系列。BSD在Unix中增加了很多显著特性,例如TCP/IP网络,更好的用户文件系统(UFS),工作控制,并且改进了AT&T的内存管理代码。
多年以来,BSD版本的Unix一直在学术环境中占据主导地位,但最终发展成为System V版本的AT&T的Unix则成为商业领域的主宰。从某种程度上来说,这是有社会原因的:学校倾向于使用非正式但通常更好用的BSD风格的Unix,而商业界则倾向于从AT&T获取Unix。
在用户需求驱动和用户编程改进特性的促进下,BSD风格的Unix一般要比AT&T的Unix更具有创新性,而且改进也更为迅速。但是,在AT&T发布最后一个正式版本System V Release 4(SVR4)时,System V Unix已经吸收了BSD的大多数重要的优点,并且还增加了一些自己的优势。这种现象的部分原因在于从1984年开始,AT&T逐渐可以将Unix商业化,而伯克利Unix的开发工作在1993年BSD4.4版本完成以后就逐渐收缩以至终止了。然而,BSD的进一步改进由外界开发者延续下来,到今天还在继续进行。正在进行的Unix系列开发中至少有四个独立的版本是直接起源于BSD4.4,这还不包括几个厂商的Unix版本,例如惠普的HP-UX,都是部分地或者全部地基于BSD而发展起来的。
实际上Unix的变种并不止BSD和System V。由于Unix主要使用C语言来编写,这就使得它相对比较容易地移植到新的机器上,它的简单性也使其相对比较容易重新设计与开发。Unix的这些特点大受商业界硬件供应商的欢迎,比如Sun、SGI、惠普、IBM、DEC(数字设备公司)、Amdahl等等;IBM还不止一次对Unix进行了再开发。厂商们设计开发出新的硬件并简单地将Unix移植到新的硬件上,这样新的硬件一经发布便具备一定的功能。经过一段时间之后,这些厂商都拥有了自己的专有Unix版本。而且为了占有市场,这些版本故意以不同的侧重点发布出来以更好的占有用户。
版本混乱的状态促进了标准化工作的进行。其中最主要的就是POSIX系列标准,它定义了一套标准的操作系统接口和工具。从理论上说,POSIX标准代码很容易移植到任何遵守POSIX标准的操作系统中,而且严格的POSIX测试已经把这种理论上的可移植性转化为现实。直到今天,几乎所有的正式操作系统都以支持POSIX标准为目标。
现在让我们回顾一下,在1984年,杰出的电脑***Richard Stallman独立开发出一个类Unix的操作系统,该操作系统具有完全的内核、开发工具和终端用户应用程序。在GNU(“GNU’s Not Unix”首字母的缩写)计划的配合下,Stallman开发这个产品有自己的技术理想:他想开发出一个质量高而且自由的操作系统。Stallman使用了“自由”(free)这个词,不仅意味着用户可以免费的获取软件;而且更重要的是,它将意味着某种程度的“解放”:用户可以自由使用、拷贝、查询、重用、修改甚至是分发这份软件,完全没有软件使用协议的限制。这也正是Stallman创建自由软件基金会(FSF)资助GNU软件开发的本意(FSF也在资助其它科研方面的开发工作)。
15年以来,GNU工程已经吸收、产生了大量的程序,这不仅包括Emacs,gcc(GNU的C编译器),bash(shell命令),还有大部分Linux用户所熟知的许多应用程序。现在正在进行开发的项目是GNU Hurd内核,这是GNU操作系统的最后一个主要部件(实际上Hurd内核早已能够使用了,不过当前的版本号为0.3的系统在什么时候能够完成,还是未知数)。
尽管Linux大受欢迎,但是Hurd内核还在继续开发。这种情况的原因有几个方面,其一是Hurd的体系结构十分清晰的体现了Stallman关于操作系统工作方式的思想,例如,在运行期间,任何用户都可以部分的改变或替换Hurd(这种替换不是对每个用户都是可见的,而是只对申请修改的用户可见,而且还必须符合安全规范)。另一个原因是据介绍Hurd对于多处理器的支持比Linux本身的内核要好。还有一个简单的原因是兴趣的驱动,因为程序员们希望能够自由地进行自己所喜欢的工作。只要有人希望为Hurd工作,Hurd的开发就不会停止。如果他们能够如愿以偿,Hurd有朝一日将成为Linux的强劲对手。不过在今天,Linux还是自由内核王国里无可争议的主宰。
在GNU发展的中期,也就是1991年,一个名叫Linus Torvalds的芬兰大学生想要了解Intel的新CPU——80386。他认为比较好的学习方法是自己编写一个操作系统的内核。出于这种目的,加上他对当时Unix变种版本对于80386类机器的脆弱支持十分不满,他决定要开发出一个全功能的、支持POSIX标准的、类Unix的操作系统内核,该系统吸收了BSD和System V的优点,同时摒弃了它们的缺点。Linus(虽然我知道我应该称他为Torvalds,但是所有人都称他为Linus
--------
在去年美国《信息周刊》评选出的有史以来最伟大的12款软件中,Unix 操作系统排名首位.值得一提的是,Java语言排名第五,而微软的Excel电子表格和Google搜索分别列居第九和第十一位.Unix 操作系统的地位可见一斑.
的确,一直以来,Unix服务器凭借高性能、高可靠性及高可用性,每每在关键应用领域能够担当重任.然而,无可否认的是,近年来,随着企业IT成本的日益压缩,用户更加注重TCO(总拥有成本),Unix服务器的市场份额在遭到x86的不断蚕食,市场增长日渐放缓.
这是否意味着Unix 正显英雄迟暮之态而渐下神坛,当真有一天会退出舞台、隐入历史的迷雾中吗?
Unix 天生高性能
UNIX服务器的优势主要是硬件方面的高性能和高可靠性.长期以来,各种重量级的服务器,如Sun、 HP、 IBM、 SGI等公司开发的高性能计算机上,只有Unix和他们的硬件可以完美的结合.所以,在我们说UNIX有很高的性能和可靠性中,有一部分功劳应该归功于服务器硬件.
目前而言,这些重量级的服务器在关键领域依然担当重任.因为从X86的PC机上发展而来的Windows和Linux都不俱备这样的能力,主要原因是厂商对于这些服务器长期以来的封闭.虽然由于近年来许多公司开始支持Linux, Linux也越来越能够胜任这些重量级服务器操作系统的任务,然而对于一些关键应用的大型的超级机来说,目前还是专用型的Unix的天下.
为什么Unix可以胜任这些高性能、高可靠和高可用性的重任?这是因为Unix的发展和系统设计、架构都是以高性能和高可靠性为中心的.Unix经历了当时计算机内存和CPU昂贵的年代,当时的计算机不像今天这么丰富(比如娱乐和多媒体),主要用于 “计算”和实际业务的数据处理,所以在最一开始,怎么利用极少的资源去做关键的处理就成为了UNIX必需要做的事情.
也就是说,UNIX天生就是注重性能、注重计算和数据处理.
英雄迟暮
Unix今天的光景已大不如从前.
虽然在目前还有很多很关键的应用需要通过IBM的大型机,或是SGI和NEC的超级计算机来处理,比如金融、电信、航空、军事等领域的一些非常关键的计算,但不可否认的是,UNIX的处境越来越危急,不但受到个人工作站的影响,廉价的操作系统和硬件更是开始猛烈地围剿UNIX.
一直以来Unix需要高性能和高可靠性的硬件支持,但随着计算机的迅猛发展,硬件的成本不断地下降,许多厂商的计算机也开始拥有不错的性能,比如AMD的amd64和Intel的EM64T,他们基于X86体系,但其性能和可靠性也能胜任高强度的计算和数据处理.
特别目前所流行的Multi-Processor和Multi-Core的硬件技术,以及集群方面软件技术的成熟,尤其是Windows/Linux在性能上的提升以及对集群架构和高性能硬件的支持.用户完全可以以比传统服务器低几个数量级的成本来构造出和传统服务器相当的系统,并且其维护成本也比传统服务器低得多得多.
还有来自于开放源码的Linux,用户同样能得够得到7x24小时的技术支持,而在享有相同质量的售后服务的同时,其服务费用也比传统得要低得多.
在中小服务器市场方面,Unix的处境已经变得相当难堪,在向中小企业迈进的过程中也没有任何优势.除了必需和关键领域,一些小型机如IBM的RISC 6000和Sun的Ultra系列的服务器都在被更廉价、更易维护的Windows/Linux的基于X86的集群计算机所取代.而且可以肯定的是,这种取代必将愈演愈烈.
固步自封
Unix在未来的趋势更是完全不容乐观,但由于历史上UNIX的近40年的霸主地位,导致了很多关键应用程序和硬件到今天依然无法脱离Unix.不过,由于Linux的出现,许多应用和数据库都有了向Linux转移的机会.一旦这些关键的应用都能被port到Linux上,加上低端服务器性能不断地上升,以及集群技术的不断发断,重量级服务器和传统Unix被取代就是迟早的事情.
对于那些传统的Unix,如IBM的Aix, Sun的Solaris,HP的HP-UX,它们的未来非常暗淡,这些产商为了保存他们的硬件,也不得不开始支持和Linux的兼容.
当初Unix的出现更多的是为了解决昂贵的硬件和计算的问题,在很少内存和比较慢的CPU的情形下,能让许多的用户共享这些硬件并提供良好的计算和数据处理能力.不是为了娱乐和桌面所设计的.
这和Windows的路线不一样.Windows天生注重的是用户界面,它的出现只是为了方便用户操作电脑,更为注重界面、娱乐、多媒体、办公.
所以两者天生的体质就不一样,或者说是“基因”和发展路线不一样,这就好像是DNA,UNIX的DNA就是性能和计算,而Windows的DNA是用户UI.加上Unix的固步自封,X-Window在桌面方面非常难用.
目前,Windows也开始注重服务能力和计算能力,其开始支持64位的CPU,发展HPC(High Performance Computing),以及集群WCCS( Windows Compute Cluster Server )相继出现.
Unix服务器的缺点——高昂成本和平台的封闭性,又让许多用户望而却步,这是当初从开放/自由实验室出来的Unix被奸商AT&T商业化的恶果.这对于整个计算机世界来说,是一次非常巨大的教训.以至于需要类似于Richard Stallman这样的一个怪物才能把大家引回正轨.
正是因为商业化,造成了平台的封闭性和成本的高昂,所以造成了一般的用户无法接触Unix,从而导致了Unix的路越走越狭窄,似乎已经走到了穷途末路的位置.分析其历史,有许多教训是值得我们总结和讨论的.
涅磐重生
今天,传统的Unix和其封闭的服务器被Windows/Linux逼到了相当高端的位置,高处不胜寒.从趋势上来说,他们退出舞台只是时间的问题.许多服务器产商在今天已经不得不支持Linux,由于硬件产商的支持,现在Linux完全可以跑在像SGI这样的超级计算机上了.相信终有一天,Linux必然会接过传统Unix的接力棒,并让Unix成为历史.
而Linux的桌面就好的很多,其两大桌面系统Gome和KDE也越来越成熟.尤其去年面世的SuSE 10.2的3D桌面更是让人津津乐道,其在想像力方面比Windows的Vista更让人激动. 虽然Linux在其娱乐和桌面应用方面还有很长的路要走,但今天的Linux完全可以做为一个比较成熟的桌面来使用了.相信Linux在未来会有非常不错的桌面前景.
Linux是一种Unix-like的操作系统,所以,Linux也秉承了Unix的特质,只是由于产商们对自己服务器的封闭,所以导致了Linux只能基于以X86的PC机开始自己的发展.
Linux正在向中小企业迈进,在这个过程中以下因素最为重要:
1)价格因素.中小企业都是资金不足并且需要快速成长的企业,所以系统成本会成为其一个重要的考虑.这个成本包括购买成本和维护成本.
2)性能因素.中小企业的发展相对于大企业来说是相当迅猛的,其用户数量/业务数量都有非常高的增涨.所以,他们需要有一个比较好的处理性能的操作系统和服务器.
3)技术因素.中小型企业由于在快速起步阶段.所以其在计算机技术方面并不一定很强.这样,他需要一套简单易用直观的系统.
4)使用方面.中小企业更多的是非计算机专业的行业.所以,在系统的操作性和使用方面需要能让一般用户快速地使用,从而降低整个企业的学习成本.
其实,对于中小型企业来说,他们很迫切地希望能够通过计算机内部企业网络,以及相关的管理系统来让自己的管理上一个台阶.但是由于受到资金和技术的双重限制,他们很难在企业内部建立一套简单易用并且有很强性能和功能的系统.而且,由于中小企业的业务不需要太多的个性化,所以他们更愿意租用或是托管一套已经比较成熟的解决方案.这样他们可以避开在资金和技术维护上的短处.
因此,对于中小型企业来说,是否使用Unix或是Linux或是Windows,并不是最重要的.他们很关心的是一套稳定价优的解决方案.对于一些提供这些方案的产商来说,Unix显然不能在价格和技术方面达到这个要求,而Windows可以解决技术方面和维护方面,以及使用方面的问题,但在资金方面,如果完全使用正版的Windows的所有服务产品,其价格会显得非常昂贵.
在这个方面,通过使用Linux组建后台服务器,使用廉价的OEM版的Windows的PC作为前台客户端,通过后台Linux向前台用户提供Web-base的操作界面将会是一个有很强竞争力的解决方案.
迟早有一天,这些私有化的Unix要被灭亡,但是Unix所带来的技术、文化和精神,将会在Linux上延续.Linux是Unix的一次“涅磐”!