無論有多少人厭惡Microsoft,任何客觀的評論者都必須承認一個基本的事實,那就是純以技術而言Windows是目前操作系統家族中具有頂尖水平的成員。Microsoft能夠在軟件界翻雲覆雨一手遮天憑借的就是Windows操作系統的實力。市場是無情的,能夠裝在自己口袋裡的銀子誰也不會願意放到Microsoft的保險櫃裡去。Windows十余年來在市場上的成功,尤其是在四面樹敵,人心思變的今天依然雄霸天下而不倒正是其實力的明證。
下面本文就來對Windows和Linux的若干主要方面進行一些評述和比較。
安全性能
安全性能是Windows常常遭受Linux支持者批評嘲笑之處。除了層出不窮的計算機病毒外,號稱Windows95以來最重要的版本的WindowsXP問世不過數月就屢屢發現安全漏洞,而且導致聯邦調查局向用戶發布警告,這無疑加深了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和LinuxDistribution或者LinuxDistribution中與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系列而來,自WindowsXP開始Microsoft已經終止了這一系列的開發。其次需要分清的是應用軟件的穩定性與操作系統的穩定性。如果一個軟件的崩潰不影響操作系統和其它軟件的運行,那麼這筆帳通常就不應該記在操作系統的穩定性上。如果一個軟件的崩潰造成整個操作系統的崩潰(即通常所說的“死機”),那操作系統的穩定性就要受到質疑。
至於最新的WindowsXP與Linux究竟誰更穩定,說實在目前還缺乏足夠的數據和可比性,因為兩者所運行的軟件很不相同。網上雖有一些測試結果,不過這些測試的客觀性往往是值得懷疑的,這個有時間我將另文敘述。一般說來,由於Windows上運行的軟件通常比較復雜(比如游戲,大型商業軟件等),從而有較大的幾率暴露操作系統的缺陷。從這點上講,對WindowsXP和Linux的表觀穩定性進行比較並不足以說明兩者在運行同等復雜的軟件時誰更穩定。另一方面和系統安全性的情行相似,人們說到Linux的穩定性時常常只是指內核的穩定性,而Windows的穩定性卻涵蓋包括用戶界面在內的許多別的部分。出現這樣的狀況也情有可原,因為Windows和它的用戶界面是無法分開的,用戶界面死了,對用戶來說就相當於操作系統死了,而Linux則不同,用戶界面死了常常還可以用熱鍵退出,並重新啟動用戶界面。這些差別的存在使得穩定性對Windows來說是一個更為困難的目標。軟件支持
對軟件,尤其是大型商業軟件及多媒體軟件(包括游戲)的支持一直是Windows的強項,無論是MacOS還是Linux在近期內都很難憾動Windows在這一領域的霸主地位。Windows龐大的應用軟件支持是大多數用戶即使心懷不滿,也不得不繼續使用Windows的一個重要原因。Linux所擁有的軟件雖然為數也不少,而且有些軟件(比如GIMP,StarOffice等)的開發是以Windows下相應的商業軟件為競爭對象的,但是在功能上這些軟件要真正達到可以替代Windows軟件的程度還有相當一段路要走。免費和公開源代碼軟件是Linux的靈魂,也是很多人喜愛Linux的原因,但是缺乏足夠的高質量商業軟件的支持已經成為Linux與Windows競爭桌面操作系統市場時的重大障礙。在這方面Linux面臨一個兩難局面:一個操作系統要吸引商業軟件開發者就得要有足夠多的用戶(尤其是公司用戶)。原因很簡單,有用戶才有利潤。但另一方面,一個操作系統要想吸引足夠多的用戶(尤其是公司用戶),就得要有足夠多高質量的軟件(包括商業軟件)。這是一個典型的先有雞還是先有蛋的問題。從目前的形勢發展來看,打破局面的最可能途徑是軟件公司願意做前瞻性的開發,從而產生一個良性的推動。
這裡需要做一點補充說明:對於相對小型的軟件的支持Linux並不遜色,一個完整安裝的LinuxDistribution不僅比Windows帶有品種遠為齊全的軟件,而且各常用類型的軟件,諸如email,FTP,IRC,浏覽器等均有四五種以上可供選擇(有時反而讓初用者手足無措)。
硬件支持
五年前Linux的安裝對於新手來說還是一件望而生畏的事,這其中很大一個原因就是Linux對硬件支持的欠缺,三年前我在筆記本電腦上安裝Redhat6.0還被迫到網上自行搜尋config文件。但近幾年來Linux在這方面取得了長足的進展,今天,各主要Distribution對硬件的支持度正在迅速接近甚至超過Windows的水平。盡管硬件生產商對Windows驅動文件(driver)的提供仍比對Linux的要普遍,但高手如雲的Linux群體已經做到了能幾乎同步地提供所有最新硬件驅動文件的程度。另一方面,WindowsXP在硬件支持的普遍性上卻出現了較大的倒退(Microsoft或許把這叫做更新)。此消彼長,Linux在硬件支持上的欠缺已經成為歷史。
雖然沒有明說,但上面談論的硬件都是針對x86機器的,脫離了這個框架,Linux在硬件的支持上的廣泛程度是包括Windows在內的任何其它操作系統都無法比擬的。
說到硬件支持,還有一個需要考慮的方面就是系統配置。每一代的Windows都對系統配置提出了新的要求,WindowsXP苛刻的系統配置要求更是使得幾乎所有兩三年以上機齡的機器都必須經過相當程度的硬件改良才能安裝。而Linux雖然也同樣在逐步提高對硬件配置的要求,但由於其優越的模塊結構,使得用戶有極大的自由度根據自己機器的配置調整自己所需安裝的模塊,從而突破對硬件配置的要求。
規范性
這裡所說的操作系統的規范性有兩層含義,一層含義是指操作系統對軟件界的各項技術規范的遵循程度。在這方面Linux基本上遵循了所有適用的規范,這和Linux的開發模式不無關系。除內核外Linux沒有一個中心仲裁者,因此開發人員大都以軟件界已有的技術規范為准則進行系統開發。Windows在這方面的名聲則毀譽參半,一方面Microsoft本身是軟件界許多規范的制定和倡導者,但另一方面,Microsoft又常常按自己的喜好“修改”規范。由於Windows在桌面操作系統領域擁有壓倒多數的用戶群體,軟件界在相當程度上被迫適應Windows的要求,因而使得Windows的許多非規范的東西成為事實上的規范。
規范性的另一層含義是指操作系統本身的規范性,一個簡單的衡量標准就是該操作系統的兩個用戶之間有多少共同語言。由於Windows是由單一公司開發的,因此在這方面不是由松散聯系的開發者為主力的Linux可以比擬的。以用戶界面而論,Windows自Windows95以來保持了相當的穩定性,用過其中任何一個版本的用戶基本上可以不用額外學習就直接使用另一個版本的Windows界面。而Linux的用戶界面不下十種之多,最流行的也有KDE和Gnome兩種,明顯缺乏規范性。Linux在自身規范性上的欠缺還表現在各主要的Distribution使用不同的目錄結構,用不同的格式傳播軟件,用不同的方式安裝軟件,等等。凡此種種不僅給新手帶來極大的困惑,就是對有經驗的用戶甚至系統開發人員都是極大的不便。
所幸的是,Linux的不規范性已經引起了越來越多人的重視,一個如同W3C(W3C是制定互聯網規范的組織)那樣的組織TheFreeStandardsGroup已經成立,它的使命就是制定Linux和其它開放源代碼系統的規范。隨著這些規范的逐步推廣,Linux將會縮小在自身規范性方面與Windows的差距。
這裡也需要補充一點:Linux在用戶界面方面的不規范性有時候也不失為一個優點。常常聽人抱怨說自己花大價錢更新機器的努力很大一部分被操作系統本身所消耗掉了,這其中一個消耗資源的大戶就是用戶界面。Linux用戶在這種情況下就可以使用消耗系統資源較少的用戶界面。
總體上講,在對外部規范的遵循性上,Linux要優於Windows,而在自身的規范性上,Windows要顯著優於Linux,而且在近期內這種優勢不會喪失。
源代碼
Windows的源代碼是保密的,而Linux的源代碼是開放的。從字面上講這當然是意味著原則上任何人都可以改進Linux。但是需要指出的是,原則上可以做的事情並非實際上就一定能夠或者應當做。Linux源代碼的高度的開放性主要是針對系統開發人員的,源代碼的開放性使得Linux系統中的缺陷能夠很快地被來自世界各地的高手所發現和彌補,這是十余年來Linux發展的關鍵。但對於普通用戶來說,修改自己賴以工作的Linux機器的源代碼卻是非常不明智的行為。Linux內核多年來經過無數高手的錘煉,一個普通用戶能夠改進它的幾率是微乎其微的(破壞它的可能性倒是很大的)。因此在肯定源代碼開放性對操作系統本身乃至整個軟件業發展的深遠意義的同時也不應該誇大它對普通用戶的直接幫助,源代碼的開放性並不增加一個普通用戶對系統的掌控程度。
Linux源代碼的開發性使得各大學的操作系統課程和教材幾乎都是以Linux或其他類似的系統為藍本,因此使得受過正規計算機專業教育的幾乎所有學生以及幾乎所有對操作系統感興趣的人都對Linux有相當程度的了解和喜愛。這對於Linux未來的發展有著十分正面的影響。
應用程序界面(API)
一個操作系統的API(ApplicationProgramInterface)是操作系統提供的與應用軟件的接口,對於軟件開發人員來說十分重要。一般認為Linux的API要比Windows優美。不過由於Windows下有諸如VisualStudio這樣的直接支持WindowsAPI的大型工具軟件,從而大大降低了Windows編程對於擁有並熟悉這些工具的人員的困難程度。
系統可調節性
Linux具有比Windows大得多的可調節性。許多早期的Windows骨灰級用戶在系統可調節性上有一種懷舊感,覺得在DOS和早期Windows時代他們曾經是機器的主人,隨著Windows的演化,後來他們只擁有Windows,不再直接擁有機器了(現在他們連Windows也不擁有了)。而Linux卻始終如一地保持著系統的高度可調節性。
Linux的源代碼的開放性也可以被視為終極意義上的可調節性,但是,前面說了,對於普通用戶來說,這種可調節性實際上是幾乎不存在的。
另一方面,在各自可調節的范圍內,Windows要比Linux易於調節(這在很大程度上得益於Windows界面的規范性)。在早期,Linux的調節往往需要用戶直接修改參數文件,即使對於有一定經驗的用戶,這也是一件令人頭疼的事。近年來Linux在這方面做了很大的改進,開發了許多工具軟件,不過和Linux下的許多其它類別的軟件類似,Linux的工具軟件也呈現一種發散性,即有不止一種軟件可以做同一件事。這使得用戶在轉換機器和LinuxDistribution時往往因為不同環境下工具軟件的不同而需要學習新的工具或重新安裝舊的工具。
使用方便性
使用的方便性是桌面操作系統競爭中最重要的決勝因素之一。這裡所說的使用的方便性是針對普通用戶的,這一點常常被Linux的支持者所忽視。現階段在桌面操作系統的用戶群體中,Linux用戶的平均計算機水平要大大高於Windows用戶,這種差異使得Linux群體常常低估了一個缺乏計算機系統知識的普通用戶適應Linux的難度。“Windows是傻瓜也能用的”非但不應該被用來嘲笑Windows,反而是Linux在競爭桌面操作系統市場中必須借鑒的經驗。計算機二十年來的發展早已超越了專業的界限而成為幾乎所有現代人都可能會用到的工具。使用方便性是任何工具所應該追求的品質之一,計算機及其操作系統當然也不例外。試問這世上聰明人的比例能有多少?偏偏把聰明用在計算機上的聰明人比例又能有多少?今天Linux用戶群體的平均計算機水平高的一個不可忽視的原因是因為只有水平較高的人才能得心應手地使用Linux,而這一事實,很不幸的卻是Linux與Windows競爭時的一大弱點。版權限制和費用
這方面沒什麼可說的,法庭上的勝負不論,無論對個人還是公司用戶來說Windows利用其壟斷地位迫使用戶接受日益苛刻的版權要求已是不爭的事實,可以蓋棺定論。使用WindowsXP的用戶相信對此尤有切身體會。每張WindowsXP光盤只能安裝在一台電腦上,不僅如此,重裝操作系統或更換一定數量的硬件都會導致Windows反盜版機制的干預,使得用戶必須向Microsoft索要新的序列號(可能還免不了要解釋一下自己何以又要給Microsoft“添麻煩”)。花錢買了的軟件竟然還要間或地向Microsoft請示匯報,用戶心中的不平衡是不言而喻的。至於價格,WindowsXPHome和Pro的價格分別為$199和$299。相比較之下Linux不僅可以免費下載,而且可以安裝在任意數目的機器上。對用戶具有的親和力是不言而喻。
可惜的是,對於個人用戶來說Linux在價格上的優勢在很大程度上被市場上大部分品牌機廠家不提供預裝Linux的機器(服務器除外)這一事實所抵銷了。由於品牌機廠家在市場上占有很大的份額,因此大部分用戶不論用不用Windows,都一樣付了Windows的錢。既然錢也付了,操作系統也有了,絕大多數人就不會再去費心做調整。順便說一下,這也是目前Linux用戶群體的計算機水平普遍較高的另一個重要原因,因為對計算機或操作系統感興趣的人有較大的可能性在並不缺乏操作系統的情況下還去安裝一個新的操作系統。
不過對公司用戶來說,由於Linux不對用戶數量設置限制,與Windows的VolumnLicence相比其費用方面的優勢是十分明顯的。
說到費用,需要提到另外一個方面就是許多在Windows下要付費的軟件在Linux下有功能相近,相同或更好的免費軟件。雖然前面說到Windows在對軟件的總體支持上優於Linux,但是Windows占優勢的那部分軟件對大多數普通個人用戶來說並不是不可缺少的(也許游戲除外)。不過Linux在這方面的優勢也在很大程度上受到一個因素的削弱:那就是許多Linux下優秀的免費軟件也有Windows版本。
技術支持
這裡所說的技術支持是一個比較含糊的概念,既包括由公司提供的技術服務,也包括用戶可以自行找尋的信息。在公司提供的技術服務方面,盡管不時可以聽到有人抱怨和Microsoft技術服務人員打交道時的不愉快經歷,但這顯然是和Windows的用戶數量有關的。總體上講Microsoft對用戶(尤其是公司用戶)提供的技術服務要優於各Linux公司(當然這種服務不是免費的)。在用戶可以自行找尋的信息方面,Microsoft有一個規模龐大的KnowledgeBase,Linux則有LinuxDocumentationProject,而且Linux在互聯網上的BBS,Forum和Newsgroup等網站中常常可以看到頂尖的Linux開發者的身影,與Windows不同的是,Linux的開放性使得許多Linux高手對Linux的發展具有一種使命感,他們光顧這些網站就是為了了解用戶的反映,發現bug並為Linux的發展積累經驗。我這麼說倒不是暗示Microsoft的人就不會以同樣目的光顧Windows網站,不過就我個人的體會來說這方面Linux群體對用戶起到的幫助作用要好於Windows群體的相應幫助。
需要說明的是,對公司用戶來說,這後一種幫助在公司決策層面上起不到太大的作用。有一句半開玩笑的話很通俗地概括了許多公司(尤其是大公司)在選用軟件(包括操作系統)時的態度,那就是“只選擇自己可以將之告上法庭的供應商提供的軟件”。Linux群體以及許多Linux公司無法在足夠長的服務期限內提供規范的,有法律保障的服務是Linux在競爭桌面操作系統的半壁江山-公司用戶-時的一大障礙。
結語
寫到這裡應該收筆了。通常這類文章都要預測一下Windows和Linux在桌面操作系統市場上的前景。前不久,RedhatLinux公司的總裁發表令人意外的評論說Linux無法在桌面操作系統市場上擊敗Windows。當然,Linux的熱心支持者們並不認同這種看法。兩方面的意見在網上爭論得非常激烈。講到預測,插上幾句離題的話。小時候聽說有外國專家預測在中國本土不會找到很多石油,也有外國專家預測唐山在多少年內將難以重建。這些預測都破產了。那時我就想何以外國專家都如此愚蠢,以至於我們做成的每件事情都可以拉上一兩個外國專家做反襯?後來看的預測多了漸漸明白了道理:不是外國專家太愚蠢,而是有太多的“專家”了,什麼可能性都讓專家“預測”到了。我不是專家,不想也不敢貿然在這裡作什麼預測。Linux在桌面操作系統市場的前景取決於許多因素:比如各主要商業軟件公司會在何時,以何種方式參與Linux軟件的開發?比如有多少計算機廠家會提供預裝Linux的機器?比如全球性的經濟低迷會在多大程度上加速公司和個人為節省開支而使用Linux,比如Microsoft是否會在法庭上敗訴?如果敗訴受到的懲罰方案如何?等等。除此之外,還需要看到用戶群體的行為習慣具有極大的慣性。無論Linux如何改進,仍然有很多人說Linux不方便。為什麼?除了Linux本身的部分原因外還因為Windows巨大的用戶群體已經形成,Windows的一切已經成為了事實上的標准,任何對Windows的偏離都必然要改變用戶群體的習慣,這是所有Windows的競爭者不得不背負的沉重包袱。
細致而盡可能准確地分析所有這些因素不是一篇短短(盡管現在已經不太短了)的文章所能勝任的。幸好計算機技術這二十年的發展始終沒有讓人們久等過,看到這場操作系統大戰的階段性結果相信也不會對我們的耐心形成太大的挑戰。
本文的一個假設的情況是Linux和Windows爭奪桌面操作系統用戶,離開了這個前提,離開了這個評論的角度,關於兩個操作系統的比較當然就會有不同的結果。至於Linux是否應該和Windows來爭奪污濁的桌面操作系統市場,這是一個不同的話題。有朋友提到Linux過分地向桌面發展會有損其穩定性。Linuxkernel2.4在推出後很長一段時間無法達到令人滿意的穩定性使得有人一度在kernel-mailing-list上發出“Linusdoesnotscale”這樣的感慨和懷疑。不過我認為,kernel2.4的問題不是因為Linux向桌面發展造成的,kernel2.4的發展最主要的受益者是server而不是桌面用戶。我個人的想法是Linux由於其模塊結構,是有希望在reliable,stable,scalable的內核和一個能被普通用戶接受的GUI兩方面同時取得成功的(至少在技術上是可以的,在商業社會模式下是否事實上可以當然誰也沒法保證,許多GPL軟件已經開始偏離GPL了,這在多大程度上代表一種趨勢還有待觀察)。