拥抱开源(第2版)
上QQ阅读APP看书,第一时间看更新

将时钟拨回到1991年。一个名叫Linus Torvalds的芬兰大学生在Usenet新闻组上发布消息说,作为一种爱好,他开始在UNIX模式下开发一个自由操作系统。Stallman最初的GNU项目的许多部分已经完成。在阳光明媚的加利福尼亚州,加州大学伯克利分校已经推出了第一个可自由分发的UNIX版本。

自由软件显然已经到来,只是它还没有成为计算机领域中非常重要的一部分。

当时,计算机市场格局非常分散。UNIX市场卷入了一场自相残杀的专有系统战争中。许多其他类型的私有计算机公司依然存在——只是它们已经过了鼎盛时期。

这当中比较知名的是马萨诸塞州的“128号公路”小型计算机公司。之所以这样命名,是因为这些公司都位于这条公路上或附近。这条公路环绕着美国东北部海岸的波士顿和剑桥等邻近城市。然而,也有许多供应商为商业和科学计算构建和销售操作系统。大多数人使用自己的硬件设计,从芯片到磁盘驱动器、磁带驱动器、终端等。如果用户买了一台Data General计算机,他也许会从同一家公司或少数山寨的计算机附加设备供应商那里购买内存、卷轴磁带机、磁盘驱动器,甚至机柜。

这些公司的软件基本上也是一次性的。一家典型的公司通常会编写自己的操作系统(或几个不同的操作系统),此外还有数据库、编程语言、实用程序和办公应用程序。笔者在Data General工作时,该公司有大约5种不同的非UNIX小型机操作系统和几个不同版本的UNIX操作系统。

这些公司中许多人都在考虑向他们自己的UNIX版本全面转变。但这主要是针对另一种定制的硬件和UNIX操作系统的变体。

那时,大多数计算机系统仍然庞大且昂贵。“Big Iron”是常用的俚语。许多分析师的报告中都充斥着对它们复杂多样的架构的分析和比较。

即使是“小型企业”或“部门”服务器(通常被称为不需要“玻璃房”数据中心等特殊条件的系统),也可能会花费数万美元。

然而,越来越多的PC开始被固定在桌子下面,用于处理不太繁重的工作。Novell公司的软件NetWare是此类系统的常见选项之一,专门处理打印或存储文件等常见任务。UNIX操作系统也有面向大众市场的版本。最常见的是一家名为Santa Cruz Operation的公司。该公司通过从Microsoft公司购买AT&T许可的Xenix变体而进入UNIX业务。许多年后,一家名为SCO或SCO集团的公司提起了一系列与Linux操作系统相关的多年诉讼,IBM和其他公司也卷入其中。

从更广泛意义上来说,整个计算机系统领域正在发生翻天覆地的变化。正如半导体制造商Intel公司首席执行官Andy Grove在《只有偏执狂才能生存》(Only the Paranoid Survive)(Penguin Random House,1999)一书中所述,20世纪90年代,计算机行业发生了根本性的变革。

正如我们所看到的,历史上的计算机行业是以垂直栈组织的。这些垂直栈越来越多地旋转成一个更水平的结构(如图1-4所示)。UNIX战争时代见证了从紧密集成的专有服务器栈到单一供应商的转变。但互联网的兴起和许多与之相关的市场力量才真正扭转垂直栈的局面。

图1-4 垂直栈的转变

这不是一个纯粹的转变。过去仍然有(现在也有)专有处理器、服务器和操作系统。

但市场越来越多地转向一种模式,即系统供应商从Intel公司购买计算机的中央处理器,通过其他供应商购买各种基本标准化的芯片和组件,从其他公司购买操作系统和其他软件。然后,他们通过直销、邮购和零售的方式销售这些“行业标准”服务器。

在此期间,AMD公司也在Intel公司的授权下生产兼容的x86架构处理器,但是随着时间的推移两家公司陷入了各种合同纠纷。AMD公司后来取得了一些成功,但在很大程度上仍处于Intel公司的阴影之下。

PC模式正在接管服务器空间。

Grove将其描述为PC的10倍力量。旧模式的紧密整合可能会有所欠缺,但是,通过一定程度的自己动手,你就可以只花费几千美元让所有东西一起工作,并获得越来越多与工程工作站相媲美的功能。要知道,在过去,你可能需要花数万美元向某家专有的UNIX操作系统供应商购买这些功能。

随着x86架构日益占据主导地位,现在只需要确定哪个操作系统主导这个水平栈。另一个问题是,谁将更广泛地主导这个水平栈平台的重要方面,如应用程序、数据库以及刚刚开始变得重要的领域,如Web服务器。但是,这些都不是紧迫的问题。

答案并不明显。Microsoft公司著名的DOS操作系统和Windows操作系统的最初版本都是为单用户PC设计的。它们不能像UNIX操作系统那样支持多用户,所以并不适合商业用户。商业用户需要能够轻松地共享数据和资源的操作系统。Novell NetWare是一款多用户的替代品,它在文件和打印机共享方面做得非常好,但它不是一个通用的操作系统。(Novell公司进行各种尝试来扩充NetWare的功能,但是大多以失败告终。)另外,虽然小型系统也有UNIX选项,但是它们并不是真正的大众市场,也受到前面描述的UNIX操作系统分裂的影响。

Microsoft公司决定在其台式机统治地位的基础上以相似的方式统治服务器。

Microsoft公司对下一代操作系统的首次尝试以失败告终。IBM公司和Microsoft公司在1985年8月签署了“联合开发协议”,并基于以开发出OS/2操作系统。然而,1990年Windows 3.0操作系统在台式机上获得成功后,两家公司越来越无法消除它们在技术和文化上的差异。例如,IBM公司主要专注于销售运行在自己系统上的OS/2操作系统(从其将备受瞩目的PC系列命名为PS/2便可见一斑),而Microsoft公司则希望OS/2操作系统能够在众多供应商提供的各种硬件上运行。

因此,Microsoft公司开始同步开发一个重新架构的Windows版本。Bill Gates在1988年聘用了Dave Cutler。Cutler领导的团队为DEC公司的VAX计算机生产线创建了VMS操作系统。G. Pascal Zachary的著作《观止:微软创建NT和未来的夺命狂奔》(Showstopper! The Breakneck Race to Create Windows NT and the Next Generation at Microsoft)(Free Press,1994)详细记载了Cutler推动开发这一新操作系统的努力。作者在书中把他描述为一位才华横溢,有时甚至咄咄逼人的首席架构师。

Cutler对OS/2操作系统的评价很低。有人说他对UNIX操作系统的评价也很低。在《观止:微软创建NT和未来的夺命狂奔》一书中,一位团队成员曾提到:

他认为UNIX是由一群博士组成的委员会设计的垃圾操作系统。整个设计毫无灵魂,因此,他一直想设计出超越UNIX的操作系统。而这也是他第一次有机会这样做。

Cutler负责设计一种新的操作系统,1993年发布时将其命名为Windows NT操作系统。

IBM公司继续自己开发OS/2操作系统,但它未能吸引到应用程序开发人员,所以最终被终止。Microsoft公司的成功是以牺牲IBM公司为代价取得的。这是一个早期的例子,说明了开发人员的重要性以及开发人员思维共享越来越重要。Bill Gates和Microsoft公司早就意识到这一趋势并发挥了相当大的优势。它后来成为开源社区成功的一个关键因素。

运行在Intel公司的中央处理器上的Windows NT操作系统是一款突破性的产品。事实上,Microsoft公司和Intel公司变得如此成功且占据主导地位,以至于人们越来越多地使用“Wintel”一词指代整个行业中占主导地位的系统类型。到20世纪90年代中期,UNIX和NetWare等其他操作系统都在走下坡路。

Windows NT操作系统主要基于小型服务器从UNIX操作系统手中夺取份额,但许多人认为自己看到了Wintel无处不在的未来。除了Sun公司的首席执行官Scott McNealy以外,UNIX系统供应商都开始押宝Windows NT操作系统。

具有讽刺意味的是,如果没有Windows NT操作系统,UNIX操作系统可能会征服一切。对此,Jeff Atwood写道:

这个世界已经完全演变成UNIX和Windows NT阵营。如果没有Windows NT操作系统,无论UNIX操作系统是好是坏,我们现在可能都在运行它。这确实发生在苹果公司身上,甚至该公司的下一代Copland OS都没有起步。而现在他们正在使用基于UNIX的OS X操作系统。

UNIX可能仍然是拥有许多处理器的大型系统的首选操作系统;Windows NT操作系统最初是针对较小的系统进行优化的。但显而易见,Cutler设计的Windows NT操作系统完全能够扩展并且作为UNIX操作系统的替代品。一旦达到这个目的,它很难不围绕着工业标准,就像Intel公司的x86架构的处理器那样。因为大批量销售的产品单位成本更低,所以Windows NT操作系统更容易在新的栈及其各个水平栈上下建立起合作关系和各种集成。