杂议WINDOWS和LINUX
类别: LINUX教程
最近有关操作系统的讨论无论在法庭上还是在网上都是越来越热烈了。这种热烈气氛的出现自然是与操作系统巨头 Microsoft 脱不了干系的。法律界为是否该裁定并惩罚 Microsoft 在操作系统上的非法垄断行为而头疼,软件业界为如何抵御 Microsoft 君临天下的庞大攻势而失眠,而被 Microsoft 日益苛刻的版权限制惹恼了的个人和公司电脑用户也在思考是否还应该对 Microsoft 从一而终。借着这股热潮本人也来就桌面操作系统 (Desktop Operating System) 领域中的 Windows 和 Linux 议论几句。
网上对 Windows 和 Linux 的讨论不少,从这些讨论中我发现有一些人是明确地属于 Linux 阵营的,所谓属于 Linux 阵营,我指的是他们对 Linux 的支持已经近乎本能,就象宗教信徒笃信上帝一样。另一方面,虽然也有人替 Windows 说话,但似乎没有一个群体可以归类为 Windows 阵营,也就是说 Windows 的使用者虽众,但支持烈度却不如 Linux。这也不奇怪,Linux 的发展本身就是热忱的 Linux 支持者们共同努力的结果,所谓“自家的孩子自家爱”。更何况 Linux 是免费的而 Windows 不仅价格昂贵,而且近来还发展到了让用户花了钱也买不到所有权的地步。连所有权都没了,主人翁态度自然也就免谈了。尽管缺乏铁杆的 Windows 支持者说明 Microsoft 在夺得市场的同时没有能够同步地赢得人心,但是从学术的观点讲,却应该看到在这种情况下替 Windows 说话的人 (Microsoft 雇员除外) 大都是从纯技术角度出发的,他们的观点往往要比带有感情因素的 Linux 支持者更冷静和公正。
无论有多少人厌恶 Microsoft,任何客观的评论者都必须承认一个基本的事实,那就是纯以技术而言 Windows 是目前操作系统家族中具有顶尖水平的成员。Microsoft 能够在软件界翻云覆雨一手遮天凭借的就是 Windows 操作系统的实力。市场是无情的,能够装在自己口袋里的银子谁也不会愿意放到 Microsoft 的保险柜里去。Windows 十余年来在市场上的成功,尤其是在四面树敌,人心思变的今天依然雄霸天下而不倒正是其实力的明证。
下面本文就来对 Windows 和 Linux 的若干主要方面进行一些评述和比较。
安全性能
安全性能是 Windows 常常遭受 Linux 支持者批评嘲笑之处。除了层出不穷的计算机病毒外,号称 Windows 95 以来最重要的版本的 Windows XP 问世不过数月就屡屡发现安全漏洞,而且导致联邦调查局向用户发布警告,这无疑加深了 Windows 不如 Linux 安全的看法。不过客观的讲,在以下两方面 Windows 有些冤情可诉:
Windows 的每一个漏洞的公开都会引起公众和媒体的广泛注意,这种树大招风的现象大大增加了 Windows 技术漏洞的可见性 (Visibility)。而且 Linux 作为公开源代码的系统,它的漏洞的发现和修补往往被有意无意地视为是系统开发的一部分,好比是 Microsoft 在开发 Windows 期间由内部程序员发现并修补漏洞。由于在很多人眼里 Linux 永远处于开发状态中,而 Windows 有明确的推出日期 (不然没法赚钱),因此在这一点上 Windows 处于非常不利的位置。
人们在比较 Windows 和 Linux 的技术漏洞时常常实际上是在对 Windows 和 Linux 内核 (Kernel) 作比较,这是不公平的。 Windows 除内核外还包括用户界面 (UI) 以及大量的应用软件,大多数 Windows 技术漏洞其实并不是 Windows 内核的漏洞。以安全漏洞而言,大多数是属于 IIS 和 IE 的,对应于 Linux 系统中的 Apache 和 Netscape 或 Konqueror 等。较为合理的做法应当是将 Windows 和 Linux Distribution 或者 Linux Distribution 中与 Windows 功能平行的部分进行比较。
尽管有以上这些辩护,尽管 Microsoft 抱怨说人们对攻击 Windows 远比对攻击 Linux 感兴趣 (因为更容易成名) 才使得 Windows 频频亮起安全红灯,但我认为现阶段 Linux 在安全性能上确实要优于 Windows。起码以病毒数量和危害性而言,Windows 用户所担当的风险就要大得多。只是 Windows 的安全性也不象有些文章渲染的那样糟糕。
说到了安全性,顺便提一下对于除美国以外的其他国家来说,由于 Windows 的技术完全被 Microsoft 所垄断,因此使用 Linux 还具有国家安全上的优势。这也是近期中国,法国,韩国等国政府在采购操作系统时均作出了有利于 Linux 的决定的原因之一。
稳定性
稳定性也是 Windows 常常遭批评的地方,这里必须首先要把 Windows 的 9x 系列 (包括 95/98/Me) 和 NT 系列 (包括 NT/2000/XP) 区分开来。两者在稳定性上有数量级之别。 Windows 稳定性差的恶名主要是由 9x 系列而来,自 Windows XP 开始 Microsoft 已经终止了这一系列的开发。其次需要分清的是应用软件的稳定性与操作系统的稳定性。如果一个软件的崩溃不影响操作系统和其它软件的运行,那么这笔帐通常就不应该记在操作系统的稳定性上。如果一个软件的崩溃造成整个操作系统的崩溃 (即通常所说的“死机”),那操作系统的稳定性就要受到质疑。
至于最新的 Windows XP 与 Linux 究竟谁更稳定,说实在目前还缺乏足够的数据和可比性,因为两者所运行的软件很不相同。网上虽有一些测试结果,不过这些测试的客观性往往是值得怀疑的,这个有时间我将另文叙述。一般说来,由于 Windows 上运行的软件通常比较复杂 (比如游戏,大型商业软件等),从而有较大的几率暴露操作系统的缺陷。从这点上讲,对 Windows XP 和 Linux 的表观稳定性进行比较并不足以说明两者在运行同等复杂的软件时谁更稳定。另一方面和系统安全性的情行相似,人们说到 Linux 的稳定性时常常只是指内核的稳定性,而 Windows 的稳定性却涵盖包括用户界面在内的许多别的部分。出现这样的状况也情有可原,因为 Windows 和它的用户界面是无法分开的,用户界面死了,对用户来说就相当于操作系统死了,而 Linux 则不同,用户界面死了常常还可以用热键退出,并重新启动用户界面。这些差别的存在使得稳定性对 Windows 来说是一个更为困难的目标。
软件支持
对软件,尤其是大型商业软件及多媒体软件 (包括游戏) 的支持一直是 Windows 的强项,无论是 MacOS 还是 Linux 在近期内都很难憾动 Windows 在这一领域的霸主地位。 Windows 庞大的应用软件支持是大多数用户即使心怀不满,也不得不继续使用 Windows 的一个重要原因。 Linux 所拥有的软件虽然为数也不少,而且有些软件 (比如 GIMP, StarOffice 等) 的开发是以 Windows 下相应的商业软件为竞争对象的,但是在功能上这些软件要真正达到可以替代 Windows 软件的程度还有相当一段路要走。免费和公开源代码软件是 Linux 的灵魂,也是很多人喜爱 Linux 的原因,但是缺乏足够的高质量商业软件的支持已经成为 Linux 与 Windows 竞争桌面操作系统市场时的重大障碍。在这方面 Linux 面临一个两难局面:一个操作系统要吸引商业软件开发者就得要有足够多的用户 (尤其是公司用户)。原因很简单,有用户才有利润。但另一方面,一个操作系统要想吸引足够多的用户 (尤其是公司用户),就得要有足够多高质量的软件 (包括商业软件)。这是一个典型的先有鸡还是先有蛋的问题。从目前的形势发展来看,打破局面的最可能途径是软件公司愿意做前瞻性的开发,从而产生一个良性的推动。
这里需要做一点补充说明:对于相对小型的软件的支持 Linux 并不逊色,一个完整安装的 Linux Distribution 不仅比 Windows 带有品种远为齐全的软件,而且各常用类型的软件,诸如 email,FTP,IRC,浏览器等均有四五种以上可供选择 (有时反而让初用者手足无措)。
硬件支持
五年前 Linux 的安装对于新手来说还是一件望而生畏的事,这其中很大一个原因就是 Linux 对硬件支持的欠缺,三年前我在笔记本电脑上安装 Redhat 6.0 还被迫到网上自行搜寻 config 文件。但近几年来 Linux 在这方面取得了长足的进展,今天,各主要 Distribution 对硬件的支持度正在迅速接近甚至超过 Windows 的水平。尽管硬件生产商对 Windows 驱动文件 (driver) 的提供仍比对 Linux 的要普遍,但高手如云的 Linux 群体已经做到了能几乎同步地提供所有最新硬件驱动文件的程度。另一方面, Windows XP 在硬件支持的普遍性上却出现了较大的倒退 (Microsoft 或许把这叫做更新)。此消彼长,Linux 在硬件支持上的欠缺已经成为历史。
虽然没有明说,但上面谈论的硬件都是针对 x86 机器的,脱离了这个框架,Linux 在硬件的支持上的广泛程度是包括 Windows 在内的任何其它操作系统都无法比拟的。
说到硬件支持,还有一个需要考虑的方面就是系统配置。每一代的 Windows 都对系统配置提出了新的要求,Windows XP 苛刻的系统配置要求更是使得几乎所有两三年以上机龄的机器都必须经过相当程度的硬件改良才能安装。而 Linux 虽然也同样在逐步提高对硬件配置的要求,但由于其优越的模块结构,使得用户有极大的自由度根据自己机器的配置调整自己所需安装的模块,从而突破对硬件配置的要求。
规范性
这里所说的操作系统的规范性有两层含义,一层含义是指操作系统对软件界的各项技术规范的遵循程度。在这方面 Linux 基本上遵循了所有适用的规范,这和 Linux 的开发模式不无关系。除内核外 Linux 没有一个中心仲裁者,因此开发人员大都以软件界已有的技术规范为准则进行系统开发。 Windows 在这方面的名声则毁誉参半,一方面 Microsoft 本身是软件界许多规范的制定和倡导者,但另一方面,Microsoft 又常常按自己的喜好“修改”规范。由于 Windows 在桌面操作系统领域拥有压倒多数的用户群体,软件界在相当程度上被迫适应 Windows 的要求,因而使得 Windows 的许多非规范的东西成为事实上的规范。
规范性的另一层含义是指操作系统本身的规范性,一个简单的衡量标准就是该操作系统的两个用户之间有多少共同语言。由于 Windows 是由单一公司开发的,因此在这方面不是由松散联系的开发者为主力的 Linux 可以比拟的。以用户界面而论,Windows 自 Windows 95 以来保持了相当的稳定性,用过其中任何一个版本的用户基本上可以不用额外学习就直接使用另一个版本的 Windows 界面。而 Linux 的用户界面不下十种之多,最流行的也有 KDE 和 Gnome 两种,明显缺乏规范性。Linux 在自身规范性上的欠缺还表现在各主要的 Distribution 使用不同的目录结构,用不同的格式传播软件,用不同的方式安装软件,等等。凡此种种不仅给新手带来极大的困惑,就是对有经验的用户甚至系统开发人员都是极大的不便。
所幸的是,Linux 的不规范性已经引起了越来越多人的重视,一个如同 W3C (W3C 是制定互联网规范的组织) 那样的组织 The Free Standards Group 已经成立,它的使命就是制定 Linux 和其它开放源代码系统的规范。随着这些规范的逐步推广,Linux 将会缩小在自身规范性方面与 Windows 的差距。
这里也需要补充一点:Linux 在用户界面方面的不规范性有时候也不失为一个优点。常常听人抱怨说自己花大价钱更新机器的努力很大一部分被操作系统本身所消耗掉了,这其中一个消耗资源的大户就是用户界面。 Linux 用户在这种情况下就可以使用消耗系统资源较少的用户界面。
总体上讲,在对外部规范的遵循性上,Linux 要优于 Windows,而在自身的规范性上, Windows 要显著优于 Linux,而且在近期内这种优势不会丧失。
源代码
Windows 的源代码是保密的,而 Linux 的源代码是开放的。从字面上讲这当然是意味着原则上任何人都可以改进 Linux。但是需要指出的是,原则上可以做的事情并非实际上就一定能够或者应当做。 Linux 源代码的高度的开放性主要是针对系统开发人员的,源代码的开放性使得 Linux 系统中的缺陷能够很快地被来自世界各地的高手所发现和弥补,这是十余年来 Linux 发展的关键。但对于普通用户来说,修改自己赖以工作的 Linux 机器的源代码却是非常不明智的行为。Linux 内核多年来经过无数高手的锤炼,一个普通用户能够改进它的几率是微乎其微的 (破坏它的可能性倒是很大的)。因此在肯定源代码开放性对操作系统本身乃至整个软件业发展的深远意义的同时也不应该夸大它对普通用户的直接帮助,源代码的开放性并不增加一个普通用户对系统的掌控程度。
Linux 源代码的开发性使得各大学的操作系统课程和教材几乎都是以 Linux 或其他类似的系统为蓝本,因此使得受过正规计算机专业教育的几乎所有学生以及几乎所有对操作系统感兴趣的人都对 Linux 有相当程度的了解和喜爱。这对于 Linux 未来的发展有着十分正面的影响。
应用程序界面 (API)
一个操作系统的 API (Application Program Interface) 是操作系统提供的与应用软件的接口,对于软件开发人员来说十分重要。一般认为 Linux 的 API 要比 Windows 优美。不过由于 Windows 下有诸如 Visual Studio 这样的直接支持 Windows API 的大型工具软件,从而大大降低了 Windows 编程对于拥有并熟悉这些工具的人员的困难程度。
系统可调节性
Linux 具有比 Windows 大得多的可调节性。许多早期的 Windows 骨灰级用户在系统可调节性上有一种怀旧感,觉得在 DOS 和早期 Windows 时代他们曾经是机器的主人,随着 Windows 的演化,后来他们只拥有 Windows,不再直接拥有机器了 (现在他们连 Windows 也不拥有了)。而 Linux 却始终如一地保持着系统的高度可调节性。
Linux 的源代码的开放性也可以被视为终极意义上的可调节性,但是,前面说了,对于普通用户来说,这种可调节性实际上是几乎不存在的。
另一方面,在各自可调节的范围内,Windows 要比 Linux 易于调节 (这在很大程度上得益于 Windows 界面的规范性)。在早期,Linux 的调节往往需要用户直接修改参数文件,即使对于有一定经验的用户,这也是一件令人头疼的事。近年来 Linux 在这方面做了很大的改进,开发了许多工具软件,不过和 Linux 下的许多其它类别的软件类似,Linux 的工具软件也呈现一种发散性,即有不止一种软件可以做同一件事。这使得用户在转换机器和 Linux Distribution 时往往因为不同环境下工具软件的不同而需要学习新的工具或重新安装旧的工具。
使用方便性
使用的方便性是桌面操作系统竞争中最重要的决胜因素之一。这里所说的使用的方便性是针对普通用户的,这一点常常被 Linux 的支持者所忽视。现阶段在桌面操作系统的用户群体中,Linux 用户的平均计算机水平要大大高于 Windows 用户,这种差异使得 Linux 群体常常低估了一个缺乏计算机系统知识的普通用户适应 Linux 的难度。“Windows 是傻瓜也能用的”非但不应该被用来嘲笑 Windows,反而是 Linux 在竞争桌面操作系统市场中必须借鉴的经验。计算机二十年来的发展早已超越了专业的界限而成为几乎所有现代人都可能会用到的工具。使用方便性是任何工具所应该追求的品质之一,计算机及其操作系统当然也不例外。试问这世上聪明人的比例能有多少?偏偏把聪明用在计算机上的聪明人比例又能有多少?今天 Linux 用户群体的平均计算机水平高的一个不可忽视的原因是因为只有水平较高的人才能得心应手地使用 Linux,而这一事实,很不幸的却是 Linux 与 Windows 竞争时的一大弱点。
版权限制和费用
这方面没什么可说的,法庭上的胜负不论,无论对个人还是公司用户来说 Windows 利用其垄断地位迫使用户接受日益苛刻的版权要求已是不争的事实,可以盖棺定论。使用 Windows XP 的用户相信对此尤有切身体会。每张 Windows XP 光盘只能安装在一台电脑上,不仅如此,重装操作系统或更换一定数量的硬件都会导致 Windows 反盗版机制的干预,使得用户必须向 Microsoft 索要新的序列号 (可能还免不了要解释一下自己何以又要给 Microsoft “添麻烦”)。花钱买了的软件竟然还要间或地向 Microsoft 请示汇报,用户心中的不平衡是不言而喻的。至于价格,Windows XP Home 和 Pro 的价格分别为 $199 和 $299。相比较之下 Linux 不仅可以免费下载,而且可以安装在任意数目的机器上。对用户具有的亲和力是不言而喻。
可惜的是,对于个人用户来说 Linux 在价格上的优势在很大程度上被市场上大部分品牌机厂家不提供预装 Linux 的机器 (服务器除外) 这一事实所抵销了。由于品牌机厂家在市场上占有很大的份额,因此大部分用户不论用不用 Windows,都一样付了 Windows 的钱。既然钱也付了,操作系统也有了,绝大多数人就不会再去费心做调整。顺便说一下,这也是目前 Linux 用户群体的计算机水平普遍较高的另一个重要原因,因为对计算机或操作系统感兴趣的人有较大的可能性在并不缺乏操作系统的情况下还去安装一个新的操作系统。
不过对公司用户来说,由于 Linux 不对用户数量设置限制,与 Windows 的 Volumn Licence 相比其费用方面的优势是十分明显的。
说到费用,需要提到另外一个方面就是许多在 Windows 下要付费的软件在 Linux 下有功能相近,相同或更好的免费软件。虽然前面说到 Windows 在对软件的总体支持上优于 Linux,但是 Windows 占优势的那部分软件对大多数普通个人用户来说并不是不可缺少的 (也许游戏除外) 。不过 Linux 在这方面的优势也在很大程度上受到一个因素的削弱:那就是许多 Linux 下优秀的免费软件也有 Windows 版本。
技术支持
这里所说的技术支持是一个比较含糊的概念,既包括由公司提供的技术服务,也包括用户可以自行找寻的信息。在公司提供的技术服务方面,尽管不时可以听到有人抱怨和 Microsoft 技术服务人员打交道时的不愉快经历,但这显然是和 Windows 的用户数量有关的。总体上讲 Microsoft 对用户 (尤其是公司用户) 提供的技术服务要优于各 Linux 公司 (当然这种服务不是免费的)。在用户可以自行找寻的信息方面, Microsoft 有一个规模庞大的 Knowledge Base,Linux 则有 Linux Documentation Project,而且 Linux 在互联网上的 BBS,Forum 和 Newsgroup 等网站中常常可以看到顶尖的 Linux 开发者的身影,与 Windows 不同的是,Linux 的开放性使得许多 Linux 高手对 Linux 的发展具有一种使命感,他们光顾这些网站就是为了了解用户的反映,发现 bug 并为 Linux 的发展积累经验。我这么说倒不是暗示 Microsoft 的人就不会以同样目的光顾 Windows 网站,不过就我个人的体会来说这方面 Linux 群体对用户起到的帮助作用要好于 Windows 群体的相应帮助。
需要说明的是,对公司用户来说,这后一种帮助在公司决策层面上起不到太大的作用。有一句半开玩笑的话很通俗地概括了许多公司 (尤其是大公司) 在选用软件 (包括操作系统) 时的态度,那就是“只选择自己可以将之告上法庭的供应商提供的软件”。Linux 群体以及许多 Linux 公司无法在足够长的服务期限内提供规范的,有法律保障的服务是 Linux 在竞争桌面操作系统的半壁江山 - 公司用户 - 时的一大障碍。
结语
写到这里应该收笔了。通常这类文章都要预测一下 Windows 和 Linux 在桌面操作系统市场上的前景。前不久,Redhat Linux 公司的总裁发表令人意外的评论说 Linux 无法在桌面操作系统市场上击败 Windows。当然,Linux 的热心支持者们并不认同这种看法。两方面的意见在网上争论得非常激烈。讲到预测,插上几句离题的话。小时候听说有外国专家预测在中国本土不会找到很多石油,也有外国专家预测唐山在多少年内将难以重建。这些预测都破产了。那时我就想何以外国专家都如此愚蠢,以至于我们做成的每件事情都可以拉上一两个外国专家做反衬?后来看的预测多了渐渐明白了道理:不是外国专家太愚蠢,而是有太多的“专家”了,什么可能性都让专家“预测”到了。我不是专家,不想也不敢贸然在这里作什么预测。Linux 在桌面操作系统市场的前景取决于许多因素:比如各主要商业软件公司会在何时,以何种方式参与 Linux 软件的开发?比如有多少计算机厂家会提供预装 Linux 的机器?比如全球性的经济低迷会在多大程度上加速公司和个人为节省开支而使用 Linux,比如 Microsoft 是否会在法庭上败诉?如果败诉受到的惩罚方案如何?等等。除此之外,还需要看到用户群体的行为习惯具有极大的惯性。无论 Linux 如何改进,仍然有很多人说 Linux 不方便。为什么?除了 Linux 本身的部分原因外还因为 Windows 巨大的用户群体已经形成,Windows 的一切已经成为了事实上的标准,任何对 Windows 的偏离都必然要改变用户群体的习惯,这是所有 Windows 的竞争者不得不背负的沉重包袱。
细致而尽可能准确地分析所有这些因素不是一篇短短 (尽管现在已经不太短了) 的文章所能胜任的。幸好计算机技术这二十年的发展始终没有让人们久等过,看到这场操作系统大战的阶段性结果相信也不会对我们的耐心形成太大的挑战。
本文的一个假设的情况是 Linux 和 Windows 争夺桌面操作系统用户,离开了这个前提,离开了这个评论的角度,关于两个操作系统的比较当然就会有不同的结果。至于 Linux 是否应该和 Windows 来争夺污浊的桌面操作系统市场,这是一个不同的话题。有朋友提到 Linux 过分地向桌面发展会有损其稳定性。Linux kernel 2.4 在推出后很长一段时间无法达到令人满意的稳定性使得有人一度在 kernel-mailing-list 上发出“Linus does not scale” 这样的感慨和怀疑。不过我认为,kernel 2.4 的问题不是因为 Linux 向桌面发展造成的, kernel 2.4 的发展最主要的受益者是 server 而不是桌面用户。我个人的想法是 Linux 由于其模块结构,是有希望在 reliable, stable, scalable 的内核和一个能被普通用户接受的 GUI 两方面同时取得成功的 (至少在技术上是可以的,在商业社会模式下是否事实上可以当然谁也没法保证,许多 GPL 软件已经开始偏离 GPL 了,这在多大程度上代表一种趋势还有待观察)。
网上对 Windows 和 Linux 的讨论不少,从这些讨论中我发现有一些人是明确地属于 Linux 阵营的,所谓属于 Linux 阵营,我指的是他们对 Linux 的支持已经近乎本能,就象宗教信徒笃信上帝一样。另一方面,虽然也有人替 Windows 说话,但似乎没有一个群体可以归类为 Windows 阵营,也就是说 Windows 的使用者虽众,但支持烈度却不如 Linux。这也不奇怪,Linux 的发展本身就是热忱的 Linux 支持者们共同努力的结果,所谓“自家的孩子自家爱”。更何况 Linux 是免费的而 Windows 不仅价格昂贵,而且近来还发展到了让用户花了钱也买不到所有权的地步。连所有权都没了,主人翁态度自然也就免谈了。尽管缺乏铁杆的 Windows 支持者说明 Microsoft 在夺得市场的同时没有能够同步地赢得人心,但是从学术的观点讲,却应该看到在这种情况下替 Windows 说话的人 (Microsoft 雇员除外) 大都是从纯技术角度出发的,他们的观点往往要比带有感情因素的 Linux 支持者更冷静和公正。
无论有多少人厌恶 Microsoft,任何客观的评论者都必须承认一个基本的事实,那就是纯以技术而言 Windows 是目前操作系统家族中具有顶尖水平的成员。Microsoft 能够在软件界翻云覆雨一手遮天凭借的就是 Windows 操作系统的实力。市场是无情的,能够装在自己口袋里的银子谁也不会愿意放到 Microsoft 的保险柜里去。Windows 十余年来在市场上的成功,尤其是在四面树敌,人心思变的今天依然雄霸天下而不倒正是其实力的明证。
下面本文就来对 Windows 和 Linux 的若干主要方面进行一些评述和比较。
安全性能
安全性能是 Windows 常常遭受 Linux 支持者批评嘲笑之处。除了层出不穷的计算机病毒外,号称 Windows 95 以来最重要的版本的 Windows XP 问世不过数月就屡屡发现安全漏洞,而且导致联邦调查局向用户发布警告,这无疑加深了 Windows 不如 Linux 安全的看法。不过客观的讲,在以下两方面 Windows 有些冤情可诉:
Windows 的每一个漏洞的公开都会引起公众和媒体的广泛注意,这种树大招风的现象大大增加了 Windows 技术漏洞的可见性 (Visibility)。而且 Linux 作为公开源代码的系统,它的漏洞的发现和修补往往被有意无意地视为是系统开发的一部分,好比是 Microsoft 在开发 Windows 期间由内部程序员发现并修补漏洞。由于在很多人眼里 Linux 永远处于开发状态中,而 Windows 有明确的推出日期 (不然没法赚钱),因此在这一点上 Windows 处于非常不利的位置。
人们在比较 Windows 和 Linux 的技术漏洞时常常实际上是在对 Windows 和 Linux 内核 (Kernel) 作比较,这是不公平的。 Windows 除内核外还包括用户界面 (UI) 以及大量的应用软件,大多数 Windows 技术漏洞其实并不是 Windows 内核的漏洞。以安全漏洞而言,大多数是属于 IIS 和 IE 的,对应于 Linux 系统中的 Apache 和 Netscape 或 Konqueror 等。较为合理的做法应当是将 Windows 和 Linux Distribution 或者 Linux Distribution 中与 Windows 功能平行的部分进行比较。
尽管有以上这些辩护,尽管 Microsoft 抱怨说人们对攻击 Windows 远比对攻击 Linux 感兴趣 (因为更容易成名) 才使得 Windows 频频亮起安全红灯,但我认为现阶段 Linux 在安全性能上确实要优于 Windows。起码以病毒数量和危害性而言,Windows 用户所担当的风险就要大得多。只是 Windows 的安全性也不象有些文章渲染的那样糟糕。
说到了安全性,顺便提一下对于除美国以外的其他国家来说,由于 Windows 的技术完全被 Microsoft 所垄断,因此使用 Linux 还具有国家安全上的优势。这也是近期中国,法国,韩国等国政府在采购操作系统时均作出了有利于 Linux 的决定的原因之一。
稳定性
稳定性也是 Windows 常常遭批评的地方,这里必须首先要把 Windows 的 9x 系列 (包括 95/98/Me) 和 NT 系列 (包括 NT/2000/XP) 区分开来。两者在稳定性上有数量级之别。 Windows 稳定性差的恶名主要是由 9x 系列而来,自 Windows XP 开始 Microsoft 已经终止了这一系列的开发。其次需要分清的是应用软件的稳定性与操作系统的稳定性。如果一个软件的崩溃不影响操作系统和其它软件的运行,那么这笔帐通常就不应该记在操作系统的稳定性上。如果一个软件的崩溃造成整个操作系统的崩溃 (即通常所说的“死机”),那操作系统的稳定性就要受到质疑。
至于最新的 Windows XP 与 Linux 究竟谁更稳定,说实在目前还缺乏足够的数据和可比性,因为两者所运行的软件很不相同。网上虽有一些测试结果,不过这些测试的客观性往往是值得怀疑的,这个有时间我将另文叙述。一般说来,由于 Windows 上运行的软件通常比较复杂 (比如游戏,大型商业软件等),从而有较大的几率暴露操作系统的缺陷。从这点上讲,对 Windows XP 和 Linux 的表观稳定性进行比较并不足以说明两者在运行同等复杂的软件时谁更稳定。另一方面和系统安全性的情行相似,人们说到 Linux 的稳定性时常常只是指内核的稳定性,而 Windows 的稳定性却涵盖包括用户界面在内的许多别的部分。出现这样的状况也情有可原,因为 Windows 和它的用户界面是无法分开的,用户界面死了,对用户来说就相当于操作系统死了,而 Linux 则不同,用户界面死了常常还可以用热键退出,并重新启动用户界面。这些差别的存在使得稳定性对 Windows 来说是一个更为困难的目标。
软件支持
对软件,尤其是大型商业软件及多媒体软件 (包括游戏) 的支持一直是 Windows 的强项,无论是 MacOS 还是 Linux 在近期内都很难憾动 Windows 在这一领域的霸主地位。 Windows 庞大的应用软件支持是大多数用户即使心怀不满,也不得不继续使用 Windows 的一个重要原因。 Linux 所拥有的软件虽然为数也不少,而且有些软件 (比如 GIMP, StarOffice 等) 的开发是以 Windows 下相应的商业软件为竞争对象的,但是在功能上这些软件要真正达到可以替代 Windows 软件的程度还有相当一段路要走。免费和公开源代码软件是 Linux 的灵魂,也是很多人喜爱 Linux 的原因,但是缺乏足够的高质量商业软件的支持已经成为 Linux 与 Windows 竞争桌面操作系统市场时的重大障碍。在这方面 Linux 面临一个两难局面:一个操作系统要吸引商业软件开发者就得要有足够多的用户 (尤其是公司用户)。原因很简单,有用户才有利润。但另一方面,一个操作系统要想吸引足够多的用户 (尤其是公司用户),就得要有足够多高质量的软件 (包括商业软件)。这是一个典型的先有鸡还是先有蛋的问题。从目前的形势发展来看,打破局面的最可能途径是软件公司愿意做前瞻性的开发,从而产生一个良性的推动。
这里需要做一点补充说明:对于相对小型的软件的支持 Linux 并不逊色,一个完整安装的 Linux Distribution 不仅比 Windows 带有品种远为齐全的软件,而且各常用类型的软件,诸如 email,FTP,IRC,浏览器等均有四五种以上可供选择 (有时反而让初用者手足无措)。
硬件支持
五年前 Linux 的安装对于新手来说还是一件望而生畏的事,这其中很大一个原因就是 Linux 对硬件支持的欠缺,三年前我在笔记本电脑上安装 Redhat 6.0 还被迫到网上自行搜寻 config 文件。但近几年来 Linux 在这方面取得了长足的进展,今天,各主要 Distribution 对硬件的支持度正在迅速接近甚至超过 Windows 的水平。尽管硬件生产商对 Windows 驱动文件 (driver) 的提供仍比对 Linux 的要普遍,但高手如云的 Linux 群体已经做到了能几乎同步地提供所有最新硬件驱动文件的程度。另一方面, Windows XP 在硬件支持的普遍性上却出现了较大的倒退 (Microsoft 或许把这叫做更新)。此消彼长,Linux 在硬件支持上的欠缺已经成为历史。
虽然没有明说,但上面谈论的硬件都是针对 x86 机器的,脱离了这个框架,Linux 在硬件的支持上的广泛程度是包括 Windows 在内的任何其它操作系统都无法比拟的。
说到硬件支持,还有一个需要考虑的方面就是系统配置。每一代的 Windows 都对系统配置提出了新的要求,Windows XP 苛刻的系统配置要求更是使得几乎所有两三年以上机龄的机器都必须经过相当程度的硬件改良才能安装。而 Linux 虽然也同样在逐步提高对硬件配置的要求,但由于其优越的模块结构,使得用户有极大的自由度根据自己机器的配置调整自己所需安装的模块,从而突破对硬件配置的要求。
规范性
这里所说的操作系统的规范性有两层含义,一层含义是指操作系统对软件界的各项技术规范的遵循程度。在这方面 Linux 基本上遵循了所有适用的规范,这和 Linux 的开发模式不无关系。除内核外 Linux 没有一个中心仲裁者,因此开发人员大都以软件界已有的技术规范为准则进行系统开发。 Windows 在这方面的名声则毁誉参半,一方面 Microsoft 本身是软件界许多规范的制定和倡导者,但另一方面,Microsoft 又常常按自己的喜好“修改”规范。由于 Windows 在桌面操作系统领域拥有压倒多数的用户群体,软件界在相当程度上被迫适应 Windows 的要求,因而使得 Windows 的许多非规范的东西成为事实上的规范。
规范性的另一层含义是指操作系统本身的规范性,一个简单的衡量标准就是该操作系统的两个用户之间有多少共同语言。由于 Windows 是由单一公司开发的,因此在这方面不是由松散联系的开发者为主力的 Linux 可以比拟的。以用户界面而论,Windows 自 Windows 95 以来保持了相当的稳定性,用过其中任何一个版本的用户基本上可以不用额外学习就直接使用另一个版本的 Windows 界面。而 Linux 的用户界面不下十种之多,最流行的也有 KDE 和 Gnome 两种,明显缺乏规范性。Linux 在自身规范性上的欠缺还表现在各主要的 Distribution 使用不同的目录结构,用不同的格式传播软件,用不同的方式安装软件,等等。凡此种种不仅给新手带来极大的困惑,就是对有经验的用户甚至系统开发人员都是极大的不便。
所幸的是,Linux 的不规范性已经引起了越来越多人的重视,一个如同 W3C (W3C 是制定互联网规范的组织) 那样的组织 The Free Standards Group 已经成立,它的使命就是制定 Linux 和其它开放源代码系统的规范。随着这些规范的逐步推广,Linux 将会缩小在自身规范性方面与 Windows 的差距。
这里也需要补充一点:Linux 在用户界面方面的不规范性有时候也不失为一个优点。常常听人抱怨说自己花大价钱更新机器的努力很大一部分被操作系统本身所消耗掉了,这其中一个消耗资源的大户就是用户界面。 Linux 用户在这种情况下就可以使用消耗系统资源较少的用户界面。
总体上讲,在对外部规范的遵循性上,Linux 要优于 Windows,而在自身的规范性上, Windows 要显著优于 Linux,而且在近期内这种优势不会丧失。
源代码
Windows 的源代码是保密的,而 Linux 的源代码是开放的。从字面上讲这当然是意味着原则上任何人都可以改进 Linux。但是需要指出的是,原则上可以做的事情并非实际上就一定能够或者应当做。 Linux 源代码的高度的开放性主要是针对系统开发人员的,源代码的开放性使得 Linux 系统中的缺陷能够很快地被来自世界各地的高手所发现和弥补,这是十余年来 Linux 发展的关键。但对于普通用户来说,修改自己赖以工作的 Linux 机器的源代码却是非常不明智的行为。Linux 内核多年来经过无数高手的锤炼,一个普通用户能够改进它的几率是微乎其微的 (破坏它的可能性倒是很大的)。因此在肯定源代码开放性对操作系统本身乃至整个软件业发展的深远意义的同时也不应该夸大它对普通用户的直接帮助,源代码的开放性并不增加一个普通用户对系统的掌控程度。
Linux 源代码的开发性使得各大学的操作系统课程和教材几乎都是以 Linux 或其他类似的系统为蓝本,因此使得受过正规计算机专业教育的几乎所有学生以及几乎所有对操作系统感兴趣的人都对 Linux 有相当程度的了解和喜爱。这对于 Linux 未来的发展有着十分正面的影响。
应用程序界面 (API)
一个操作系统的 API (Application Program Interface) 是操作系统提供的与应用软件的接口,对于软件开发人员来说十分重要。一般认为 Linux 的 API 要比 Windows 优美。不过由于 Windows 下有诸如 Visual Studio 这样的直接支持 Windows API 的大型工具软件,从而大大降低了 Windows 编程对于拥有并熟悉这些工具的人员的困难程度。
系统可调节性
Linux 具有比 Windows 大得多的可调节性。许多早期的 Windows 骨灰级用户在系统可调节性上有一种怀旧感,觉得在 DOS 和早期 Windows 时代他们曾经是机器的主人,随着 Windows 的演化,后来他们只拥有 Windows,不再直接拥有机器了 (现在他们连 Windows 也不拥有了)。而 Linux 却始终如一地保持着系统的高度可调节性。
Linux 的源代码的开放性也可以被视为终极意义上的可调节性,但是,前面说了,对于普通用户来说,这种可调节性实际上是几乎不存在的。
另一方面,在各自可调节的范围内,Windows 要比 Linux 易于调节 (这在很大程度上得益于 Windows 界面的规范性)。在早期,Linux 的调节往往需要用户直接修改参数文件,即使对于有一定经验的用户,这也是一件令人头疼的事。近年来 Linux 在这方面做了很大的改进,开发了许多工具软件,不过和 Linux 下的许多其它类别的软件类似,Linux 的工具软件也呈现一种发散性,即有不止一种软件可以做同一件事。这使得用户在转换机器和 Linux Distribution 时往往因为不同环境下工具软件的不同而需要学习新的工具或重新安装旧的工具。
使用方便性
使用的方便性是桌面操作系统竞争中最重要的决胜因素之一。这里所说的使用的方便性是针对普通用户的,这一点常常被 Linux 的支持者所忽视。现阶段在桌面操作系统的用户群体中,Linux 用户的平均计算机水平要大大高于 Windows 用户,这种差异使得 Linux 群体常常低估了一个缺乏计算机系统知识的普通用户适应 Linux 的难度。“Windows 是傻瓜也能用的”非但不应该被用来嘲笑 Windows,反而是 Linux 在竞争桌面操作系统市场中必须借鉴的经验。计算机二十年来的发展早已超越了专业的界限而成为几乎所有现代人都可能会用到的工具。使用方便性是任何工具所应该追求的品质之一,计算机及其操作系统当然也不例外。试问这世上聪明人的比例能有多少?偏偏把聪明用在计算机上的聪明人比例又能有多少?今天 Linux 用户群体的平均计算机水平高的一个不可忽视的原因是因为只有水平较高的人才能得心应手地使用 Linux,而这一事实,很不幸的却是 Linux 与 Windows 竞争时的一大弱点。
版权限制和费用
这方面没什么可说的,法庭上的胜负不论,无论对个人还是公司用户来说 Windows 利用其垄断地位迫使用户接受日益苛刻的版权要求已是不争的事实,可以盖棺定论。使用 Windows XP 的用户相信对此尤有切身体会。每张 Windows XP 光盘只能安装在一台电脑上,不仅如此,重装操作系统或更换一定数量的硬件都会导致 Windows 反盗版机制的干预,使得用户必须向 Microsoft 索要新的序列号 (可能还免不了要解释一下自己何以又要给 Microsoft “添麻烦”)。花钱买了的软件竟然还要间或地向 Microsoft 请示汇报,用户心中的不平衡是不言而喻的。至于价格,Windows XP Home 和 Pro 的价格分别为 $199 和 $299。相比较之下 Linux 不仅可以免费下载,而且可以安装在任意数目的机器上。对用户具有的亲和力是不言而喻。
可惜的是,对于个人用户来说 Linux 在价格上的优势在很大程度上被市场上大部分品牌机厂家不提供预装 Linux 的机器 (服务器除外) 这一事实所抵销了。由于品牌机厂家在市场上占有很大的份额,因此大部分用户不论用不用 Windows,都一样付了 Windows 的钱。既然钱也付了,操作系统也有了,绝大多数人就不会再去费心做调整。顺便说一下,这也是目前 Linux 用户群体的计算机水平普遍较高的另一个重要原因,因为对计算机或操作系统感兴趣的人有较大的可能性在并不缺乏操作系统的情况下还去安装一个新的操作系统。
不过对公司用户来说,由于 Linux 不对用户数量设置限制,与 Windows 的 Volumn Licence 相比其费用方面的优势是十分明显的。
说到费用,需要提到另外一个方面就是许多在 Windows 下要付费的软件在 Linux 下有功能相近,相同或更好的免费软件。虽然前面说到 Windows 在对软件的总体支持上优于 Linux,但是 Windows 占优势的那部分软件对大多数普通个人用户来说并不是不可缺少的 (也许游戏除外) 。不过 Linux 在这方面的优势也在很大程度上受到一个因素的削弱:那就是许多 Linux 下优秀的免费软件也有 Windows 版本。
技术支持
这里所说的技术支持是一个比较含糊的概念,既包括由公司提供的技术服务,也包括用户可以自行找寻的信息。在公司提供的技术服务方面,尽管不时可以听到有人抱怨和 Microsoft 技术服务人员打交道时的不愉快经历,但这显然是和 Windows 的用户数量有关的。总体上讲 Microsoft 对用户 (尤其是公司用户) 提供的技术服务要优于各 Linux 公司 (当然这种服务不是免费的)。在用户可以自行找寻的信息方面, Microsoft 有一个规模庞大的 Knowledge Base,Linux 则有 Linux Documentation Project,而且 Linux 在互联网上的 BBS,Forum 和 Newsgroup 等网站中常常可以看到顶尖的 Linux 开发者的身影,与 Windows 不同的是,Linux 的开放性使得许多 Linux 高手对 Linux 的发展具有一种使命感,他们光顾这些网站就是为了了解用户的反映,发现 bug 并为 Linux 的发展积累经验。我这么说倒不是暗示 Microsoft 的人就不会以同样目的光顾 Windows 网站,不过就我个人的体会来说这方面 Linux 群体对用户起到的帮助作用要好于 Windows 群体的相应帮助。
需要说明的是,对公司用户来说,这后一种帮助在公司决策层面上起不到太大的作用。有一句半开玩笑的话很通俗地概括了许多公司 (尤其是大公司) 在选用软件 (包括操作系统) 时的态度,那就是“只选择自己可以将之告上法庭的供应商提供的软件”。Linux 群体以及许多 Linux 公司无法在足够长的服务期限内提供规范的,有法律保障的服务是 Linux 在竞争桌面操作系统的半壁江山 - 公司用户 - 时的一大障碍。
结语
写到这里应该收笔了。通常这类文章都要预测一下 Windows 和 Linux 在桌面操作系统市场上的前景。前不久,Redhat Linux 公司的总裁发表令人意外的评论说 Linux 无法在桌面操作系统市场上击败 Windows。当然,Linux 的热心支持者们并不认同这种看法。两方面的意见在网上争论得非常激烈。讲到预测,插上几句离题的话。小时候听说有外国专家预测在中国本土不会找到很多石油,也有外国专家预测唐山在多少年内将难以重建。这些预测都破产了。那时我就想何以外国专家都如此愚蠢,以至于我们做成的每件事情都可以拉上一两个外国专家做反衬?后来看的预测多了渐渐明白了道理:不是外国专家太愚蠢,而是有太多的“专家”了,什么可能性都让专家“预测”到了。我不是专家,不想也不敢贸然在这里作什么预测。Linux 在桌面操作系统市场的前景取决于许多因素:比如各主要商业软件公司会在何时,以何种方式参与 Linux 软件的开发?比如有多少计算机厂家会提供预装 Linux 的机器?比如全球性的经济低迷会在多大程度上加速公司和个人为节省开支而使用 Linux,比如 Microsoft 是否会在法庭上败诉?如果败诉受到的惩罚方案如何?等等。除此之外,还需要看到用户群体的行为习惯具有极大的惯性。无论 Linux 如何改进,仍然有很多人说 Linux 不方便。为什么?除了 Linux 本身的部分原因外还因为 Windows 巨大的用户群体已经形成,Windows 的一切已经成为了事实上的标准,任何对 Windows 的偏离都必然要改变用户群体的习惯,这是所有 Windows 的竞争者不得不背负的沉重包袱。
细致而尽可能准确地分析所有这些因素不是一篇短短 (尽管现在已经不太短了) 的文章所能胜任的。幸好计算机技术这二十年的发展始终没有让人们久等过,看到这场操作系统大战的阶段性结果相信也不会对我们的耐心形成太大的挑战。
本文的一个假设的情况是 Linux 和 Windows 争夺桌面操作系统用户,离开了这个前提,离开了这个评论的角度,关于两个操作系统的比较当然就会有不同的结果。至于 Linux 是否应该和 Windows 来争夺污浊的桌面操作系统市场,这是一个不同的话题。有朋友提到 Linux 过分地向桌面发展会有损其稳定性。Linux kernel 2.4 在推出后很长一段时间无法达到令人满意的稳定性使得有人一度在 kernel-mailing-list 上发出“Linus does not scale” 这样的感慨和怀疑。不过我认为,kernel 2.4 的问题不是因为 Linux 向桌面发展造成的, kernel 2.4 的发展最主要的受益者是 server 而不是桌面用户。我个人的想法是 Linux 由于其模块结构,是有希望在 reliable, stable, scalable 的内核和一个能被普通用户接受的 GUI 两方面同时取得成功的 (至少在技术上是可以的,在商业社会模式下是否事实上可以当然谁也没法保证,许多 GPL 软件已经开始偏离 GPL 了,这在多大程度上代表一种趋势还有待观察)。
- 上一篇: 菜鸟编译内核(KERNEL2.6.0)
- 下一篇: 经典:探索SCO-UNIX的帮助命令MAN
-= 资 源 教 程 =-
文 章 搜 索