一個LINUX狂人的語錄

我已經半年沒有使用?Windows?的方式工作了。Linux?高效的完成了我所有的工作。

GNU/Linux?不是每個人都想用的。如果你只需要處理一般的事務,打游戲,那么你不需要了解下面這些了。

我不是一個狂熱的自由軟件份子,雖然我很喜歡自由軟件。這篇文章也不是用來推行自由軟件運動的,雖然我覺得自由軟件運動是非常好的。

這?篇文章也不是用來比較?Linux?和?Windows?內核效率,文件系統,網絡服務的。我現在是作為一個用戶而不是一個開發者來說話的,我們的討論是基于操作,應用層面的。是為了告訴大學里還不了解,或者不?理解?UNIX?的科學工作者和大學生,UNIX?比?Windows?更適合用于科學研究工作,請大家理解?UNIX?的工作方式,不要用?Windows?的標準來要求?Linux,而要用一個科學工作者的標準來要求自己,用UNIX?的思想來武裝自己。

我顯?然是反對在大?學,特別是理工科專業推廣?Windows?的。我也反對在對"娃娃"們的計算機啟蒙教育中使用?Windows。因為?Windows?不論從技術上,經濟上,思想風格上都是與我們培養高科技人才的目標格格不入的。Windows?的流行屬于歷史遺留問題,爺爺一級的人當然已經不可救藥,但是我們不應該讓下一代繼續走上歧途。

UNIX?不是計算機專家的專利

當我建議一些非計算機專業的人用?Linux?的時候,很多人說:"UNIX?是計算機系的人用的,我們不能理解。"?"UNIX?是男孩用的,我們女孩不用。"

但是其實世界上的大多數科學家和工程師幾乎用的都是?UNIX?作為他們的電腦工具。就因為它簡單,可靠,穩定,強大,有趣。甚至很多時候?UNIX?就是唯一的選擇。

你說:"我們都會用?UNIX?的話,你們計算機專業的人還用來干什么?"?很容幸的告訴你,計算機專業的有一部分人就是專門為你們提供這樣強大而方便的計算機工具的。如果他們制造的工具只有自己會用的話,那這個工具還有什么用?

理解?GNU/Linux?不要用?Windows?的標準來要求?Linux

由于GNU/Linux這個詞太長,下面如果沒有特別指明,"Linux"就是指GNU/Linux"

在這個年代,恐怕沒有人需要我來介紹?Linux?是什么了吧?如果你覺得"Linux?只不過是跟?DOS?差不多的東西",那請問問你旁邊的?Linux?用戶,Linux?到底是什么?

那?為什么我還要寫一篇這樣的文章?因為,我發現還有很多人不不理解?Linux?和?UNIX,雖然他們也在用它,但是他們有時會問:"為什么?Linux?不能像?Windows?那樣?……""怎么Redhat?Linux不能?mount?NTFS?分區!""Linux?下用什么整理硬盤?""什么時候OpenOffice才能完全兼容Word文件啊?""現在還有什么Windows能干的事情Linux干不了的??"……

他們?有40G的硬盤,卻只為?Linux?分配了2G空間,有時還抱怨"這個東西怎么占這么多硬盤!"?似乎?Windows?該占用大部分硬盤。他們把重要的數據裝在Windows的分區,似乎信不過Linux。他們總是到處尋找新奇的,好看的GUI程序,對命令行的東西一概不?屑一顧。他們對Drag&Drop,菜單配置,自動升級非常感興趣。他們如果找到一個很像?Windows?程序的?Linux?程序,一定會很高興的說:"哈哈!Linux?也能……了!"如果Linux在某種測試中勝過Windows,他們會高興得跳起來。他們沒有辦法用Linux?解決問題的時候,甚至用Wine來運行Windows程序。有時實在沒辦法,只好重起到Windows,或者干脆省得麻煩,在?Windows?下裝一個?VMWare?虛擬一個?Linux?玩。

你如?果出現了上面的情況,說明你的思想受到了?Windows?的某種潛移默化的影響和誤導。你沒有能夠從本質上理解存在于?Linux?身上的?UNIX?思想。你支持?Linux,你喜歡?Linux,你能從中感覺到快樂,這非常好。你現在只需要明白的是:Linux?從來就不是一個玩具,它是天才UNIX的后代。UNIX?是自晶體管發明以來最偉大的發明,它從誕生那一天開始就比?Windows?的設計出色。

你要?體會什么叫做"設計",一個糟糕的設計并不?是到后來縫縫補補就可以變好的,而一個出色的設計,不但可以以不變應萬變,而且可以影響到后來者。一個出色的設計配上一個出色的實現,那就是非常出色的發?明。Linux?就是這樣的一個出色的發明。Linux?并不需要追趕?Windows,也不需要打垮微軟。它的最終目標是改變整個計算機世界,還人們自由,給人們樂趣和方便。

Unix?是簡單的,你不需要成為一個天才也能理解這種簡單。

UNIX?的設計者?Dennis?Ritchie?說:"Unix?is?simple.?It?just?takes?a?genius?to?understand?its?simplicity."?但是我不這么認為,因為我不是一個天才,但是我卻勇敢的把?Windows?完全刪除掉,遇到不明白的事情的時候努力用?UNIX?的方式去解決,而不是尋求?Windows?的幫助。現在我體會到了?UNIX?的思想和好處,我可以用比?Windows?高效幾倍的效率工作。因為我相信這樣的信念:"Windows?能辦到的事?Linux?一定能辦到,而且辦的更好。"

這小?節開頭的話應該改成:"Unix?是簡單的,你不需要成為一個天才或是計算機專家。但是在這個沖斥著?Windows?錯誤觀念的世界,你需要信念和勇氣才能理解它的簡單。"?我下面就告訴你一些我理解到的東西。首先,你要知道的是微軟在國際科學領域是根本沒有地位的。

微軟的地位

微軟?的名聲在歐?洲和美國的大學里,特別是在計算機系里之壞,大家可能有所耳聞。我認識的?MITStanford?的教授,貝爾實驗室的專家,甚至一個歐洲小國的高中計算機老師都絕口不提微軟的名字。在他們眼里,微軟只是一個沒有真技術,專靠在落后國家商業宣傳和壟斷?經營的小公司。這個""并不是說它人少,錢少,而是說它先進技術少。

我上?次和王益合作寫了一個算法演示程序,那個算法是貝爾實驗室一位?科學家Steven?Fortune很天才的發明,為了程序能夠被身邊大多數人使用,我們選擇了?VC+MFC?作為平臺。我在分析算法時還得到?Fortune?很熱情的鼓勵,寄給我一份資料,還多次回信耐心的給我講解了很多細節。但是程序完成之后,我把樣品發給?Fortune,他回信說:"對不起。我機器上沒有?MFC"?話說的很客氣,但是我已經感覺到了他對?Windows的不屑。然后我把?MFC?靜態編譯進程序再發給他,他就沒有再回信了。他顯然不是瞧不起我,而是確實有難處。

你能?感覺到這位科學家對微軟和?Windows?是什么態度了吧?不是反感,而是他心里根本沒有?Windows?這個東西!微軟在高科技領域沒有發展,那么它怎么生存呢?到發展中國家去發展一下,他們的人民還對電腦一無所知,我說不定甚至可以打入大學的計算機系呢。?我送他們軟件,我捐錢蓋大樓,我出錢找圖靈獎獲得者來演講,讓他們覺得我們都是科學家!

好?了,現在全國的大學包括清華,幾乎所有人機器必?裝盜版?Win2000Office?XP,學校的選課系統是非IE不能正確瀏覽,論文用?Word?編輯,演示用ppt做,email?的通知附件是?doc?文件,你不用?Word?打不開,連?863?項目都用?VC?寫程序了。我很久以前就看到一份報紙說,"微軟為什么不嚴厲打擊盜版?"?這篇文章說,微軟非但不打擊中國的盜版行為,而且有放任之趨勢。放長線吊大魚,"以后我要你們加倍的來還我!"?確實如此,它的目的快實現了。

Windows?籠罩下的中國計算機教育

說句丟臉的話,比爾蓋茨很久以前是我的偶像……?//blush

在?中國,比爾蓋茨被很多人奉為神圣,"少年電腦天才",甚至有的人提到他的名字就做出"抱拳對天"的姿勢。很多人談到微軟的"新技術""高科技"?都是眉飛色舞。各種"VC編程圣經""深入了解?Visual?C++"之類的書,在開頭幾頁都會出現非常肉麻的字眼,"在那團團的混沌中,一個開天辟地的精靈,Windows?1.0,誕生了……"

微?軟的軟件被這么多人盜用,那么人們是怎樣使用這些盜版程序的呢?先看看電腦培訓班,教的都是一些?DOS?命令,打字,Windows?基本操作,Word?文檔處理,PowerPoint,高級班可能有?ExcelAccess……?參加各種微軟認證考試,MCSEMSDE?的人絡繹不絕。考試輔導班都貼出了"280元,考過為止"之類的字樣。考試參考資料更是昂貴,有些電腦書店整整兩書架都是"Microsoft?Press"的東西。我有個同學參加認證考試,每門考試都要200多元。而且你一次考不過可以再考,又要交錢。他后來還津津樂道跟我說,看我,花了?XXXX(一個四位數)元考過了微軟認證,得到一張比爾蓋茨親筆簽名的證書和價值6000元的?Windows?XP?內部發行版。

"電?腦要從娃娃抓起",我們再來看看娃娃們學的是什么。大部分家長給孩子買了電腦之后,他們首先就會裝一個盜版的?Windows,然后買來盜版的游戲開始玩。如果哪個孩子會用?Delphi?編程序,那可不得了。報社記者,電視臺爭相報導,說,某某學校的初中生某某,在別人都還在玩電腦游戲這種"初級階段"的時候就已經用?Delphi?寫程序了。鏡頭還瞄準了他顯示器上面的像框中的比爾蓋茨頭像!

我剛?進入大學計算機系時還不懂得什么是操作系統,因為我以前只用過"中華學?習機"。看到新入學的同學們各個談論的都是?"Windows?95""VC"……?我簡直覺得我落后了好幾十年一樣,整個一土人,根本跟他們答不上話。好不容易找到一個比較熟的同學問了一下:"你們天天談論的瘟95是什么啊?"答:?"win95就是一個操作系統,跟DOS是一類。""朵死是什么?"?"你連DOS都不知道是什么?別在計算機系混了。"?學校上課當然不講VC編程之類的東西,但是上?Pascal?的老師有一次就說:"嗨,我們學校真是落后。現在別人都用?C,?C++,甚至?VC?了,我們還在講?Pascal。不知道什么時候才能有VC課啊。你們出去也是要用VC的,只好自學了。"?于是,有些同學很多時候上課都捧著一本很重的"Windows?編程大全"之類的書,根本沒有聽課。吃飯時就念念有詞的跟我說,"代碼的優化是無止境的""匈牙利命名法真是偉大的發明"?……?這就是中國很多大學計算機系的情況。

感覺?到無知了?這不是偶然的,而是微軟長久以來埋下的伏筆。它要讓無知的大家都把它奉為神圣,它要讓?支持UNIXXwindow的人一旦說?UNIX?好,Xwindow?好的時候,都被一群人圍著說教:"這個?Windows?也能做到""你對?Windows?有偏見""微軟才是主流啊""你敢瞧不起?win2k"".NET?就是世界潮流""微軟的畢竟是新技術""有錢就是有技術"……?甚至在一番論戰比較后敗下來還是要說:"Windows?性能差點,但是易用性強""Windows?是老百姓用的,要求別那么?quot;"微軟那么有錢,以后想超過?UNIX?還不容易嗎?"……

發達國家的計算機教育

我?前段時間在?USENET?發文問有關?Scheme?語言的問題時,認識了一位丹麥人。他解決了我所有的問題,并且建議我閱讀一些很"深奧"的有關程序語言語法,文法的書,他告訴我很多網站可以學習?LISPScheme,人工智能,算法。他叫我看?Jonathan?Rees?的論文?"Syntactic?Closures"。他還打包給我寄過來一份?MIT?的?"How?to?Design?Programs"。他說他在自己的?PC?機上裝的是?Linux,他用?Emacs?編輯,運行Scheme?程序。他對?Emacs?的了解和愛好真是使人驚訝。他大學本科畢業時做的畢業設計是一個?Scheme?解釋器。這對于我來說是望塵末及了。

他是那么的不厭其煩,我的每一個問題他都詳細的回答。我有時都覺得過于詳細了,怎么這么耐心啊?我覺得他似乎是我的高中老師。他是什么樣的人呢?我好奇的打聽了他的情況。原來,他是丹麥一所普通高中的計算機老師。

他說他在高中里講授程序設計和算法,計算機語言文法。他說用?Scheme,他的學生不用再為內存泄漏等程序語言本身的問題而煩惱,而專注于問題和算法本身。有利于培養學生解決問題的能力,特別是用計算機解決數學問題的能力。

天哪!為什么歐洲出現那么多數學家,幾何學家?你看看別人重視的是什么!我們的計算機教育如果繼續這樣下去,只會沿著彎路越走越遠!

微軟和它的朋友們的如意算盤

下面來看看微軟的收入是怎么來的。首先,Windows?98系列操作系統,一個就是?100多美元,每次升級又是幾乎同樣的價錢。Windows?NT?還要貴幾倍,而且有用戶數目限制,5個用戶的,10個用戶的……?以后如果要增加用戶數目還要按比例付錢。

花?了如此多錢買來的操作系統就能用了嗎?它竟然連壓縮程序都沒有提供!你裝上Windows?之后一般第一件事就是去下載一個?WinZip?吧,"只要?29?美元"Windows會中病毒啊,馬上花?70?美元買一個?Norton?AntiVirus?吧。還有***呢?再買一個Norton?Internet?Security?好了,100?美元。系統需要優化,磁盤需要整理,買一個Norton?System?Works?是你最佳的解決方案,100美元。

可是你現在還是不能干正事啊!你想要一個?Word,?PowerPoint?那就買一套?Office?XP?吧,一起買便宜些,$459.90

那?些程序不會用啊!那些菜單怎么設置,到底有什么功能啊?看"幫助"也學不會。買本書看看吧,我推薦"Special?Edition?Using?Microsoft?Office?XP",不貴,$27.99。這本書里面大部分是屏幕抓圖,還是買一本舊的比較劃算,$17.85

你如果只是當個秘書,上面的差不多還湊合了。可是你有更高的追求,你想成為?Windows程序員。首先買一個?Visual?Studio.NET?吧,要不然怎么編譯程序。$494.95

為了緊跟微軟動向,世界潮流,不能不注冊個?MSDN?什么的吧?這個貴一點,不過物有所值啊,$2,799

嗯,你現在已經是上層階級,白領人士了。你現在可以像這樣"自由"的,"安全"的生活了。

為什么要反對使用?Windows

很多人都說不應該完全否定?WindowWindows?也有它的長處。不應該罵微軟。

對。?Windows?容易操作,適合普通用戶。如果微軟把它自己定位在?P&GPhilips?那樣的地位,能夠給我們的百姓提供周到的,完善的,價廉物美的服務。那我肯定是很喜歡它的。但是從上面的種種情況說明,微軟是一個野心極大的國際壟斷組?織!它的產品沒有一個是不出問題的:Windows?不穩定,容易中病毒,而微軟不為大家免費提供殺毒軟件。我就是要讓你們花錢買我的朋友?Symantec?的殺毒軟件,誰叫你們已經上了我的賊船?這叫什么售后服務啊!

你買?來微軟的程序,安裝的時候一般都有一個協議,說:"?由于微軟的程序造成你的數據損壞或丟失,微軟概不負責。"?我想很多人肯定覺得這個不合理,不想按那個?"I?accept"。但是你的軟件買都買來了,錢都花了,現在一按?"I?decline",安裝程序馬上就會退出。你只好被迫點擊了?"I?accept"!這不是不平等條約嗎?

我已?經目睹了好幾個朋友的文檔被?Microsoft?Word?損壞,有的是編輯了十多天的30多頁的論文,有的是費了很大工夫做出來的個人簡歷,那個朋友為此失去了到自己向往的P&G?工作的機會。就在他要投簡歷的前一個晚上,就在那一瞬間……?不知道他痛哭的時候有沒有想起要投訴微軟,可是誰叫我們用的都是盜版呢,況且你還點擊了?"I?accept"

微軟?仗勢已經占有大部分PC市場,制定不符合國際標準的"微軟的標準",以不合理的方式壓制其它公司的軟件,這個?問題已經在美國司法部鬧了很久了。他甚至在?Windows系列操作系統中放置能夠通過網絡泄漏用戶信息的代碼,以至于?Windows?剛進入澳大利亞時被澳大利亞ZF禁止使用。

有些人說:"微軟畢竟開創了一個歷史,造就了今天的?IT?行業。"?但是,如果沒有微軟,我們今天早就用上非常穩定,非常可靠,非常方便,非常"傻瓜"的軟件了!微軟是阻擋信息技術發展的罪魁禍首。

微?軟的程序的工作方式(注意,我只是說操作方式,病毒的事情另外算)確實適合于一般家庭,上上網,發發郵件,打打游戲都不錯。可是微軟卻要把自己包裝成什么?"高科技"企業,要在世界各地設置"研究院",在大學計算機系贈送不適合用于科研的?Windows產品,甚至出錢請圖靈獎得主來中國暢談"二十一世紀的計算",還在大會上宣傳自己的?.NET?技術。非要把別人認為自己是科學的,自己是領導世界高科技的。但是呢?它什么高科技也沒有。歐洲,美國,哪一個關鍵部門在用微軟的東西?NASA??DOE??CERN?你仔細想一想,微軟的程序對人類到底有什么重大作用?

什么是?Windows?能干而?Linux?干不了的事情?---
"Windows?能干而?Linux?干不了的事情,那就是不需要干的事情。"

有個朋友看我半年沒有用?Windows,有時就會問我:"你只用?Linux,有沒有發現有些Windows?能處理的事情?Linux?干不了?"---
我回答說:"Windows?能干而?Linux?干不了的事情,那就是不需要干的事情。"

Windows?能做的有益的事情?Linux?都能做---
Windows?下的某些功能確實是我們需要的,那么?Linux?的開發者們和用戶也需要這種功能,他們就會去實現這種功能,而且比?Windows?的方式好得多。由于大多數科學家,工程師用的都是?Linux?或者某種商業?UNIX,?所以幾乎所有商業的科學工程程序,比如Matlab,?Mathematica,?AutoCAD,?Candence的,Synopsys的,Avant!?……全都是先有UNIX?的版本(包括Linux),然后再考慮移植給?Windows,甚至根本不移植給Windows,因為?Windows?的機器一般沒有足夠的能力運行這樣的程序。你不要以為只有?Windows?才有?PSpice,?UNIX?的?HSpice?要好得多,而且可以運行在大型主機上。當然它們不是免費的,但是它們值那個價錢。

但是?Windows?下有些東西在?Linux?下沒有很相似的,或者你找到很多類似的,但是它們每一個比起?Windows?的那個程序都要差很多,那么原因有兩種可能性:

有?一個完全類似的程序,但是由于它乍一看不漂亮,被你忽略了。而其它程序雖然看起來很漂亮,但是它們是一些初學編程的人寫的。現在由于?Gtk,?Qt?的誕生,Linux?下開發圖形界面程序極其簡單,很多初中生甚至小學生都可以隨手編出一些漂亮不中用的程序。如果你整天尋找這樣的程序挑來挑去,永遠也找不到你滿意的。當然?也有一流的程序用?Gtk?和?Qt,比如?GVIM?就可以用?Gtk?作為圖形界面,我還知道?Synopsys?一些程序用了?Qt

我?曾經也犯過這樣的錯誤,從外表區分一切。結果優秀的?FVWM,?lftp,?Mutt,?wget?都被我忽略過。當我找回它們的時候,我是那么的羞愧不已,它們現在都是我的朋友?我第一次看到?FVWM?覺得它只不過是一個有很厚很難看邊框的東西。可是現在,我的同學看到?FVWM?都說:"哇!真漂亮。"

有另一種完全不同的方式可以達到相同的目的,甚至更好。

很?多人很關心?Open?Office,?Star?Office,?AbiWord,?...?他們多么盼望有一天某一個Linux?程序能夠完全兼容的打開一個復雜的?doc?文檔。但是你永遠也不可能有那一天。為什么呢?因為微軟為了占有市場,必定不會讓其它系統的程序能夠完全兼容它的文檔格式。它一定會不斷變化?doc?文檔的內部結構,隱藏一些秘密,讓其它公司的程序打開?doc?文檔時總是有某種問題,從而你必需購買?Microsoft?Office?和?Windows

你應該想一下,那么多的高智商的大學教授,科學家,學生,他們用的都是?Linux?或者其它類型的?UNIX,他們沒有?Word?可用,怎么處理文檔呢?這么多年沒有一個像Open?Office?的程序出現,難道大家沒有辦法寫文檔嗎?

顯?然不是這樣。你看看那些高水平的學術雜志,論文,那些大學教授的網頁,那些漂亮的幻燈片,它們是什么做的?原來?UNIX?用戶早就有非常方便的?troff,?LaTeX,?SGML等東西可以處理文檔,而且它們比起?Word?都要高明的多。Word?顯然被這些大拿忽略了,以至于很久以來沒有人想在?Linux?下開發一個類似?Word?的程序,除非某些公司想搶微軟的飯碗。

很多?人?留著?Windows?在硬盤上的原因無非是為了用?Word?和?PowerPoint。我見過一個教授,他的?Windows?筆記本電腦上除了?PowerPoint?什么都沒有。有一天演示的時候,他指著堆亂字符說:"對不起,這是一個公式……怎么每次都是這樣……"?其實有比PowerPoint?好幾百倍的東西可以制造幻燈片,你可以用最簡單的方法制造世界一流效果的論文和幻燈片。你待會兒可以看看我的TeX網頁,你就會知道為什么我可以完全離開?Windows

Windows?能做的那些沒用的事情?Linux?永遠做不好

電腦游戲
有些人說?Linux?下不能玩?Windows?下所能得到的所有游戲。的確,Linux?下雖然也有少量的游戲,比如?Quake。但是它沒有?Counter?Strike,?沒有?Star?Craft,?……

并不是說電腦游戲不該玩,但是應該適可而止。電腦是用來處理事務,幫助你學習,解決問題的工具,而不是一個玩具!整天沉迷于電腦游戲中,而不出去感覺外面的世界,你會變得越來越冷酷,越來越缺乏人情味。你與真實的世界越來越遠。

你?可以在?CS?里殺人,你可以在?Tomb?Raider?里探險,你甚至可以在?Tony?Hawk's?Pro?Skaters?里滑板……?但是?It's?not?real!你雖然有很高的"反恐技巧",但是遇到歹徒的時候,你是那么的怯懦;你雖然控制?Laura?伸手敏捷,但是你打籃球的時候怎么總是被人斷球?你雖然可以輕易的在?THPS?里作出一個?"360?kickflip?to?hangten?grind?to?fakie",但是你踩在自己的滑板上的時候還不會?ollie

說回?來,如果你偶爾玩一下電腦游戲未嘗不可。但是世?界上有遠比?Windows?+?PC?更好的游戲方式。Sony?的?PlayStation2,?SEGA?的?DreamCast,?Nintendo?的?N64Namco的街機……每一個都比?Windows?游戲精彩,每一個都有如此高的3D性能,以至于Pentium4,?Itanium?+?GForce4?都無法與它們比美!

Linux?的用戶們都是關心解決世界的關鍵問題的份子,他們哪里有時間用自己的機器來玩游戲啊?他們每天用Linux高效的做完自己的工作就到陽光下享受自然去了。?要玩游戲也是玩一些類似推箱子,貪吃蛇之類的智力小游戲。所以,你知道為什么?Linux?幾乎沒有游戲了吧?

"整理硬盤,優化系統"

這是一個非常有意思的話題,僅次于有關"病毒"的話題。相信很多?Windows?用戶都有整理硬盤的經歷。在很多?Windows?用戶眼里,"硬盤用久了,會出現碎片,速度會減慢,需要一個程序來整理,整理硬盤的時候不要做其它工作",這好像是天經地義的事情。

我也曾經津津有味的看著?Norton?Defrag?一點一點的把我的硬盤排序,調整,用圖形的方式顯示出來,然后報告?quot;100%?沒有碎片。你的硬盤現在已經達到最佳狀態。"?我現在才發覺我那時是多么的幼稚。

Linux?和?UNIX?用戶似乎從來沒有"整理硬盤"這種說法呢?你覺得很奇怪嗎?如果你覺得很奇怪,那說明你的思想在某種程度上被微軟的垃圾程序禁錮了。你需要明白,UNIX?的大型主機很多必須是一天24小時,一年3651/4天不停運轉的,要是每個星期都要整理一次硬盤,在整理的時候幾乎不能干任何事情,那是絕對行不通?的!

Linux?機器根本不用整理硬盤,這就是為什么沒有看到過?Linux?用戶整理硬盤。Linux?的文件系統是比?Windows?的?FAT,?FAT32,?NTFS?高明得多的文件系統,它們不但可以對文件設置權限,實施完全的保護,而且可以"越用越整齊""越用碎片越少"!你應該把文件大部分放在?Linux?的分區,而不是?Windows?分區,因為它比?Windows分區可靠得多。

還有?更滑稽的事情就是有很多"Norton?System?Doctor""Windows?優化大師""超級兔仔注冊表魔法"?之類的程序存在,而且價格昂貴。似乎一個操作系統本來應該有很多問題,需要別的廠商做程序來"優化"它,而且為了得到優化,你需要付錢!這些問題?Linux?根本就沒有,所以不需要什么優化。Linux?內核本身就是高度優化的。

IDE

有些?人在抱怨為什么?Linux?沒有一個良好的?IDE?開發環境。Linux?現在已經有一些IDE?了,但是總是有很多問題。你是不是正在尋找,正在期望?Linux?某一天可以有一個VC那樣的開發環境?你有沒有發現你正在進入微軟給你設下的怪圈?你為什么一定要用?IDE?你說:"IDE?開發迅速,調試方便,適合大型程序……"?那說明微軟的程序在你腦子里已經比較根深蒂固,你需要好好清醒一下了,看看我來告訴你。

高明的?UNIX?程序員不用?IDEIDE?從來就是給初級?Windows?程序員用的。

你?看看大型的?UNIX?程序,包括?Linux?內核,各種網絡服務程序,Xwindow?程序在內,哪一個是?IDE?搞出來的?我們實驗室的?EDA?程序也沒有一個是?IDE?弄的,我還知道Candence,?SynopsysMentor?的高性能的圖形界面?EDA?程序也都不是?IDE?寫的。你信不信,微軟的人在寫?Windows?本身的時候也根本不用?IDE。微軟內部程序員最喜歡的編輯器其實是?VIM,用?VIM?的微軟程序員上次向烏干達的可憐兒童捐助了1000多美元,這是值得稱贊的。

有一?次某雜志采訪一些出名的?Linux?內核程序員,包括?Linus?在內,沒有一個人用IDE,有的人用?VIM,有的用?Emacs,只有?Linus?"GNU?Emacs?is?evil",但是其實他用的是一種跟?Emacs?有同樣鍵綁定功能的?MicroEmacs。大家都是用編輯器編輯了程序文件,然后用?make?這樣的自動工具調用?gcc?編譯器完成編譯工作的。甚至高級的?Windows?程序員也不用?IDE,他們可以從命令行調用?clnmake?來編譯自己的程序。雖然這樣的?Windows?程序員很少,但是他們卻是最了解?Windows,最高明的Windows?程序員。

為?什么?UNIX?程序員不用?IDE?明白了這個道理你就能體會到?UNIX?的設計思想了。首先,一個?IDE?集成了編輯器,編譯器,匯編器,調試器,跟蹤器……?這個編輯器功能肯定比不上?VIM?或?Emacs,編譯器比不上?GCC,匯編器比不上?as,調試器比不上?gdbddd,?跟蹤器比不上?strace,?ltrace,?truss。你得到的是一套整合的低能的程序。如果你對調試器的功能不滿意,你只好換用另外一套?IDE,但是這套?IDE?的熱鍵,菜單,編輯器功能,按鈕……?跟原來那個有很大不同。你不得不花很多時間來熟悉新的環境,而不能保持原來的某些東西。

而在?UNIX?下就不一樣了。你可以用你最喜歡的?VIM?編輯程序,你在?VIM?里可以調用GNU?makemake?可以調用?gcc,?ld,?...?make?的出錯信息可以被?VIM?捕獲,VIM?能幫你在源程序里定位。你如果喜歡?icc,?你可以讓?make?用?icc?而不是?gcc。你如果覺得?gdb?跟蹤變量時比較麻煩,你可以用?ddd?來顯示各種數據結構之間的關系。你還可以在?Emacs?里調用?gdb,那樣就可以同步顯示源代碼了。而且?VIM?和?Emacs?還可以編輯很多其它東西,比如信件,LaTeX?文檔,HTML,配置文件……?你不用另外找一個什么編輯器來干這些雜活了。很多程序比如?Mutt,?tin?都可以在內部使用?VIM,這樣就更方便了。實際上?make?在其它方面還能幫你很多忙,我的每一個比較大型的?LaTeX文檔都是用?make?維護的。

Linux?能干的高精尖的事情?Windows?都干不了

當?然有很多事情是Linux/UNIX的專利了。因為?Windows?只能裝在?PC?機上,好像以前也有?Alpha?可以使用?Windows?NT,但是就是沒見到有人用。PC?機的能力是很低的,像我們編程序處理?NP-Hard?問題的人,用?Windows?的機器顯然速度不夠,而且有時一個問題算上幾天甚至幾個星期,Windows?機器是以"死機"著稱的,我們怎么能放心?所以幾乎所有科學計算程序,EDA?程序,高性能圖像處理程序都不是?Windows?的。他們有時也會移植一些給?Windows,但是常常降低那些程序的能力。你比較過?Windows?版本的?Mathematica?和?Linux?的有什么區別嗎?

IBM?制造的最大的并行計算機有?8000?多個處理器,Windows?不可能有能力管理這么多處理器,它用的是什么操作系統?答案是?Linux

《泰坦尼克號》電影里的三維動畫,那么細膩逼真,Windows機器能做出來嗎?不行。那也是?Linux?機器做的。

民航總局用來訓練地情人員的虛擬現實訓練設備,Windows?當然無能為力。那都是商業的?IRIX?機器。

UNIX?是最早支持?TCP/IP?網絡協議的系統。它上面有很多可以互相協作的網絡服務程序,它們經過多年的使用和修訂,已經達到比較完善的程度。而就在1997年,微軟的比爾蓋茨還在揚?言:"Internet?是沒有前途的。"?微軟的這個"遠見卓識"大家應該都已見識,它后來加上的網絡服務程序IIS漏洞之多,讓公安部都頻頻發出警報,大家也是見識了的。

其實你知道了,Windows?沒有一樣有用的事情能比?UNIX?干的更好。

Linux?干不了的有用的事情?Windows?照樣干不了
當然?Linux?不是萬能的。它也有不能干的事情,電腦也有干不了的事情。但是?Linux干不了的事情,Windows?肯定也干不了。這些事情就是我們需要探索,需要努力的事情了。在你探索的過程中,Linux?必定是你的好伙伴。

不要把LinuxXwindow掩蓋起來!不要把我們的用戶當成傻瓜。

什么?你早就知道?Windows?是垃圾?噢!你怎么不早說呢!害我廢話這么多。嘿嘿。

"好了。你知道?Windows?是垃圾,你現在用什么?quot;

"Linux?+?Xwindow"

"那我問你,Xwindow?是什么樣的?"

"不就是跟?Windows?差不多嗎?只不過?'Start'?按鈕比較方,而且上面不是一個Windows?標志,而是一個腳丫子。點擊一下居然還有很漂亮的中文菜單。我喜歡!"

"你知道什么是'根窗口'嗎?"

"不知道。從來沒聽說過呢?"

"根窗口就是遮蓋整個屏幕的那個最大的窗口。"

"哪兒有什么窗口啊!我沒有看到呢?"

你?發現了問題嗎?這些?Linux?用戶說是在用?Linux?和?Xwindow,但是他們對?Linux和?Xwindow?幾乎完全不了解。很多人用了那么久?Xwindow?都不知道根窗口是什么東西,不知道其實按鈕也是窗口,不知道窗口管理器和其它程序有什么關系,大家都以為窗口上面的按鈕是程序自己放上去的,不知道窗口??quot;class?name""resource?name"是什么東西。他們也不知道?.Xdefaults?是用來干什么的。特別是他們很多人都不知道?Xwindow?的字體是如何命名的,什么是?fontset,有了一個新的字體也不知道怎么安裝。

他?們被遮在?Linux?之上的一層一層的包裝迷惑了,他們等待有圖形界面的工具來幫助完成一切事情,他們認為?Linux?跟?Windows?一樣,只是麻煩一點。他們知道?Linux內核很好,但是他們感覺不到?Linux?和?Xwindow?在操作層面的天生的先進性,隨后不久就把?Linux?完全刪除掉了。你發現沒有,要用戶理解?UNIX?和?Xwindow?的操作層面的先進性,才是留住用戶的最好辦法。如果用戶體會不到操作時的方便和高效,內核再好他們也不會理會。

但是?用摹仿?Windows?的作法來吸引用戶,永遠會失敗的。因為?Linux?如果摹仿Windows那一套低效率的方式,那么?Linux?的這套"低效率方式"永遠比不上Windows?的那一套"低效率方式"。那么用戶就會說:"這個?Linux,沒有一樣比的上?Windows"

Linux?天生就是繼承了?UNIX?的高效的工作方式,為什么我們要把它掩蓋起來?我們為什么只告訴用戶?KDE?的菜單怎么用?我們為什么不能像早期的?Xwindow?書籍那樣第一節就告訴用戶什么是?X?server,?什么是?X?client,什么是?Window?Manager,?什么是根窗口。第二章就告訴用戶窗口有哪些屬性,什么是?classname,?resource?name,?hint,怎樣使用?.Xdefaults,?xrdb?……

在這?里我又不得不說一下那些?Linux?的發行公司和寫書的人,他們把?Linux?Xwindow?包裝起來,卻沒有從基本上告訴用戶?Xwindow?的工作原理。很多書籍講授的層次就是在Gnome,?KDE?的菜單操作的層次,靠大量抓圖來占篇幅,"繁榮"Linux?書籍市場。

現在?很多人已經把能夠利用別人的庫寫出一個好看的程序作為自己編?程水平的象征。在這?quot;圖形化""可視化"?的年代,你如果還在用?troff,?LaTeX?寫文檔,你還在用VIM?自己編輯?HTML,用?Mutt?處理郵件,你還在用文本模式的?gdb?調試程序,你還在用Xlib?寫程序,?你還在用?tin?上?USENET,你還在自己寫?Makefile,寫機器代碼,你還在玩?Clossal?Cave?這樣的字符模式冒險游戲,那你就是老古董。

其?實這種思想是錯誤的。雖然你是一個堅決的?Linux?支持者,但是你的思想是?Windows的思想。你認為圖形界面,菜單,按鈕就可以解決一切問題,就可以給你高效方便。你還是沒能擺脫微軟給你的潛移默化的東西。你其實離不開?Windows?那樣的環境,你遲早會刪掉自己的?Linux

GUI?vs.?CLI
做一個堅定不移的"兩面派"

大家看到這個標題是不是熱血沸騰?兩派大蝦都可以圍攻我了:

GUI派用戶:"哇!我一看你這小子就是?CLI?的。要不然自己寫什么?Makefile?用什么Mutt"

CLI派用戶:"切~?你還用?X!高手都不用?X。你是?GUI?那邊的。"

可憐的我:"555~~?你們都不要我~~?GUI?和?CLI?就那么水火不容嗎?"

計?算機界這樣的門派之分還很多。很有特點的就是?CLI?和?GUI?了。CLI?(Command?LIne)的狂熱份子聲稱永遠不用?X。我上次在實驗室看到一個同學用一個?SecureCRT?登錄到Sun?機器,然后用一個?vanilla?vi?編輯程序,我建議他啟動一個?GVIM?過來顯示在Exceed?上可以有語法加亮。但是他堅決反對,說:"高手不用X。你想想,要是我在一個很慢的網絡連接怎么用?X?而且好多服務器沒有裝?X?程序。"

但是?我們實驗室的網速可夠快,Windows?機器都有?Exceed?啊,而且?Sun?機器有全套X?客戶程序包括?GVIM。他說他是?CLI?的堅決擁護者,但是他卻在用?Windows,他后來打開了好幾個?SecureCRT,每次從文本框輸入地址,用戶名和密碼,從下拉菜單選擇"SSH2",然后點擊"Connnect"。他還不斷的夸SecureCRT?"網絡管理員投票選出的最受歡迎的登錄方式"。老天,SecureCRT?本身就是個?GUI?啊,他其實沒有明白Xwindow?的好處。

你?說我是?GUI?的?我雖然很少在?console?下工作。但是我對?bash,?VIM?很熟悉,我可以讓?bash?按照我的鍵綁定方式來工作。我可以在?rxvt?里使用?Mutt?來收發?email。我的每個桌面上都常常堆放著一打不同大小的?rxvt。我用?VIM?編輯?LaTeX。我自己寫Makefile?來維護?LaTeX?文檔。我有時用?mpg321?來放?mp3。我上BBS用的我自己寫的expect?腳本。?好了,CLI?派的朋友可以收我做盟友了

你說?我是?CLI?的老古董?我的?FVWM?被我配置為可以"手寫操作",我只要畫一個"r"就可以啟動?rxvt,我只要畫一個?"U"?就可以啟動?GVIM……?我用?GVIM?語法加亮模式編輯程序,我用?Mozilla?瀏覽網頁,……?GUI?派的現在好像認我做朋友了

好了。CLI?派的朋友,雖然我很喜歡命令行,但是我有時在屏幕上左右畫一下就可以執行:

Module?FvwmConsole?-terminal?rxvt?-geometry?45x5-0+0?-bg?gold?-fg?midnightblue?-fn?"-adobe-courier-medium-r-*-*-14-*-*-*-*-*-*-*"
你是不是現在又想把我逐出師門?

GUI?派的朋友,雖然我很喜歡窗口。但是我可以在?FvwmConsole?里輸入:

All?(rxvt)?MoveToDesk
把我所有的?rxvt?移動到我現在工作的桌面。"這家伙,怎么這么快就叛變了!"

其?實何必分什么?GUI?和?CLIUNIX?和?Xwindow?都是工業標準,它們從設計那天開始就有非常靈活的用法,各個程序,不管是?GUI?還是命令行的都可以互相協作。UNIX?X?是一家,何必搞的那么偏激,非此即彼?你從我上面的行為可以看出?GUI?和?CLI的模糊界線嗎?我就是堅定不移的"兩面派"

UNIX?是簡單的--
"我相信簡單就是最好,如果太復雜,我是不能理解的。"?-Seymour?Cray

很?多第一次用?Linux?的人會驚奇的發現,Linux?的程序居然不?quot;安裝"就可以運行,程序拷貝到隨便那個目錄都可以用,而不是一定要占用你第一個分區的空間。程序的設置只是一些簡簡單單的文本文?件。你根本不需要什么"注冊表修改器"?就可以改變系統的設置。這就叫做簡單,但是簡單就是美。雖然這只是?UNIX?簡單性的一個膚淺的認識,你已經體會到了某些東西。

但是簡單并不意味著功能弱,并不意味著落后。相反,簡單意味著強大,意味著生命力。

我不會再繼續闡述我理解到的"UNIX?的簡單",因為這個需要自己去體會。

UNIX?是永恒的
有人說:"Plan9?會取代?UNIXMach?會取代?Linux?內核。"

但是你如果是一個深入體會了?UNIX?的人,你就會知道:UNIX?的思想是永恒的,不管時過境遷,Plan9?是否代替?UNIXUNIX?的靈魂都會在?Plan9?身上現形!

我?為同一個設備寫過?Linux?內核和?Windows?VxD?驅動程序。寫?Linux?驅動程序時,我對?UNIX?設計的完美的一致性,遠見性所折服。UNIX?用同樣界面的?read(),?write()系統調用就可以對不同的對象:普通文件,設備文件,管道,管道文件,socket……進行統一的讀寫操作。我跟本不需要寫一個測試用的應?用程序就可以對我的設備驅動進行測試,因為?cat,?cp,?dd,?它們也使用了同樣的?read(),?write(),設備和普通文件在應用程序眼里沒有區別。在那個還沒有?Smalltalk,?沒有?C++?的年代,UNIX?的設計者已經使用了所謂的?"面向對象方法"。對,C?語言也可以實現面向對象。

UNIX?的系統調用幾十年都沒有很大變化,這非但不是頑固,不進步的象征,反而是UNIX?的遠見卓識的體現!這就跟?TeX?程序幾十年都不變的情況差不多。這些才是真正的永恒的?master?piece!?你應該改變所有軟件都必需從?0.1,?1.0,?1.1,?1.2,?2.0,...,?3.0,?3.1,?95,?98,?2000,?XP,?...?不斷升級的想法。

Windows?就不同了,它在最開頭只是一個?DOS?之上的圖形包裝而已。后來為了兼容以前的糟糕設計,不得不加上很多累贅。我寫?VxD?驅動程序的時候就深有體會,Windows?95?程序對設備的操作只有用?DeviceIoControl,我不得不寫了兩個應用程序來對設備驅動進行測試。Windows?內核的不一致性和隱密性使我非常惱火。不過?Windows?WDM驅動程序現在也有了?ReadFile,?WriteFile……?那說明什么?那說明?Windows?在向UNIX?學習,或者有可能是某個?UNIX?設計人員在微軟打了幾天臨工,順手加了幾個UNIX?的東西進去。這樣做是沒有用的,Windows?從一開始就是非常糟糕的設計,它的歷史的包袱太沉重了,縫縫補補有什么用?它只能永遠的被?UNIX?甩在身后!

UNIX?是強大的
讓聰明人干任何他們想干的事情。

UNIX?的一個特點就是非常高的靈活性,Xwindow?也具有這種靈活性。這種靈活性體現在哪里呢?

UNIX?的程序一般都有很多參數,不管你現在用的著用不著,總有人需要某些參數。它們的行為很多都可以用配置文件來改變。比如?GNU?bash,?通常缺省的命令行輸入方式是?Emacs?方式,但是只要我編輯一個?.inputrc?文件,就可以把它變成?vi?的輸入方式,而且我還可以自己綁定鍵序列到某些操作。我可以用?shopt?來設置它的很多特點,比如是否進行通配符擴展,是否可以把一個變量當作一個目錄來cd,是否可以自動糾正某些明顯的目錄名打字錯誤?……

UNIX?程序設計的思想是提供給用戶"機制",而不限制用戶制定"政策"。這是一個重要的尊重用戶的作法。

我?們再來看看?XwindowXwindow?是一個出色的設計,它把顯示服務器和客戶程序分開。一個顯示上既可以顯示本機上的程序,也可以顯示別的機器上的?X?程序,而它們都遵守你的窗口管理器的統一指揮,它們之間可以方便的傳送剪貼版數據,各種事件?……?比如有時我的?XFree86?上會出現四個不同機器上的?XTerm,兩個不同機器上的?GVIM……?它們統一受本機上的?FVWM?指揮。

Xwindow?程序都具有很多很多命令行參數和?resource?參數。你可以隨意的在命令行或者?.Xdefaults?文件設置所有的顏色,字體,尺寸……?而且如果你用?xrdb?把?.Xdefaults?導入到根窗口,那么其它機器上沒有經過配置的同樣的程序,顯示到你的機器上的時候也會遵守同樣的外觀規定。

Xwindow?的窗口具有?Property,?也就是一些可以自己定義的共享數據(原子)。正是因為這些?Property?的存在,使得?Xwindow?具有無比強大的生命力。X?的窗口管理器和其它客戶程序之間并沒有統一的協議,但是后來出現了?ICCCM(客戶程序間通信規范),這個規范就是通過?property?定義的。現在又有人定義了一套"擴展的窗口協議(EWM?Hints)",使得Xwindow?可以具有某些?Windows?的特征,比如一個工具條程序可以告訴窗口管理器:"這個屏幕下面被我占據了24個像素的空間,你最大化程序的時候不要越過這個界線。"

一個強大的窗口管理程序比如?FVWM,它收到這樣的提示時,可以答應工具條程序的這個要求,也可以不答應。一切選擇的權力在于誰?當然是用戶了!

你想想,是不是有些?Windows?程序常常彈出一個窗口要你選擇?"Yes?or?No"?你不點擊它它就不下去。你覺不覺得你的程序在侵犯你的尊嚴?你是一個人,一個智慧的生物,怎能受到一個程序如此的待遇?

還有就是很多?Windows?程序把人當成傻瓜,而它是"智能程序"。比如,有一個程序就是喜歡把你的每句話第一個字母都變成大寫,我不說它是誰了,你遇到的時候就知道了。

如果連"一句話開頭一個字母要大寫"這么明顯的問題都需要程序幫你糾正的話,人腦還用來干什么?況且如果你故意想要不大寫的話,那就更麻煩了,我楞是沒有從它那一大堆菜單里找到怎么關閉這個愚蠢的選項。

只有符號才能完全操縱計算機。

我?們來說說很多初學?Linux?的用戶。雖然他們在用?Linux,但是他們打心眼兒里是覺得Windows?的工作方式好,他們希望?Linux?有一天能"Windows那樣"。你說:"我的鼠標一點,我菜單一拉,……?就可以完成我的操作。"?但是我要告訴你:"Linux?從來沒有摹仿?Windows,將來也不會。Linux?從誕生之日起,它的工作方式就比?Windows?的先進。

Linux?屬于能勇敢面對符號的人。只有符號才能完全操縱計算機。"

看?看優秀的?UNIX?程序,XFree86,?FVWM,?VIM,?Emacs,?proftpd,?Mutt,?wget,?tin,?...?沒有一個不是用配置文件來設置選項的。為什么這些程序沒有方便的菜單可以用來配置?難道它們的設計者就那么低能,連個圖形配置界面也寫不出來?

當?然不是。因為圖形界面配置方式的能力是極其有限的,而配置文件和程序語言的表達能力卻是無限的。用圖形界面配置這些程序的話,如果你想達到配置文件的效?果,你需要成百上千的菜單,checkbox,?radio?button,?...?到時候你根本沒辦法找到你需要修改的地方了!而各個程序的配置文件的語法都有很多相似之處,一般就是一些命令,設置一些變量,參數,……?一旦用會了一個,其它的也就容易理解了。如果你用慣了?awk,?sed,?Perl,你會覺得那才是真正的自動化啊。

鼠標雖然是很好的工具,但是它的表達能力是有限的。你不可能光用鼠標就讓電腦完全明白你的意思,它畢竟只有3個按鈕。看看我的MetaPost頁你就能體會到鼠標的這一弱點。所以我們雖然很喜歡鼠標,但是卻不能完全依賴它。

各個小程序的完美配合

這?就是UNIX最重要的特點了,它就是UNIX設計的思想。讓每個程序只具有一項專門的能力,然后讓它們合作。Xwindow也繼承了這種好傳統。這恐怕就?是Windows和其它操作系統望塵末及的地方了。UNIX?程序設計之統一,配合之完美,真使我難以置信!shell,?grep,?find,?awk,?sed,?make,?Perl,?Emacs,?vi,?tin,?Mutt,?...?它們是那么的具有一致性!你一旦學會了?sed?的正則表達式,其它程序基本上都能用了。你一旦學會了vi?和?VIM,?你會發現它的操作是那么的有規律性,似乎vi的設計者在幾十年前就已經設計好了?VIM?在今天的完美而統一的操作方式!而且vi的操作還體現在?Mutt,?tin?等很多程序中。你甚至可以把?bash?設置為?vi?的輸入方式來輸入命令行,我就是這么做的。一個程序可以調用另外一個程序來得到數據,可以把數據交給它處理后返回來,可以在自己的窗口里"嵌入"另外一個?程序。

在?Windows?和其它非?UNIX?操作系統中,這種合作是非常困難的。我曾經在Windows下使用?Perl來進行一些自動工作。但是?Windows?的文件操作,管道是如此的不穩定,程序之間基本不能合作。你別想在?Visual?Studio?窗口里面嵌入?UltraEdit?編輯器,你別想用一個?expect?腳本來控制?telnet?到水木清華BBS

Windows?的程序都是大而全,大而雜,所有的電子郵件程序都需要自己提供編輯器,自己發送和收取郵件,自己顯示郵件的附件。每一個BBS程序都提供自己的?Virtual?Terminal,?自己的通訊代碼。每一個?IDE?都自己提供編輯器,編譯器,匯編器,調試器。人們為了使用一種新的程序,需要適應所有這些它提供的界面,而不能使用自己喜歡的編輯器的鍵綁定,菜單組?織……?不能?DIY

你要?知道,最高級的電腦是定做的,自己想要什么什么CPU,什么主板,多少內存,什么硬盤,鍵盤,鼠標,顯示器都?是自己選擇的。最高級的滑板,自己想要什么牌子的版面,什么牌子的沙,什么橋,什么輪子,什么軸承,也都是自己選的。最高級的古球拍,木板,膠皮,海綿,?膠水都是可以自己選擇……?而用?Windows?程序,你得到的是大雜燴,就像你去買"品牌機",只有那么幾種配置,而且附帶很多你不需要的軟件和服務;就像你去買組裝好的滑板,你想要大一點的輪子和窄?一點的板子,但是你沒有這種選擇余地!Windows?程序就相當于最廉價,最次的滑板。但是它卻會花你更多的錢,因為一旦一個部件壞了,或者你不喜歡了,你不能另外找一個好的換掉它,你必需重新買全套配件!

而?UNIX?和?Xwindow?就是高檔的"組裝貨"。比如我用?Mutt?的時候,我可以用?VIM也可以用?pico?來編輯郵件,我可以用?ImageMagick?也可以用?xv?來顯示附件里的圖片,我可以用?lynx?把?HTML?附件轉成文本嵌入窗口中,我也可以把?HTML?附件交給Mozilla?圖形顯示。我可以讓?GnuPG?幫我把郵件進行數字簽名和加密,我也可以用其它?PGP?程序。

我想?讓?Postfix?而不是?sendmail?幫我發出郵件,我想讓?fetchmail?幫我收郵件,轉發給?postfix,然后被我自己寫的Perl過濾器處理……?這一切我都可以辦到!我可以選擇我最喜歡的專門的程序來完成專門的工作,然后把它們結合在一起,我也可以分別得到它們的好處。

學?UNIX?絕對不是浪費時間
有人告訴我:"你看我用?Windows?什么都不用學。而用?Linux,光是安裝就花了我一個星期!"

首?先,我要告訴你的是,你裝?Linux?花了一個星期,不是因為?Linux?不好裝,而是因為你已經習慣了?Windows,對?Linux?最初難以理解而已。你想一想你最初安裝Windows的時候呢?你花了多少時間搞明白什么是硬盤分區?什么是盤符?什么是目錄?你認為Windows?就是那么容易可以學會的嗎?雖然你覺得沒花時間學,但是你以前在用別人的機器的時候已經耳濡目染,自然就了解了。而且由于你想要?Linux?和?Windows?并存于硬盤上,又增加了安裝難度。而且你肯定沒有得到有經驗的?Linux?用戶的幫助,否則他們會在20分種之內幫你搞定。一個星期也太夸張了.

如果?一開始用的就是Linux就沒有這個問題。你想想如果你沒有用?過?windows,你肯定會很習慣?/etc,?/usr,?/usr/local?,...?而不是?C:,?D:,?E:,?...?是不是?如果你只用過Linux,你第一次用?windows?時恐怕也會問:"/bin?目錄哪里去了啊?"

最重要的是,你用慣了的UNIX工具,它們可以伴隨你一生,而不會那么容易變化或消失。你可以永遠不用再換另外的工具了。除非那個工具比你這個好的太多,而且可以完全模擬你現在的工具。

我?們實驗室一個60多歲的老師,用vi,?cc,?make,?...都幾十年了,他以前的經驗絕對沒有白費,而且教會了我們一批又一批的學生。vi?伴隨著?UNIX?的最初發行而誕生,直到今天還是世界上頭兩號編輯器之一!有些人的?FVWM?配置文件已經用了?10?多年,現在完全不經修改還可以用。

看看?Windows?的工具,你從?Borland?C++?換到?VC,?就必需適應新的環境:菜單不同了,顏色不同了,按鈕不同了,幫助信息不同了,熱鍵不同了,編譯器參數,調試器功能也不同了,……?那個時候恐怕花要花你很多時間去適應。當你剛剛適應了?VC,?你又要換成VJ,?PowerBuilder,?C++Builder,?...

很?多windows程序員都是這樣,開頭在dos下用Turbo?C,?然后是?Borland?C,?VC,?C++?Builder,?......不斷追趕微軟的潮流。而且微軟的SDK,?MFC,?.NET?……?什么都在不斷變化,不斷出問題,又不斷的在修改……?Windows?程序員不得不買又厚又重的?Microsoft?Press?的書籍,看了才一個月,又過時了。今天你才學會了寫?VxD,明天你就必須用WDM?了。你不得不注冊?MSDN?才能趕上?Microsoft?的步伐。很多人說:"計算機是貴族的專業。"?這就是微軟一手造成的。

這些?東西才是沒完沒了的浪費大家的時間和金錢的。這是是浪費生命!我們為什么不使用從誕生就那么一致和完美的?UNIX?你需要理解先進工具的設計理念。UNIX?的工具就像我們用的汽車,它的離合器,油門,剎車,方向盤,后視鏡,永遠都在同樣的位置。用慣了的話,你對你的汽車的每一個部件都會了如指掌,甚至你自己?都可以修車了。這難道不好嗎?

有人說:"你說我們需要了解?UNIX,難道你要開車還必須了解汽車的結構嗎?"?你去問問開車的司機,哪一個不了解汽車的結構的,那他的駕照就是混來的。你難道想要傻瓜型的"微軟牌汽車"嗎?我們來看看:

你?買的微軟牌汽車最開頭只有一個座位,每加一個座位你得向汽車公司付錢。車上的防撞氣囊不時會冒出來,說是為了你的安全。每開100英里要大修一次,每過一?年要換一次引擎。附帶的,你還必須換用由微軟汽車公司指定的石油公司提供的新型號的機油。你的車出了問題,但是法律規定,你不準私自拆開你的汽車來修理,?你必需到微軟汽車公司指定的維修點去,需要付相當多的錢才能修好一個小毛病。

最可氣的是,你每換一個型號的微軟牌汽車,它的剎車和離合器都在不同的位置,你需要重新去考駕駛執照。如果這輛汽車在途中剎車失靈,你受了重傷,你也不能狀告微軟汽車公司,因為你買來汽車之后必須簽一個合同,說"由于微軟牌汽車對你和家人造成的一切死傷,微軟概不負責。"

怎樣完全用?GNU/Linux?工作

說?了這么多?Windows?的不好。我還沒有告訴你我怎么用?Linux?處理有些必要的事情。半年以前我由于中文老是配置不好,一直是雙系統,不時需要重起到?Win2k?來處理漢字。后來我找到了?miniChinput,?XSIM?和?SCIM?輸入法。這下可以處理漢字了。而且?VIM?Emacs?對漢字支持越來越好。我的大部分文本是用?VIM?編輯的,包括程序,信件,網頁,LaTeX?論文,MetaPost?繪圖語言。

我不用?Word?這樣的程序寫論文,而是用?LaTeX,因為這是世界上效果最好,最方便的論文工具,是大多數學術雜志要求的格式。幻燈都是用?ConTeXt?做的,用起來很簡單,而且效果非常漂亮。你可以看看我的TeX介紹。

至?于繪圖,你可以用很多可視化的工具,比如?xfigdia。但是對于我來說,任何可視化的工具都不能完成某些任務,我需要一種可以精確描述圖形的語言。我找到了MetaPost。它簡單又好用,?而且效果是世界一流的。我的插圖,如果不是圖像,都是MetaPost?畫出來的。

我曾?經抱怨?mozilla-mail?經常突然消失,損壞我好幾封快要完成的信件。后來我發現mozilla?的郵件處理程序確實是不穩定的,功能又弱,有經驗的?UNIX?用戶都不用這樣的程序。Mutt?是一個非常穩定可靠的?UNIX?郵件處理程序,而且功能非常強大。我曾經為?Gnome?和?KDE?的不穩定而煩惱。現在我找到了非常強大的?FVWMKDEGnome也能和?FVWM?一起工作。雖然?Gnome?和?KDE?總體不穩定,但是某些部件程序還不錯,很多?gtk,?Qt?的程序也很不錯,它們很多都是可以獨立于這些桌面環境運行的。

Linux?有很多強大方便的工作方式是?Windows?沒有的,或者有類似的東西,但是很差勁或者用起來不方便。比如?ssh?服務,rsynccvsexpect?……

結論

我?寫這么多的目的是什么?我希望喜歡?Linux?的朋友,完全清除微軟和?Windows?灌輸在你腦子里的謬論,別再相信它們所謂的"新技術",別再追趕?Windows,因為追趕Windows?=?倒退。馬克思有一個思想很重要,"新生事物并不一定是在最近出現的。"

UNIXXwindow,?TeX?雖然都比?Windows?先出現,但是它們才是先進生產力的代表。我們要清楚的認識到什么才是真正的現代化,什么才是真正的自動化。

消?除學計算機很難的幻覺,勇敢的拿起像?bash,?FVWM,?TeX,?VIM,?Emacs,?Mutt?……這樣強大的程序,勇敢的面對符號。不要再埋怨"Linux?為什么不能像?Windows?那樣",不要再浪費時間試用這樣那樣的程序,不要再忙著升級。你需要理解?UNIX?的工作方式,因為那是大多數科學家的工作方式。Linux?可以成為你的好朋友,你需要認識它,了解它,信任它,才能完全的靠它來高效的工作。當然,在游戲機,手機,掌上電腦里,或者在用電腦來娛樂的時候,用一些?"傻瓜軟件"還是不錯的.

我希望小學,中學的計算機老師能夠提高自己的素質,在孩子們的啟蒙教育中充分利用Linux?神秘的特點,引起孩子們對數學,對符號的好奇心。誘導他們用計算機來解決世界上的有趣問題,而不要把教學的范圍局限于計算機的操作和它自身的問題。

附錄:?我用來處理日常事務的?Linux?程序
好?了好了。我知道你發現自己應該轉向?Linux,你很后悔當初為什么中了微軟的邪。但是不要著急。因為這些東西本來只是工具,它們是用來完成你的主要任務的輔助而已。你以前選錯了工具,這不?要緊。你還是擁有你自己原來的專業技能,那才是最重要的。工具的東西只有慢慢適應轉換,不能一蹴而就,否則你會感到非常沒意思,甚至放棄。

如?果你只想做一個像我這樣的普通用戶,主要目的是用?Linux?來完成自己的任務,那就可以不用系統管理員或者網絡管理員的標準來要求自己,因為當一個系統和網絡管理員確實很辛苦。這里我對實驗室的網管同學鞠一躬,謝?謝你的指點和幫助.?不用把你的機器當成網絡服務器,不用開放沒有必要的服務,設置好?ssh,?ftp?已經足夠了。這樣會省去了解很多沒必要了解的東西的時間。不用過度考慮"安全",因為?Linux?缺省已經很安全了。不過你有興趣了解更多那也無妨。

下?面給出一些推薦使用的可以處理一般事情的程序。至于你的專業上要用到的科學和工程軟件比如?Matlab,?Mathematica,?Maple,?HSpice,?Design?Compiler,?……?還有其它物理上的,化學上的,生物上的?……?都必然有?Linux?和?UNIX?的版本。當然他們很多不是免費的,不要總是覺得什么都應該免費,自由不等于免費。它們是經過很多人辛勤勞動的產物,是可靠的程序,它們物有所值。

下面列出我常用的一些?Linux?程序。一個列表里可能有很多,那是為了方便你來選擇,我列出了比較信得過的。但其實很多只有第一個是我真正在用的,我不喜歡試用程序。我不是一個合格的網絡管理員,我的服務器都只設置了我自己需要的功能,那樣可以省去我很多麻煩。

Shell:?bash。它結合了?csh?和?ksh?的優點,并且有?readline?功能,你可以隨意綁定自己的鍵盤。
編輯器:?VIM,?Emacs
程序開發:?GCC,?make,?ld,?Scheme48,?j2sdk,?Perl,?Python,?Tcl/Tk?...
論文,幻燈工具:LaTeX,?ConTeXt
繪圖工具:MetaPost。這個語言太強了,以至于我只用它了。你不熟悉的話可以用xfig,?dia?來畫一些流程圖之類的圖片。
圖?像處理:ImageMagick。其中的?import?程序可以屏幕抓圖,convert?程序可以轉換圖像格式,display?可以顯示圖片和簡單編輯(縮放,換質量,轉格式,簡單繪圖,簡單慮鏡)。通常我就這么點需要。如果你要更強大的圖像工具可以用?Gimp,?它幾乎和Photoshop差不多。
自動管理工具:make。我可以用make來自動編譯程序,自動編譯文檔,自動更新插圖……?全自動,而且不會重復勞動。
數值計算程序:SciLab。這個程序基本上可以代替?Matlab
代?數計算程序:MAXIMA。這個程序基于世界上最老的計算機代數系統之一:?由美國能源部(DOE)發行的?MIT?Macsyma?系統。它是用?Common?Lisp?實現的。很多現在的符號計算程序比如?Maple?都從?MAXIMA?身上學到很多東西。它現在經過?DOE?批準以GPL發行,永遠是一個自由軟件。
加密程序:GnuPG。我的?PGP?密鑰就是它搞出來的。
打包,壓縮程序。什么都有:?tar,?gzip,?bzip2,?zip,?rar,?...
虛擬光驅程序。Linux?不需要虛擬光驅程序,直接?mount?就行了。
ftp?服務器:proftpd,?vsftpdproftpd?功能很強,但是我只用了最簡單的一種設置。
WWW?服務器:apache(我一般沒有開)
ftp?客戶程序:lftpncftp。它們都是文本方式操作的,但是比起圖形界面的方便的多。比如?lftp?幾乎具有?bash?的所有方便功能,Tab?補全,bookmark,?queue,?后臺下載,鏡像……?Linux?也有圖形界面的?ftp?客戶程序,但是大多不穩定,有很多問題。這就是很多人抱怨?Linux?不如?Windows?的一個小原因。還有很多人用?Wine?模擬?Windows?leapftp,其實?lftp?比?leapftp?好很多,你需要的只是適應一下。
自動?下載工具:wget。它非常穩定,?有一次我下載一個程序,用?IE?和?Mozilla?下載回來的文件都是壞的,最后還是?wget?可靠的傳輸了數據。用它甚至可以鏡像整個網站,比起WebZip?這樣的?Windows?程序強多了,而且不會因為你不付錢就在下載回來的網頁里強制插入廣告。
虛擬終端:rxvt,?xterm,?gnome-terminal,?mlterm,?...
X?server:?XFree86
窗口管理器:FVWM。編譯加入了?libstroke
中文輸入:XSIM。被我修改過以適應?FVWM?的需要。另外推薦你還可以用?SCIM
email?處理:Mutt?+?Postfix?+?fetchmail
看?PDF,?PS,?DJVU?文件:Acrobat?Reader,?xpdf,?GhostScript,?gv,?djvu工具包和netscape?插件。
CAJ文檔。我從來不看CAJ之類的文檔,如果找不到PDFPS,直接去圖書館借最好。
看網頁:Mozilla,?Phoenix,?lynxMozilla-Xft?的顯示效果比IE?好很多。
英漢字典:IBM智能詞典,星際譯王。
編輯網頁:我用VIM?直接寫?HTML。你如果想要圖形方式的可以用其它的比如screem,?BlueFish
登錄其它?UNIX,?Linux?機器:openSSH,?telnet。?我喜歡用?openSSH?把其它機器的X?程序通過?ssh?加密的隧道傳到我機器上顯示。
登錄?Windows2000?server?的?display?service:?rdesktop...我有一天試了一下,不錯。后來就沒有用過了。
同步程序:rsync。我用?rsync?通過?ssh?來跟某些機器同步數據,或者做自己機器上不同目錄間的同步。
BBSrxvt(或任何一種終端)?+?telnet?+?chatbot(helloooo?機器人的程序)
QQ,?ICQ:?我沒有?QQ?或?ICQ。不過你可以用?Gaim,?它同時支持?QQ,?ICQ?和很多其它的即時通信方式。ICQ?用戶也可以用?Licq
放?錄像:MPlayer,?RealPlayerMPlayer?太好了,直接就可以放?VCD,?DVD,?divx,?wma,?wmv?...?用?Windows?的同學都很羨慕我,說?Windows?要放這個需要大堆插件。rm?最好還是用?realplayer?放,它也是免費的。
放音樂:?xmms(mp3,ogg都可以),?mpg321(mp3),?ogg123(ogg)mpg321?不如xmms管理音樂文件那么方便,但是有時我還是用?mpg321?放?mp3?作為背景音樂,因為懶得開一個xmms窗口:-)
游戲:我覺得?KDE?的那個?ksokoban(推箱子),很好玩?:-)
看?Word?文檔。請?Word?用戶把文檔全部轉為?PDF?或?PS?再給我,文檔里沒有特殊的格式干脆就用文本吧,何必那么麻煩。以前很奇怪的是,通知里本來沒有什么特殊的格式居然還要發doc附件的email。現在好?了,我們系發通知都用文本,PDF,甚至圖片了。
其它程序:還有很多我需要用而你不一定用得著的。比如,Doctor?Scheme,
Scheme48,?Scsh,?kawa...這些程序只有?Doctor?Scheme?Windows版本。還有很多幕后工作但是你一般不察覺的:xinetd,?telnetd,?sshd,?crond,?atd,?lpd,?...?他們都比?Windows?的對應者強的多,或者根本沒有對應者。

編輯:EvergreenDeng