這篇文章也不是用來比較 Linux 和 Windows 內核效率,文件系統,網路服務的。我現在是作為一個用戶而不是一個開發者來說話的,我們的討論是基於操作,應用層面的。是為了告訴大學里還不了解,或者不理解 UNIX 的科學工作者和大學生,UNIX 比 Windows 更適合用於科學研究工作,請大家理解 UNIX 的工作方式,不要用 Windows 的標準來要求 Linux,而要用一個科學工作者的標準來要求自己,用UNIX 的思想來武裝自己。
我顯然是反對在大學,特別是理工科專業推廣 Windows 的。我也反對在對"娃娃"們的計算機啟蒙教育中使用 Windows。因為 Windows 不論從技術上,經濟上,思想風格上都是與我們培養高科技人才的目標格格不入的。Windows 的流行屬於歷史遺留問題,爺爺一級的人當然已經不可救藥,但是我們不應該讓下一代繼續走上歧途。
UNIX 不是計算機專家的專利
當我建議一些非計算機專業的人用 Linux 的時候,很多人說:"UNIX 是計算機系的人用的,我們不能理解。" "UNIX 是男孩用的,我們女孩不用。"
在這個年代,恐怕沒有人需要我來介紹 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 的設計出色。
UNIX的設計者 Dennis Ritchie 說:"Unix is simple. It just takes a genius to understand its simplicity." 但是我不這麼認為,因為我不是一個天才,但是我卻勇敢的把 Windows 完全刪除掉,遇到不明白的事情的時候努力用 UNIX 的方式去解決,而不是尋求 Windows 的幫助。現在我體會到了 UNIX 的思想和好處,我可以用比 Windows 高效幾倍的效率工作。因為我相信這樣的信念:"Windows 能辦到的事 Linux 一定能辦到,而且辦的更好。"
這小節開頭的話應該改成:"Unix 是簡單的,你不需要成為一個天才或是計算機專家。但是在這個沖斥著 Windows 錯誤觀念的世界,你需要信念和勇氣才能理解它的簡單。" 我下面就告訴你一些我理解到的東西。首先,你要知道的是微軟在國際科學領域是根本沒有地位的。
你能感覺到這位科學家對微軟和 Windows 是什麼態度了吧?不是反感,而是他心裡根本沒有 Windows 這個東西!微軟在高科技領域沒有發展,那麼它怎麼生存呢?到發展中國家去發展一下,他們的人民還對電腦一無所知,我說不定甚至可以打入大學的計算機系呢。我送他們軟體,我捐錢蓋大樓,我出錢找圖靈獎獲得者來演講,讓他們覺得我們都是科學家!
好了,現在全國的大學包括清華,幾乎所有人機器必裝盜版 Win2000,Office XP,學校的選課系統是非IE不能正確瀏覽,論文用 Word 編輯,演示用ppt做,email 的通知附件是 doc 文件,你不用 Word 打不開,連 863 項目都用 VC 寫程序了。我很久以前就看到一份報紙說,"微軟為什麼不嚴厲打擊盜版?" 這篇文章說,微軟非但不打擊中國的盜版行為,而且有放任之趨勢。放長線吊大魚,"以後我要你們加倍的來還我!" 確實如此,它的目的快實現了。
微軟的軟體被這麼多人盜用,那麼人們是怎樣使用這些盜版程序的呢?先看看電腦培訓班,教的都是一些 DOS 命令,打字,Windows 基本操作,Word 文檔處理,PowerPoint,高級班可能有 Excel,Access…… 參加各種微軟認證考試,MCSE,MSDE 的人絡繹不絕。考試輔導班都貼出了"280元,考過為止"之類的字樣。考試參考資料更是昂貴,有些電腦書店整整兩書架都是"Microsoft Press"的東西。我有個同學參加認證考試,每門考試都要200多元。而且你一次考不過可以再考,又要交錢。他後來還津津樂道跟我說,看我,花了 XXXX(一個四位數)元考過了微軟認證,得到一張比爾蓋茨親筆簽名的證書和價值6000元的 Windows XP 內部發行版。
你買來微軟的程序,安裝的時候一般都有一個協議,說:"由於微軟的程序造成你的數據損壞或丟失,微軟概不負責。" 我想很多人肯定覺得這個不合理,不想按那個 "I accept"。但是你的軟體買都買來了,錢都花了,現在一按 "I decline",安裝程序馬上就會退出。你只好被迫點擊了 "I accept"!這不是不平等條約嗎?
我已經目睹了好幾個朋友的文檔被 Microsoft Word 損壞,有的是編輯了十多天的30多頁的論文,有的是費了很大工夫做出來的個人簡歷,那個朋友為此失去了到自己嚮往的P&G 工作的機會。就在他要投簡歷的前一個晚上,就在那一瞬間…… 不知道他痛哭的時候有沒有想起要投訴微軟,可是誰叫我們用的都是盜版呢,況且你還點擊了 "I accept"。
微軟仗勢已經佔有大部分PC市場,制定不符合國際標準的"微軟的標準",以不合理的方式壓制其它公司的軟體,這個問題已經在美國司法部鬧了很久了。他甚至在 Windows系列操作系統中放置能夠通過網路泄漏用戶信息的代碼,以至於 Windows 剛進入澳大利亞時被澳大利亞政府禁止使用。
有些人說:"微軟畢竟開創了一個歷史,造就了今天的 IT 行業。" 但是,如果沒有微軟,我們今天早就用上非常穩定,非常可靠,非常方便,非常"傻瓜"的軟體了!微軟是阻擋信息技術發展的罪魁禍首。
什麼是 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 的那個程序都要差很多,那麼原因有兩種可能性:
很多人很關心 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 的 N64,Namco的街機……每一個都比 Windows 遊戲精彩,每一個都有如此高的3D性能,以至於Pentium4, Itanium + GForce4 都無法與它們比美!
Linux 的用戶們都是關心解決世界的關鍵問題的份子,他們哪裡有時間用自己的機器來玩遊戲啊?他們每天用Linux高效的做完自己的工作就到陽光下享受自然去了。要玩遊戲也是玩一些類似推箱子,貪吃蛇之類的智力小遊戲。所以,你知道為什麼 Linux 幾乎沒有遊戲了吧?
"整理硬碟,優化系統"
這是一個非常有意思的話題,僅次於有關"病毒"的話題。相信很多 Windows 用戶都有整理硬碟的經歷。在很多 Windows 用戶眼裡,"硬碟用久了,會出現碎片,速度會減慢,需要一個程序來整理,整理硬碟的時候不要做其它工作",這好像是天經地義的事情。
Linux 和 UNIX 用戶似乎從來沒有"整理硬碟"這種說法呢?你覺得很奇怪嗎?如果你覺得很奇怪,那說明你的思想在某種程度上被微軟的垃圾程序禁錮了。你需要明白,UNIX 的大型主機很多必須是一天24小時,一年365又1/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 程序員不用 IDE,IDE 從來就是給初級 Windows 程序員用的。
你看看大型的 UNIX 程序,包括 Linux 內核,各種網路服務程序,Xwindow 程序在內,哪一個是 IDE 搞出來的?我們實驗室的 EDA 程序也沒有一個是 IDE 弄的,我還知道Candence, Synopsys,Mentor 的高性能的圖形界面 EDA 程序也都不是 IDE 寫的。你信不信,微軟的人在寫 Windows 本身的時候也根本不用 IDE。微軟內部程序員最喜歡的編輯器其實是 VIM,用 VIM 的微軟程序員上次向烏干達的可憐兒童捐助了1000多美元,這是值得稱讚的。
有一次某雜誌採訪一些出名的 Linux 內核程序員,包括 Linus 在內,沒有一個人用IDE,有的人用 VIM,有的用 Emacs,只有 Linus 說"GNU Emacs is evil",但是其實他用的是一種跟 Emacs 有同樣鍵綁定功能的 MicroEmacs。大家都是用編輯器編輯了程序文件,然後用 make 這樣的自動工具調用 gcc 編譯器完成編譯工作的。甚至高級的 Windows 程序員也不用 IDE,他們可以從命令行調用 cl,nmake 來編譯自己的程序。雖然這樣的 Windows 程序員很少,但是他們卻是最了解 Windows,最高明的Windows 程序員。
為什麼 UNIX 程序員不用 IDE?明白了這個道理你就能體會到 UNIX 的設計思想了。首先,一個 IDE 集成了編輯器,編譯器,彙編器,調試器,跟蹤器…… 這個編輯器功能肯定比不上 VIM 或 Emacs,編譯器比不上 GCC,彙編器比不上 as,調試器比不上 gdb,ddd, 跟蹤器比不上 strace, ltrace, truss。你得到的是一套整合的低能的程序。如果你對調試器的功能不滿意,你只好換用另外一套 IDE,但是這套 IDE 的熱鍵,菜單,編輯器功能,按鈕…… 跟原來那個有很大不同。你不得不花很多時間來熟悉新的環境,而不能保持原來的某些東西。
而在 UNIX 下就不一樣了。你可以用你最喜歡的 VIM 編輯程序,你在 VIM 里可以調用GNU make,make 可以調用 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 機器做的。
當然 Linux 不是萬能的。它也有不能幹的事情,電腦也有幹不了的事情。但是 Linux幹不了的事情,Windows 肯定也幹不了。這些事情就是我們需要探索,需要努力的事情了。在你探索的過程中,Linux 必定是你的好夥伴。
不要把Linux和Xwindow掩蓋起來!不要把我們的用戶當成傻瓜。
什麼?你早就知道 Windows 是垃圾?噢!你怎麼不早說呢!害我廢話這麼多。嘿嘿。
"好了。你知道 Windows 是垃圾,你現在用什麼?"
"Linux + Xwindow"
"那我問你,Xwindow 是什麼樣的?"
"不就是跟 Windows 差不多嗎?只不過 'Start' 按鈕比較方,而且上面不是一個Windows 標誌,而是一個腳丫子。點擊一下居然還有很漂亮的中文菜單。我喜歡!"
"你知道什麼是'根窗口'嗎?"
"不知道。從來沒聽說過呢?"
"根窗口就是遮蓋整個屏幕的那個最大的窗口。"
"哪兒有什麼窗口啊!我沒有看到呢?"
你發現了問題嗎?這些 Linux 用戶說是在用 Linux 和 Xwindow,但是他們對 Linux和 Xwindow 幾乎完全不了解。很多人用了那麼久 Xwindow 都不知道根窗口是什麼東西,不知道其實按鈕也是窗口,不知道窗口管理器和其它程序有什麼關係,大家都以為窗口上面的按鈕是程序自己放上去的,不知道窗口 "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 書籍市場。
我們來說說很多初學 Linux 的用戶。雖然他們在用 Linux,但是他們打心眼兒里是覺得Windows 的工作方式好,他們希望 Linux 有一天能"像Windows那樣"。你說:"我的滑鼠一點,我菜單一拉,…… 就可以完成我的操作。" 但是我要告訴你:"Linux 從來沒有摹仿 Windows,將來也不會。Linux 從誕生之日起,它的工作方式就比 Windows 的先進。
這就是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 程序。
有人告訴我:"你看我用 Windows 什麼都不用學。而用 Linux,光是安裝就花了我一個星期!"
首先,我要告訴你的是,你裝 Linux 花了一個星期,不是因為 Linux 不好裝,而是因為你已經習慣了 Windows,對 Linux 最初難以理解而已。你想一想你最初安裝Windows的時候呢?你花了多少時間搞明白什麼是硬碟分區?什麼是盤符?什麼是目錄?你認為Windows 就是那麼容易可以學會的嗎?雖然你覺得沒花時間學,但是你以前在用別人的機器的時候已經耳濡目染,自然就了解了。而且由於你想要 Linux 和 Windows 並存於硬碟上,又增加了安裝難度。而且你肯定沒有得到有經驗的 Linux 用戶的幫助,否則他們會在20分種之內幫你搞定。一個星期也太誇張了.
說了這麼多 Windows 的不好。我還沒有告訴你我怎麼用 Linux 處理有些必要的事情。半年以前我由於中文老是配置不好,一直是雙系統,不時需要重起到 Win2k 來處理漢字。後來我找到了 miniChinput, XSIM 和 SCIM 輸入法。這下可以處理漢字了。而且 VIM 和Emacs 對漢字支持越來越好。我的大部分文本是用 VIM 編輯的,包括程序,信件,網頁,LaTeX 論文,MetaPost 繪圖語言。
我不用 Word 這樣的程序寫論文,而是用 LaTeX,因為這是世界上效果最好,最方便的論文工具,是大多數學術雜誌要求的格式。幻燈都是用 ConTeXt 做的,用起來很簡單,而且效果非常漂亮。你可以看看我的TeX介紹。
如果你只想做一個像我這樣的普通用戶,主要目的是用 Linux 來完成自己的任務,那就可以不用系統管理員或者網路管理員的標準來要求自己,因為當一個系統和網路管理員確實很辛苦。這裡我對實驗室的網管同學鞠一躬,謝謝你的指點和幫助. 不用把你的機器當成網路伺服器,不用開放沒有必要的服務,設置好 ssh, ftp 已經足夠了。這樣會省去了解很多沒必要了解的東西的時間。不用過度考慮"安全",因為 Linux 預設已經很安全了。不過你有興趣了解更多那也無妨。
代數計算程序:MAXIMA。這個程序基於世界上最老的計算機代數系統之一: 由美國能源部(DOE)發行的 MIT Macsyma 系統。它是用 Common Lisp 實現的。很多現在的符號計算程序比如 Maple 都從 MAXIMA 身上學到很多東西。它現在經過 DOE 批准以GPL發行,永遠是一個自由軟體。
幾乎所有人都承認,那篇文章很偏激。當時的情況是這樣,我用 Linux 的時候被一個同學鄙視了,說:"你怎麼用像 DOS 一樣落後的東西,真土!看我漂亮的 Win2000..." 這跟當面嘲笑別人老婆或者媽媽有什麼區別?我義憤填膺啊,就幾乎跟他吵起來。然後就寫出了這篇文章放在主頁上,叫了幾個人來看。接著我珍愛的 TeX 又受到眾人鄙視,於是我又寫了一篇文章打擊 Word,然後把 TeX 捧上了天。道理很簡單,鄙視我喜歡的東西的人就是敵人 --邪教徒或者恐怖分子--他支持的我就反對,他反對的我就支持。為了使人信服,舉例必用大科學家,世界一流大學,一流實驗室的名號,雖然我不跟其中任何一種沾邊。還好那時候我還不認識上帝,要不就打他的名字了。論據不管是實際經歷還是自己推測的,先寫上去再說。揚眉吐氣啊!隔壁微軟研究院的哥們居然都被我打動了,開始寫 Linux 程序,學用 LaTeX 和 Emacs。不過幾天之後我就把它刪掉了,因為我自己都感覺到偏激。
於是就沒管那篇文章了。可是沒想到它竟然已經被轉載到那麼多地方,似乎引起不小的波瀾。有段時間每天都收到十幾封email,國內的,國外的,問技術問題的,誇我的,罵我的,講道理的,鄙視我的,想交朋友的,語重心長的,號稱要刪掉機器上的 Windows 的…… 我的主頁居然也佔據了"王垠"在 Google 上的首選位置,把那個日本的什麼王公貴族"李王垠殿下"都擠下去了。大家似乎都知道我天花亂墜的本事了,有人就想找我寫文章向別人推薦商業軟體,我很後悔沒有趁機狠狠賺一筆。走到圖書館,亮出借書證,管理員張大了嘴說:"哇!你就是那個 Linux 牛人啊!",也不知道他是褒是貶。甚至有人把他的 BBS 昵稱都改成了"堅決擁護精神領袖花生" (花生是我的外號)。為此還騙到了好幾頓報告"報告"是清華專用動詞,意思是請客吃飯)。雖然我覺得自己身上沒有什麼值得自豪的東西,但是又有點為自己興風作浪的本事感到驚訝。雖然我一再告誡自己要謙虛,但是不由的有一種毛澤東,甘地,甚至摩西的感覺。我更加體會到"網路上沒有人知道你是一頭豬"的真理性。其實,不但網路上沒有人知道我是一頭豬,實際生活中也沒有人知道,其實我是一頭笨豬。
這麼長的時間之後,還有人寫信給我說"深受鼓舞","提壺灌頂","對不起我還在用 Windows 給你寫信","真想刪掉Windows 啊" …… 我很好奇,我的文章真的有那麼大的威力?我再看這篇文章,覺得有點慘不忍睹,看了開頭就不忍心再看下去。我告訴同學我很後悔寫了一篇這麼偏激的文章,可是他"徼枉必須過正,你沒有錯",所以我也搞不清楚自己這樣寫對不對,這樣自責對不對。就像我從來不敢看自己照片,卻有時被人稱為帥哥,就讓我無法判斷自己是否帥一樣。所以現在我就開始懷疑我自己是否真是一頭笨豬。也許多年以後,我會正確的評價我的想法。就像我現在覺得我15歲的照片挺養眼一樣,也許我會發現自己其實是一頭聰明豬?