[转]闲话操作系统2

[转载]
http:
//cache.tianya.cn/publicforum/content/itinfo/1/52947.shtml

1979年,DARPA(Defens Advanced Research Projects Agency,美国国防部高级研究计划局)开始着手一项计划,全面更新他们的ARPAnet(一个用于连接他们散落在美国各地研究中心的计算机的网络 ,Internet的前身)。早期运行ARPAnet的都是些PDP-10,现在已是风烛残年,该退休了,DARPA准备换上新型的VAX机来接班,加上前两年开发的TCP/IP协议(Transimission Control Protocol/Internet protocol)也得借这次机会登台亮相,这将是一次脱胎换骨的大换血。DARPA首先想到的是找DEC,毕竟VAX就是他们的产品,但他们需要对操作系统进行大幅度的修改,想到DEC对于自家VMS的保守态度,上门搞不好要碰个大钉子,自己动手吧,又没下嘴的地方——正犹豫间,BSD的出现让他们眼前一亮——完全支持VAX,可获得源码,可定制,可移植,简直就是个度身定做的系统!

于是他们找上了Berkeley。Berkeley当然是有见识的,这么有意义的活计上哪去找,共襄盛举那是求之不得啊,于是在1980年两家就签订了一个合同,由DARPA资助Berkeley发展UNIX,以满足DARPA的需要。Berkeley为此专门成立了一个小组叫做CSRG(Computer System Research Group),由Bob Fabry教授负责(就是将UNIX引入Berkeley的那位),Fabry当然很想Joy参加进来,但当时Joy刚通过Ph.D.的考试,为其学业着想,Fabry也不好意思去找他,但没多久Joy就主动找上门来了(一点不奇怪,他不参加倒真奇了怪了:)。

且说DARPA的一个主要要求就是要将TCP/IP协议集成到UNIX中,他们此前就找了一家叫BBN的公司写好了协议栈,CSRG就安排Joy来做集成工作。没想到的是,没过几天,Joy就完成了——这没什么稀奇,稀奇的是,他根本没用BBN写的协议栈,他居然自己重写了一个,原因竟是,他嫌BBN的那个写得太烂!要知道BBN的那玩意可是一项巨额合同的成果,BBN和DARPA这下觉得太没面子了,肯定有内情,就开会研究,请Joy参加。且说Joy穿着件T恤,蓬头垢面的就进了会议室,满坐西装革履,看着这小子不觉有点发呆,回过神来就问他,你是怎么写出来的(估计还存着念头,以为他以前做过相关研究什么的)?没想到回答简直让他们喷血,Joy说,这个嘛,很简单,你读协议,然后编码,就行了。:)

        最早集成Joy所写的TCP/IP模块的BSD版本是4.1a,跟BSD之间隔了两个版本,4.0和4.1。这两个版本的进步不算大,4.0版主要是加进去一个Lisp系统(Lisp是一种资格极老的语言,由MIT的John McCarthy教授于1958年发明,仅比史上最早的高级语言——1957年由IBM开发的Fortran——晚了1年而已,这种设计理念奇异的语言非常与众不同,它对程序与数据不加区别,对其缺乏了解的人看到它浑然一体、遍布密密麻麻括号的源程序肯定会一头雾水,但它有着强大的表达能力,尤其适合符号和文字处理,是AI(Artificial Intelligence,人工智能)领域的首选语言——目前可能是它的一个变种Scheme用得更多些,著名的AutoCAD自带的脚本语言AutoLisp就是基于它,还有著名的Emacs也是Lisp写的,还附带一个完整Lisp版本——Emacs Lisp),以及一个增强的邮件处理系统,这个版本的生存期只有几个月,因为它存在一些严重隐患,大家抱怨颇多,于是CSRG很快就推出了4.1版,这个版本主要是对4.0版做了些修修补补,此外大一点的改动就是增加了自动配置代码功能。

本来按Berkeley的命名规则,4.0版过后就应该是5.0版,但这时AT&T有意见了,因为他们自己推出的UNIX就叫System V,两个5容易混淆。BSD本来就是从AT&T那儿发展来的,人家一直都很宽容,况且到当时为止,AT&T的代码都还没替换干净,吃人家的嘴短,当然不好争什么,于是Berkeley决定,4字头就不往上升了,以后的版本只升小数点以后的数字(有点致敬的意思,好比芝加哥公牛队在乔丹退役后就不再使用23号球衣:)。

而4.1a这个版本相当于现在软件的α版(内部测试版),Joy不仅为它集成了TCP/IP,还增加了多网络协议的支持能力,多个网络协议可以同时使用,这在以后成为操作系统的设计标准。因为4.0版的失败,所以CSRG决定发布新版本要慎重一点,所以先自己试用,但与现在的情形一样,这个版本还是流传了出去,并勾起了大家的兴致,不少FANS开始对4.2版充满期待。

但4.2版的诞生颇为艰难,自1982年4月4.1a版发布开始,又过了1年零4个月,中间经历了4.1b和4.1c两个非正式版本,经历了Bob Fabry(还记得他吗?CSRG的BOSS,UNIX由他引入Berkeley,他的离去很大程度上是因为不堪重负——这种高强度的开发工作是很折磨人的)和Bill Joy(他于1982年以唯一一名技术人员的身份与Scott McNealy等4名Stanford的学生一起创办了SUN公司,如你所知,这是当今最著名的生产UNIX机器的公司,但他关于BSD的工作仍持续了好几年)的离去,才于1983年8月正式发布。

这一版本非常成功(尽管问题也不少,主要是因为一堆新增的功能还没有很好的优化),发行量超过以往版本的总和,并且打败了AT&T的System V,成为广大UNIX厂商制作移植版本的首选,著名的如SunOS 4就是基于它,AT&T在SV的后续开发中也集成了4.2版的许多精华(抄袭是最好的赞美,谁说的来着:)。事实上,这一版本影响如此深远,尤其是其网络模块,此后几乎所有重要的操作系统都从中借鉴,更有一些是直接拿过来用。

除了骄人的网络功能,4.2版还有许多其它方面的重大进步,如:新的、更强大的文件系统以及磁盘配额机制,新的信号机制,以及独立出来的输入/输出系统,还有全新的文档——这些都是大动作,而且就这还是迫于发布压力进行了妥协,不然还准备对交互通讯机制和虚拟内存管理模块开刀:)。

所有人都表示赞赏——除了BBN(就是那个写了最初的TCP/IP协议栈并被Joy给否了的公司)。他们对Joy的那一箭之仇一直耿耿于怀,于是不停地向DARPA抱怨,说自己的理念是如何先进,设计又是如何优秀,BSD如果采用了我们的模块一定会跑得更欢云云~~~~,DARPA也不禁动了心,就责成CSRG重新评估BBN的代码,CSRG的高手一看,也确实有可取之处啊,但要说把自己的代码给换掉,也未见得可行,毕竟自己的代码此时已是经过考验的,于是就提出一个折衷方案,把两套代码都包含进去,由用户选择。但这下DARPA又不同意了,这可是网络模块,搞两个政府,自立山头,不是明摆着添乱吗?坚决不行!公说公有理,婆说婆有理,这也不是办法,于是干脆,DARPA请了个第三方的专家——Ballistics实验室Mike Muus来做评估。Muus忙乎了一个月之后,结果出来了,Joy的代码通过了所有测试,而BBN的呢,在高负荷的时候时不时会死给你看:)。于是DARPA拍板,新版本继续使用Joy的代码,BBN这下郁闷死了~~~:)。

4.3版过了三年才发布(1986年6月),尽管间隔时间如此之长,但这一版远没有4.2版那么富于革命性,它主要是对4.2版做了些修补和优化,虽然反响不错,但也仅此而已,对业界的影响远不能与4.2版相提并论。比较值得一提的是,在发布后的晚些时候,CSRG的两个牛人,叫做Casey Leedom和Keith Bostic的,对这一版做了一次匪夷所思的移植。

从第3版开始,BSD就是基于VAX机在搞开发,VAX是32位机,通常配有1M内存(两个内存块,每块面积有4分之1平方米,还可以配更大,寻址能力4GB,即2的32次方)及高速的磁盘(容量通常为5MB或10MB,很惊人的说~~~~),所以BSD可以实现诸如内存换页以及新文件系统等技术革新,而Leedom和Bostic现在要做的,是将4.3版移植到PDP-11上。PDP-11我们应该都比较熟悉了,UNIX的第一个正式版本就是在它上面完成的,它是DEC经典的16位机,作为那个年代流传最广的廉价计算机之一,可以理解,它拥有为数众多的FANS。但无可否认,到了1986年,它早已落后了(事实上这时连VAX机都已年满8岁,颇显老态,1年前连微处理器都发展到了32位的Intel 386),以它可怜的64K的内存寻址能力(即2的16次方,这个限制对促进UNIX短小精悍的应用程序设计风格意义重大,不得不说,硬件的简陋往往能促生优秀的软件设计,这一点在Palm系统上也得到了证明)、512K的磁盘要跑4.3BSD简直是说梦话,CSRG里的大多数人虽然都很怀疑,但还是支持他们两个试试看(这么好玩的事换我也会支持,想想看,谁要是能把Windows NT移植到286上面~~~~,呵呵)。让人大跌眼镜的是,这两个牛人不仅移植成功,居然还跑得很好——UNIX的可移植性真不是吹的:)。这个跑在PDP-11上的新系统被命名为2.11BSD(2BSD原本是最后一个在PDP-11上开发的版本),具备和4.3BSD差不多相同的功能,很受PDP-11用户的欢迎,一直陪伴许多PDP-11工作到寿终正寝,据说直到今天,在世界上的某些角落,偶尔还可以找到跑着2.11BSD的PDP-11(PDP-11起码也有30多岁了,不管是作为一台计算机还是作为一个电子设备,这样的高寿都很值得骄傲的说,而2.11BSD作为一个软件,20多年的寿命倒不算太难得,一些行业用户的程序往往非常古老,比如一些银行系统里大型机上的Cobol代码,有三四十年历史也不稀奇)。

        4.4版的BSD于1994年6月发布,这一BSD的最终版本距离4.3版足有八年之久(Vista有望一比,巧的是,微软也吹风说Vista可能是传统Windows的收关之作,集大成者想来是得多些时间酝酿),虽然间隔如此之久,但4.4版也说不上有太大的技术进步(大概是4.2版用力过猛,加上别的问题困扰,CSRG一直没缓过劲来),但它解决了一个很关键的非技术问题,可说是意义非凡。这八年中曲折甚多,值得一说。

截止1986年,4.3BSD除了一个BT的PDP-11移植版外,并没有向其它机器移植,一定程度上是因为系统中有许多针对 VAX特有硬件的设计,移植并不容易,而此时VAX已日薄西山,开拓新疆域迫在眉睫,CSRG想一劳永逸地解决这个问题,于是由Joy操刀,将BSD的内核分离成两块,一块依赖于机器,一块则独立于机器,这样可以大大简化移植工作的难度。这项工作于1988年完成,CSRG发布了一个叫作4.3BSD-Tahoe(Tahoe是加州的一个高山湖,旅游胜地)的版本,于是许多移植工程就基于这一版展开了。

这时另一个问题又暴露出来,因为BSD中包含有AT&T的代码,如果想获得BSD代码的使用权,你还得向AT&T购买一份源代码许可证,随着BSD越来越受欢迎,AT&T的价码也是越来越高(最初只要一万多美元,后来涨到好几万),许多人就开始抱怨,尤其是那些计算机公司。他们多半看中的是BSD中的网络模块,而这一部份根本不关AT&T的事(实际上AT&T自己的SVR都是用的BSD的网络代码),现在却非得去出这一份冤枉钱,实在是太亏了。于是许多人都建议CSRG把AT&T的代码去掉,把网络模块单独拿出来卖,或者干脆搞一个完全属于自己的版本(著名Hacker,自由软件的倡导者Richard Stallman早在1987年就向CSRG提出过这种建议,当然他是站在更高的立场,是为了让UNIX摆脱商业公司的束缚)。

完全去除AT&T的代码的代码是一项大工程,所以CSRG先拿出了一个叫做Networking Release 1的东东。这不是一个完整的系统,而仅仅是一个网络模块,该版本于1989年发布,同时发布的,还有CSRG对这一版本拟定的一个许可协议。也许是受了Stallman的GPL(General Public License)的影响,这个协议鼓励修改源码和再次发布,而且它非常宽松,比GPL宽松得多,它允许再次发布时只发布二进制版本,而不附带源码(这在GPL中是不允许的),只需附带完整的版权声明即可(“完整”的意思是,要把该软件的渊源交待清楚,包括它来自Berkeley,以及中间还经过谁谁的修改——怎么觉得有点象纪念碑,呵呵)。后来在Networking Release 2发布时仍使用了这一协议,到4.4版发布时,这一协议演变为BSD License,后来FreeBSD又将其修改为FreeBSD License,基本上也都大同小异(因为许可太宽松,所以很多人都把FreeBSD拿过来,修改一番再拿去卖,比如前些时闹的沸沸扬扬的所谓国产操作系统“麒麟”,只是国防科技大学他们(还有其他几个公司,不一一点名)的做法未免有失厚道,不遵守版权协议也就罢了,还企图掠人之美、瞒天过海)。

这样宽松的许可协议,等于认可一个人买下后,就可以无限制的Copy给其他人,事实上也正是这样,刚一发布,就有一些著名的FTP站点提供开始匿名下载。虽然如此,CSRG还是卖出了几百份Copy,每份定价$1000,算下来也有几十万美金,在那些财大气粗的公司看来这点小钱简直不值一提,但CSRG的人还是很开心:)。

        1991年,CSRG发布了Networking Release 2。与Networking Release 1一样,这个版本完全由CSRG的代码构成,不同的是,它的内容要比Release 1要丰富的多,接近于一个完整的系统。

在这两年里,CSRG除发布了一个试验性质的4.3BSD- Reno之外(这个版本比较奇怪,它的主要改进是加入了来自Mach操作系统的虚拟存储模块,以及来自SUN的网络文件系统(NFS),不仅代码是采取拿来主义,连集成工作也是由来自别的大学的志愿者捉刀,Reno是Lasvegas的一座纪念建筑,用意在于表明选用这一版本的风险),大量的精力被用来剔除AT&T的代码,这一工作主要由Keith Bostic、Mike Karels和Marshall McKusick完成,事实上到Networking Release 2发布时,AT&T的代码已经被替换的差不多了,仅剩下6个核心文件没有重写。

Release 2被CSRG当作发布完全自主版本的一个尝试,沿用了Release 1的发行方式,虽然加了很多料,但定价一样,销量也差不多。在发布6个月之后,Bill Jolitz把剩下的6个文件也重写了一遍,并把整个系统移植到386架构上(在此之前己经有BSD的PC移植版,但影响不大),发布了一个新版本,叫做386/BSD 0.1(Linux发布之初,也采取了这样谨慎的命名方式),它完全免费,Jolitz还专门建了一个Ftp提供下载。这时PC早己是星火燎原、深入人心,可以想象,这一举措受到了热烈欢迎。

当前流行的所有BSD版本都是源自386/BSD,但386/BSD自身发展的却并不好,照Jordan Hubbard(FreeBSD和Darwin的创立者之一)的说法,在NetBSD、FreeBSD诞生之后,它很快就象渡渡鸟一样绝迹了。Jolitz技术上很牛X,但似乎缺乏人际交往和组织管理方面的能力,因此386/BSD的开发团队很快就分崩离析了,我看到Hubbard在一次访谈中对他抱怨颇多(人无完人,其实技术牛人出现这种状况也很常见,更著名的如William Shockely,这个大牛人、晶体管的发明者之一,甚至在当公司老板时获得了诺贝尔奖,但终因傲慢与独裁,导致手下的人才流失殆尽,本来前途无量的公司最终落得个惨淡收场,但另一方面,Fairchild和Intel倒也可说是拜他所赐 :);还有,John Carmark,这个许多人眼中最牛的程序员,在管理和沟通方面也曾陷入困境,如日中天的ID Soft差点被他整熄火,但他运气不错,最后算是跌倒了又爬起来:)。

        当今流行的BSD版本主要有三个,NetBSD、FreeBSD以及OpenBSD。NetBSD资格最老(其实也只比FreeBSD早了几个月而已),在386/BSD发布几个月后由一群爱好者组成的小组推出,它被看作是最接近传统BSD版本,拥有最佳的可移植性,支持最多种类的机器(大约有五六十种,从巨型机到手机,号称只要是有处理器的设备,它都可以支持);FreeBSD则是最为著名、也是流传最广的版本,它对PC平台的支持最好(因此支持的平台种类也就较少),有最多的应用支持,它也是与Linux竞争最直接的Unix版本,它有一个Linux的模拟模式,在一定程度上兼容Linux程序(实际上Linux上有大量的程序都是从BSD系统上搬过来的,所以谁兼容谁倒也难说:);OpenBSD诞生较晚(1995年),它立志要当世界上最安全的操作系统(事实上也做的非常成功,但那个“最”字很难说,其实要说安全,往往与“OPEN”是对冤家,越是封闭的系统越安全,但作为通用系统,封闭又恰恰是设计的大忌,所以关于安全性的问题往往成了开放与安全之间的博弈),因此也得到了DARPA的资助(记得吗?BSD的发展很大程度上也得益于此),它对多平台的支持也很不错,但比较难用,因为它倔强的核心开发者Theo De Raadt说,我们要用更多的精力保证它更棒,而不是更美味可口:)。

此外还有一些别的版本,比如Apple的NeXTStep(本来是Jobs自立门户期间一个野心勃勃的项目,NeXT于1996年被Apple收购,Jobs借此机会归了队,NeXTStep的设计后来被融入osX),以及MACos X的核心Darwin(尽管MACos X是一个专有系统,但Darwin本身其实是一个开源项目),还有一个2003年才推出的版本DragonflyBSD,它源自FreeBSD4.X,因为有一伙人对FreeBSD5的发展方向不满,于是就派生了这么个分支。

以上这些现在只简单提两句,后面会作进一步介绍,回过头接着说BSD的事。

Networking Release 2发布几个月后遇到了一点麻烦。一个新成立的公司BSDI(Berkeley Software Design)自作主张,把Networking Release 2缺少的那6个文件补了上去(应该就是直接用的 AT&T的代码),凑了一个相对完整的版本拿出来卖,价格只要$995,当然也带源码,他们做了些夸张的广告,声称比System V要便宜99%云云。于是USL(就是AT&T的那家子公司)一怒之下,就把它告了。但BSDI辩称自己用的是BSD免费发行的代码,要说有问题也就那6个文件可能有点问题,于是USL捎带着把加州大学(Berkeley是它的分校)也告上了,要求他们停止发布被认为是侵权的软件。Berkeley也被惹火了,稍后对USL提出了反诉,借口是System V使用了BSD代码的署名权问题。

经过一番热热闹闹、缠夹不清的诉讼程序之后(其间USL被Novell从AT&T买走,Novell对此案件的态度比较温和),两家还是坐下来用谈判解决问题,最终在1994年1月达成协议,Networking Release 2的18,000个文件中有3个被删除,还有几个作了少量修改,另有70个加上了USL的版权声明,但仍免费发放。总而言之,没怎么伤筋动骨,这场经历了两年多的热闹最终是雷声大雨点小。

CSRG现在总算有精力干点正经事了。1994年6月,他们终于发布了4.4BSD,而且同时发行了两个版本,一个叫4.4BSD-Lite,一个叫4.4BSD-Encumbered,这完全是因为版权问题。4.4BSD-Lite完全是自有代码(而且终于获得了USL的认可),但功能不太完整,Encumbered则是一个功能完整的版本,但仍需要用户买一份USL的源代码许可。不出意料的是,仍是那个功能单薄点、但完全自由的4.4BSD-Lite更受欢迎,它成为BSDI、NetBSD、FreeBSD等发行版本新的代码来源。

1995年6月,4.4BSD-Lite release2发布,从版本号就看得出来,这是一个缝缝补补的版本,实际上这期间CSRG已经没怎么搞开发,仅仅有一个人在兼职搞善后罢了。release2发布的同时,CSRG宣告解散,官方说法是,BSD已发展的相当成熟,对于操作系统的研究目标已经达到。十五年的光辉岁月,大量牛人出没其中,并在此扬名立万,CSRG这个名字在计算机历史上已堪称不朽。




Sun是Stanford University Network的缩写(它的商标很有意思,极简单的图形,却体现了递归和循环的意味,不愧是搞计算机的),与Stanford的渊源一望可知。四个创始人中,除了Joy,全都是Stanford的毕业生,其中Scoot McNealy(大BOSS,强人,以大嘴著称:)和Vinod Khosla(来自印度,著名风险风险投资家)都是MBA,另外一个,Andreas Bechtolsheim则是搞电气工程的(他提出了搞Unix工作站的构想,于是Sun公司就围绕这个想法展开)。他们看准了电脑网络的大好前途,在公司筹建之初就提出了“网络就是计算机”的口号,在1982年,这的确是高瞻远瞩(Gates到1993年还在说Internet没什么前途,等到Netscape坐大后才慌了手脚:)。

Joy到了新天地不改牛人本色,除了搞本行(开发操作系统)以外,他还负责开发CPU(和TI合作,TI(Texas Instruments,德州仪器)是做CPU的老牌厂商之一,在486时代,它的兼容CPU红火过一阵,现在主要做手机及消费数码芯片,MP3/MP4、掌上电脑等,在手机CPU市场占的份额好象是第一),他自己完成了最关键的一部分线路设计,于是SPARC就问世了(1987年,采用RISC架构,具备最强悍的可扩展性,在业内长期居于领先地位,Sun在Unix机器市场占据半壁江山,SPARC居功甚伟),这种行径当真是骇人听闻,Wintel两家的事他一个人都包了,有了这样的“首席科学家”,Sun想不牛都难啊。

Sun自己的操作系统于1985年推出,就叫Sun OS,当然,是由Joy操刀。该版本基于4.2BSD,Joy做起来自然是驾轻就熟。1995年,在发布了3.5和4.0两个版本之后,Sun OS加上了桌面环境,CDE什么的以及改进的网络模块,系统被改名为Solaris,而Sun OS被用来指称系统内核,Solaris最早的版本就是2.0(内核则是Sun OS 5.0,头胎就叫王二麻子,呵呵:),到了2.6版以后,Sun觉得不爽了,就把2去掉,以后的版本号就成了7、8、9、10,更新很规律,基本上两年一版。

因为正好赶上USL和Berkeley打官司(1992年),BSD看来不大安全,Solaris于是改用AT&T的SystemV R4.2做开发基础(当然这个得掏钱,Sun如果再坚持段时间,其实可以等到没有版权纠纷的BSD,但时间就是Money啊:),虽说变动其实并不大,但在当时还是引起了一些忠实用户的不满,至今还有微词,好在不久Solaris就证明了自己的优秀。

Solaris毫无疑问是当今No.1的Unix,世界上排的上号的大公司几乎都是它的用户。它的性能指标往往成为业界考评的标准和参照,技术上颇多带领潮流之举。比如4.3BSD- Reno就曾把Solaris中的NFS(Network File System,可以让不同操作系统通过网络方便的共享文件,为了使这项技术成为业内标准,Sun将它免费发布)集成进去。至今最成熟的版本,2004年11月推出的Solaris10,更是被Sun称作“The most advanced operating system in the industry”, 这个历时4年、耗资5亿美元的系统的确不同凡响,融入了大量尖端技术,看起来够领先一阵的了。

Solaris10的重要特性包括:Container(一种将计算机划分为多个独立运行空间(虚拟计算机)的技术,使一台主机能象孙悟空那样化身万千,互不干扰)、DTrace(Dynamic Tracing,故障跟踪,Solaris10在内核中安放了两三万个探测器,用以侦测性能瓶颈和捕捉异常,并协助解决问题,是操作系统设计中的一个重要创新,Sun凭这项技术荣获《华尔街杂志》2006技术创新大奖中的金奖)、预见式自修复(Predictive Self-Healing,号称能在软硬件故障发生以前,主动预测并加以修复,很神奇的说~~)、ZFS(Zettabyte文件系统,第一个128位的文件系统,Sun称其为史上最后一个文件系统,号称解决了现有文件系统的所有问题,技术指标极其卓越,几乎没有容量限制——看看“Zettabyte”这个词就知道了,在安全性、扩展性、可管理性乃至兼容性上也无可挑剔,比起Microsfot只见打雷不见下雨的WinFS似乎只强不弱,WinFS的风都放出好几年了,现在Vista都有准信了,WinFS却还不知道在哪,可见一个强大的文件系统有多难搞了,ZFS其实也拖了好久,到今年6月才正式发布)等新技术,运行效率(系统利用效率最高可达80%,这个得益于Container,那么多虚拟机自然要把资源榨干了;应用程序的运行性能号称提高了30倍——Sun官方资料,有点难以置信~~~~)和安全性(达到军用级别)都大幅提高,稳定性也可圈可点(作为一个改动如此之大的版本,这一点非常难得),对Java的支持也大为改善(Solaris10融合了最新的Java技术构架。说来好笑,Solaris对Sun自家的Java支持一直不大好,一度曾归于支持最差的平台之列),此外,它还具备支持多平台、兼容Linux、开源等等好处,很有点舍我其谁的霸气,难怪Sun发布消息放出的当天,股票就应声上涨近5个百分点,低迷了好几年的Sun终于看到了一点转机。

Sun在创业初期的产品策略定位在以低价高性能的工作站(Workstation)与当时流行的小型机(Mini Computer)竞争,性价比高的夸张,业绩辉煌一时。后来时过境迁,PC发展迅猛,性能直追Sun的工作站,价格更是便宜一大截,成为Sun的主要竞争对手,Sun意识到不能在一颗树上吊死,开始发布一些低价产品与PC竞争(后来Dell之类的价格杀手横行,竞争日益残酷,Sun的一些低端产品干脆采用AMD的CPU,服务器几百美元就开卖,IBM、HP也大抵如此),Solaris也开始支持X86架构(1994年开始,最早的版本是Solaris X86/2.4,与Sprac版本源码级兼容,程序可通用;Sun一度还曾开发支持PowerPC的版本,不过后来出于商业上的考虑未正式发布)。

因为Sun的产品主要是服务器和高性能工作站,所以对64位技术尤其重视(Sun自己的处理器从1999年的UltraSparc III起就步入了64位时代,Solaris则是从2000年发布的Solaris7开始支持64位),Solaris可以支持包括Intel的IA64、EMT64以及AMD64的全部X86-64架构,Sun在这方面甚至比Microsoft还显得积极。

尽管McNealy 声称最烦什么“战略性投资”的屁话,一切行动都要落实到赚钱,但Sun对开源(Open source)倒一直表现的很热心。OpenOffice是他们搞出来的,Solaris开源了,现在连Java也打算开源了,虽然作为一家商业公司,他们的目标无疑是营利,但贡献也是明摆着的。有Linux的支持者嘲讽Sun是撑不住了(曾连续十几个季度亏损),才走开源这条道,恐怕也有道理,OpenOffice和Java都不怎么赚钱(甚至StarOffice比起Microsoft的东西来也太缺乏竞争力,而Java,虽说是席卷全球,风头无两,但据说Sun也就是在J2ME的授权上赚了点钱,要说起来,Microsoft的那笔近20亿美元的赔偿可能是Sun在Java身上赚的最大一笔,McNealy在那以后对Microsoft的态度也似乎也变的温和了一点:),但Solaris可是Sun赖以安身立命的家底,竞争力又是超强,Sun竟然把它也贡献出来,十九是被Linux还有“Free”的BSD系列给逼急了:)。

其实Sun虽然很早就拿开源说事(声称崇尚开放是公司一以贯之的信念,若果真如此,在Sun成立之初就把操作系统开源,恐怕世界上就没Linux这么个东西了:),但行动上却总是吞吞吐吐、犹豫不决。拿Solaris来说,在Solaris7推出的时候,Sun就提供个人免费版下载,但限制多多,后来又说开放源码,也是有选择的开放,而且还只准看不准动。经过这些试探,大概觉察到效果不佳,不容易糊弄过关,到Solaris10发布的时候,才痛下决心、正儿八经开源了一回。

Sun为开放Solaris启动了一个新的开源项目OpenSolaris,Solaris10只是其中的一步,该项目所采用的协议叫作CDDL(Common Development and Distribution License,通用开发与发布许可),这是Sun在参考了MPL(Mozilla Public License,Mozilla浏览器所采用的公共许可)协议后,自己拿出的一个方案,已经过OSI(Open Source Initiative,开放源代码促进会,一个行业自律性质的协会,已认证的各种开源协议有好几十种了)认证。大致上,CDDL的限制没有GPL那么严格,但也不如BSD那么宽松。照Sun的说法,该协议比GPL大方多了,ISV(Independent Software Vendors,独立软件供应商)在使用Solaris源码时,大可只进不出,将开发成果敝箒自珍、秘不示人,而不必象在GNU/Linux下做开发一样,非得将自己的成果也贡献出来;甚至使用了Solaris的相关专利,也无需担心法律问题(Sun承诺不予追究),万一出现了法律纠纷,ISV也可以选择使用本地法律加以解决(而GPL这方面的限制要严得多)。

很明显,这份用意深远的协议,颇能博取ISV的好感,Sun的醉翁之意也正在于此。事实上,自从Linux产业在忽忽数年之间火遍全球,最受冲击的恐怕就是Sun了,大量原本属于Sun的市场纷纷沦陷于Linux之手,Sun的营业额从01年度的183亿美元下降到04年度的112亿,跌幅超过三分之一,很大程度上正是拜Linux所赐。因为Sun的市场定位与Linux颇为相似,而Linux本身是一个类Unix系统,对Unix有良好的兼容性,凭借其无与伦比的价格优势,很快就吸引了大量软件商和应用向其转移,Sun是看在眼里、急在心里,多方筹谋,甚至不惜与宿敌Microsoft联手,加强双方产品的兼容性,以抵御Linux的进攻,而OpenSolaris和CDDL正是它祭出的杀手锏。Sun深知,在应用为王的IT行业,谁能抓住“应用”,谁就能赢得市场,而炮制出这么一个讨ISV欢心的CDDL,正是看准了GPL在某种层面上的不得人心(而值得玩味的是,Sun在OpenSPARC和Java的开源项目上又选择了GPL协议),尽管这种做法在Stallman等“FreeSoft”精神的铁杆捍卫者眼中,可能是一种亵渎,但其成效斐然。Sun宣称,截止今年10月,Solaris10的注册数已超过600万(9月份公布的数字是500万,如果属实,这个增长速度确实非常惊人),比它所有竞争对手都要多(包括RedHat,IBM AIX以及HP-UX,后两个不是开源软件,貌似没什么可比性,而Redhat/Fedora似乎也不能算是近来最热门的企业级Linux版本,但我没找到Suse Linux Enterprise 10可以用来对比的数据),而ISV的数目也是大增,其中不乏Oracle这样的大腕力挺(钦点Solaris10为“首选的64位开发和部署平台”),Sun的业绩也随之好转了很多(虽然盈利也还微不足道)。

至于赚钱之道,Sun称“Solaris是Sun的第一个成功转入到服务收费模式的软件,今后Sun所有软件都会转到这个模式”(出自Simon Phipps之口,此人有一个难得一见的头衔,他是Sun公司的“软件开源首席执行官”,专设此职,倒也可见Sun的良苦用心:)。“软件免费,服务收费”算不得什么新概念,几乎所有的大软件公司都念叨过,但真正落到实处,却是步履维艰,至少象Sun这种级别的公司还没谁可以做到(Redhat作为开源厂商的老大,去年的营收也才刚刚过亿,利润更不足道,而且就这还有不少是靠卖软件得来),Sun自然是极有资格玩这游戏的人选,希望能看到他趟出一条可行之路。

posted @ 2007-09-07 14:47  Anytao  阅读(1603)  评论(7编辑  收藏  举报