摘自:http://www.linuxsir.org/main/?q=node/131
我很清楚这样的标题可能会引起全面的争论,甚至是无休止的口水战。不过,既然 Linux和 Windows 之争早已经是无休止的争论了,我再制造点纷扰也是无关大局的了。为了 避免有朋友对于我个人的误判,我先澄清一下自己写此文基于什么。
本人应该属于国内很早接触计算机设备的人,大概在 7 岁的时候在少年宫第一次用计算机玩游戏,1985 年开始在我父亲的办公室用 PC/XT 玩太空大战。记得当时我连键盘都 不会用,就用一张纸记下来所有操作的步骤(包括从父亲的抽屉中找到有游戏的 300KB 软盘)。
90 年开始编程,主要是用 basic;93 年开始学习我父亲从美国给我买回来的 Motorola M680x0 系列汇编语言,并且开始学习 C。96 年有了第一台自己的 486;98 年开始学 习 Perl;2000 年开始学习 Java,03年开始学习 Python。
操作系统方面,原来一直使用专有系统和 IBM PCDOS,后来用 MS DOS;MS 从最开始到的操作系统我用过 DOS3.x、DOS4.x、DOS6.x、Win3.x、WinNT 3.x、Win95/98/ME、 WinNT4/2000/2003,由于爱好和工作的原因,每个操作系统我都用过相当一段时间(包括 SCO UNIX 的前身),应该说对 MS 的操作系统有了很深的了解。
我从 96 年开始接触使用 Linux、RH 和 Turbo 是我的启蒙老师。后来一直用 Slackware 和 Mandrake,直到现在的 Gentoo。我使用过的 Unix Like 操作系统(发行版)包括: RedHat Linux、RedHat Linux AS、SuSE、SuSE Enterprise、Slackware、Debian/Knoppix/Ubuntu、Mandrake/Mandriva(Mandrake 9.2废了我一个显示器)、LFS、FreeBSD、 Arch Linux、NetBSD、HP-UX、Solaris还有Hiweed^_^。用的最多的就是RH 7.3、Slackware和Gentoo了。近两年更是 Gentoo Linux 坚定不移的用户。
计算机技术是我最大的爱好,但是只是爱好而已。我从来没有想过成为顶尖黑客,所以我从来没有做过程序员的工作,虽然我写过很多程序(包括病毒)。我的工作范畴是业务 分析(和通常人理解的系统分析有所不同)、产品策划和技术管理。
我之前作为项目经理做过很多软件项目和系统集成项目,从指纹门禁到 ERP、到外埠电子政务都做过。计算机,严格的说软件,对我来说就是工具,驾轻就熟的一种工具。工作 时,我笔记本上用 WinXP 跑 Offic 和 ROSE,PC 上跑 Gentoo Linux,一直都是并用。
前面废话太多了,进入正题吧。我从三个方面对这两种操作系统来做对比:人机界面、性能、文化和发展。首先要说明的是,Linux 严格说起来不是操作系统,Linux 各种发行 版才是。
1,人机界面
人机界面(UI)是否优秀的界定比较模糊。对于每个人的个体来说,UI 是否够好完全取决于个人认识,而个人的认识基于经验。如果某个人使用过其他的 UI,那么他 判断一个新的 UI 是否友好完全是基于自己以前使用 UI 的经验。
我们评价一个 UI 是否好用,主要是从新手上手难度与熟练后对系统掌控的难度来评价。
我们知道 UI 主要有 CUI 和 GUI 的分别,也就是指令界面和图形界面。Linux 的 CUI 继承自拥有 40 多年优秀传统的 UNIX。40 年长盛不衰本身就证明了问题。对于操作系 统来说 CUI 是一切操作的最直观表现。经过多年的发展 CUI 已经在逻辑处理、正则表达式方面具有了强大的能力,而且 Unix Like 上面的 Shell 通常都有很强大的编程能力, 能够充分组合各种 Linux 平台上各种小工具的功能,进一步加强了 CUI 与操作系统交互的能力。这个方面 Linux 的优势是非常明显的。
Windows 系统现在强调自己是一个完全的 GUI,但是实际上只能说是以 GUI 为主,根本无法完全去除对 CUI 的支持。而 CUI 方面,MS DOS 和 Linux 的差距太大了。
如果你是一个新手,使用 Linux CUI 与使用 Window CUI 相比没什么不同。当你经过学习,拥有了丰富经验之后,Linux CUI 的能力简直太强大了,你可以很方便的用 Linux CUI 做任何事情,只要 Linux 系统提供。而 Windows CUI,就算你经验再丰富,你能做的事情也很有限,而且 MS 并不赞成你用 CUI,所以你能够获得的支持也非常有限,看看铺 天盖地的《7天学会 Windows》再比较一下凤毛麟角的《MS 命令行大全》就知道了。
CUI,Linux完胜。
GUI 方面是 Windows 一直以来的强项。从乏善可陈的 Win3.x 到弱不禁风的 Win95 到光芒四射的 Win2k,MS 找准了一条路:让计算机看上去用起来很简单。MS 在 Windows 领域作出了几个非常英明的决定:集成 IE、集成 DirectX、全面参考 MacOS。这些决策直接产生了如今 Windows 统治普通个人用户桌面的现状。
MS Windows 强调的是全面的集成,从底层到表面全部封装,这也是 MS 一贯的产品战略。你要的 MS 会给你,你不要的,一样给你。
而 Linux 的 GUI 走的是另外的一条道路。首先 Linux 操作系统还是以 CUI 为主,因为广大的用户(主要指国外的用户)已经很习惯于 CUI 操作了,GUI 只是一个次要的选 择而已。这一点从早期的 X 设计的思想都可以看出来。X 只是运行在 Linux 操作系统中的一个进程而已,甚至不比系统日志进程的优先级高。基于 X 的桌面环境只是 CUI 的 Just Another Choice,而不是替代型的选择。
由于 Linux 开发的完全开放和基于 X 的桌面系统架构层次,开发者可以开发桌面系统中任意的一个部分,这也直接造成了基于 X 的选择非常众多。好处是不论 Linux 桌面中 的任何部分,只要你不喜欢都可以换;坏处是只要你不是“老鸟”选择这些软件会让你非常头痛。选择的自由伴随的就是可选择的离散。
不过,正是这种给开发者提供的完全自由,现在出现了很多非常出色的 X 软件。e17 的“惊艳”、fvwm 的自如、xfce 的精巧、xBOX 的简单,还有与很多很多其他 X 软件的 组合,让人目不暇接。用一个词语形容就是“百花齐放”。
国内用户通常诟病的就是 Linux 桌面系统远远没有 Windows 好看、好用。我想现在数人对比的都是 WinXP 和 GNOME/KDE。说实话,这个是有历史原因的。如果不是 96 年之 后 D 版 Windows 泛滥,为 MS 培养了大量的用户,现在还有那么多人为 Windows 唱高调么?很多人曾几何时为了 Win95 蓝屏不得不 Ctral + Alt + Delete,到被 WinME 折磨 的神经质,结果今天为了 GNOME 中一个软件的崩溃就大动肝火,然后高喊 Linux 不适合桌面。不得不让人问一句,这样公平么?
Windows 近年的发展非常有限,除了 WinXP 十分难看的主题外,操作方法、表现形式都一直没有突破。用户者可能会说这是“延续”,但是我要说的是,缺乏竞争让 Windows 越来越没进取心了。Vista 给我的感觉压根就不是给普通用户用的,太多华而不实的东西了。就和现在正在放映的《无极》一样,剥去华丽的外表,剩下的只有苍白老旧的内涵了 。
我现在还天天使用笔记本上的 WinXP,一样发现了大量 BUG,有些严重影响了我的使用。但是 MS 很会转移视线,现在大家抨击的都无非是安全性问题和病毒问题。安全性问题 MS 可以解释说这个是因为我们用户太多;病毒也一样,而且病毒又不是微软开发的。我总觉得这样的话是不负责任的推托。既然你有那么大的市场那么多的收入,那你就有那么多 的责任,应该全力帮助客户解决问题,而不只是表现出自己很无辜,然后找几个枪手转移视线。
GUI 方面,MS Windows 借助 D 版 Windows 培养的大量用户占据了先机。但是只是比较操作上的简便可用方面,KDE 甚至稍微超过 WinXP。
但是总体来说,操作习惯还是成为了决定因素,对于多数用户来说,Windows GUI 更适合。
评估两种系统的可用性还有一个因素就是中文和硬件支持。
Linux 以前对中文的支持很差,毕竟很少国内的开发者参与开源项目。不过现在这个问题越来越容易解决了,从 GTK 对字体支持的进步,到更多对 zh_CN 支持的软件,中文问 题已经不像以前那么明显了。但是,Windows 毕竟是从底层就中文化的,这个方面还是完全占有优势的。
硬件支持和驱动程序架构不可分,Linux 内核的驱动架构正在经历变化,以后会更多 User Space Driver 出现。但是不可否认,MS 再一次占了垄断的便宜,硬件厂商(特别是 消费级硬件)还是优先开发 Windows 下面的驱动,而且更新速度相当快。Windows 下面对于驱动程序的管理也比较符合用户通常的习惯。Linux 在这个方面虽然已经做的不错了, 但是还有很多工作要继续做下去。
2,性能
Linux 的性能是非常出色的,尤其是我使用的 Gentoo,可以完全针对机器的配置设置优化。而且 Linux 对于 x86_64 的支持领先 Windows 不是一点半点。在相同平台上,优 化过的 Linux 在性能方面确实远远超过 Windows。从 Windows 的理念就可以知道了:不管你要不要,我都给你。不管你是不是跑某种和 GUI 完全无关的关键服务,Windows GUI 一定是要运行的。如果一个 GUI 的 BUG 导致了系统的崩溃,那只能说你太倒霉了。
自从 Kernel 2.6 之后,glibc with nptl,对于线程的支持也好了很多,性能方面也更加出色。这些都是 Linux 长足的进步。而且经过无数技术高手的敲打、优化,Linux 确 实可以承担起相当重要的角色了。
公平的说一句,Windows 的性能和稳定性比以前已经好了很多了,起码在某些地方完全是与 Linux 处于同样层次的。但是 Windows 的优化能力十分有限。因为 MS 为你做了很 多事情,虽然你不想让他这么做,但是你也没的选择。对于多数比较“懒”的用户来说,这样也许很好,但是对于对于系统优化拥有固执追求的人来说,Windows 并不适合。根据 8/2 法则,MS 这样做在市场上是很聪明的,但是这种武断蛮横的方式,恐怕有不少人无法接受。
性能方面,我认为,Linux 领先 Windows 一些,这种情况会长期延续下去。除非 Windows 开源。
3,文化和发展
Linux 世界的文化和 Windows 世界的文化有很大的不同。Linux 告诉用户:一切都在你手里,只要你作出选择就好了;Windows 告诉用户:一切都在我手里,只要你接受就好 了。而且,Linux 是有强烈的乌托邦气质,而 MS 是典型的商人气质。这就不是孰优孰劣的问题了,而是用户更接受哪种文化。
对于多数用户来说,只和开发者形成商业关系,MS 在这种关系中扮演的是最适当的角色:你给我钱,我给你产品;而 Linux 的用户和多都会在使用 Linux 的过程中获得一种 “参与”的感觉,那么能够获取的信息就是:你就是我们的一员。这一点从无数火热的 Linux 社区就可以体验到。
作为个人用户,我更接受 Linux 世界的文化,但是在为自己的客户选择产品的时候,我也会根据客户的实际需要来选择。不过,既然 Linux 在关键商业应用上不比 Windows 差,甚至更强,那么我当然首先推荐 Linux 咯。桌面方面,呃,国内客户还是推荐 Windows 吧,反正你强要介绍 Linux 多数也是浪费口水。
但是,从最近 10 年的发展来看,MS 更多的是因循守旧,而 Linux 世界在不断努力的创新。GTK1 和 GTK2、GCC2/3/4、KDE 2/3、Kernel 2.2/2.4/2.6…… 哪个不是翻天复地 的变化?每次变化都为用户带来了巨大的价值!这,就是 Linux 世界为用户做的事情。
另外,当你遇到问题的时候,你会如何获得帮助呢?MS 说,Linux 的服务是弱点,因为没有像 MS 这样大型商业企业能够这样成体系的提供客户服务。我们先不谈暧昧的 SUN 和 IBM,只是在 Linux 社区方面,你就能体验到完全的不同。你遇到 MS 的问题的时候,更多的时候是客服商业化的“关心”、社区上同病相怜的唉声叹气、以及没什么技术含量 的建议(例如:重启)。而在用 Linux 时遇到问题的时候,我们更多的碰到的是朋友式的帮助(在国外尤其明显),就算是你和 Linus 讨论问题,他也一样非常热情。可以说, 同样是遇到问题,我在 Linux 世界体会到的绝对不会有“无助”二字。
说一个我和别人讲过很多次的例子。我曾经做过一个 ERP 项目,项目用的是全套 MS 产品,从操作系统到数据到技术架构。当时系统基于 MS 当时重点推荐的 MTS(Windows DNA 的一部分)来设计的。但是客户投诉说服务器每天要重启一次,很影响工作。我们查了问题,发现是 MTS 对于内存管理存在 BUG,当大数据量大负载之后(其实也不是很大) ,MTS 就迅速吃掉所有系统资源,系统进入死锁状态,没有任何办法杀掉 MTS,只能重启。我们咨询了 MS 技术人员,他们的答复是:“这个问题暂时无法解决”。之后 MS 操作 系统升级了,图形界面换了,技术架构也换了。一下子没了 MTS,出现了 COM+ Service。OK,公司产品必须全部重写,而且,这是第二次了。从 VBD 到 COM+ 到 .NET,微软赚了 ,也耍了一大批追随者。Linux 呢?和 Unix Like 一样,几十年都不会让客户过去的经验成为垃圾。
罗嗦了半天,大家突然可能会觉得我是一个 Linux 枪手。我否认。我用 Windows 多过 Linux。但是作为个人用户,我更喜欢 Linux。作为一个游戏爱好者的时候,我选择 Windows(其实我喜欢 PS2,但是是日货,XBOX 也是 MS 的东西,没必要考虑)。Linux 更像我一个非常喜欢的玩具,而且这个玩具有着不同凡响的用途,恐怕多数人也是这样看 待 Linux 的。虽然是以“玩具”的角色诞生的,但是 Linux 正在不断摆脱“玩具”的定义。如今的 Linux 已经完全可以承担关键的商业业务了;桌面方面,我只能说:只要假以 时日,前途不可限量。
我并不希望 Linux 可以完全取代 Windows,这样既不现实也完全没必要。只是 Linux 的火热一定程度上反映了业界对于 MS 垄断桌面的不满,并承担了打破这种垄断的重任。 从一个完全非商业的世界走进一个完全商业的世界,Linux 需要的不仅仅是优秀的发行版,需要的是更多用户的支持、更多优秀的盈利模式。

释放点不理想
完全用Linux工作,摈弃Windows


