欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      完全用Linux工作,擯棄[小編推薦]

      時間:2019-05-12 08:04:34下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《完全用Linux工作,擯棄[小編推薦]》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《完全用Linux工作,擯棄[小編推薦]》。

      第一篇:完全用Linux工作,擯棄[小編推薦]

      完全用Linux工作,擯棄Windows

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

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

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

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

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

      UNIX 不是計算機專家的專利

      當我建議一些非計算機專業(yè)的人用 Linux 的時候,很多人說:“UNIX 是計算機系的人用的,我們不能理解。” “UNIX 是男孩用的,我們女孩不用?!?/p>

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

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

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

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

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

      那為什么我還要寫一篇這樣的文章?因為,我發(fā)現還有很多人不不理解 Linux 和

      UNIX,雖然他們也在用它,但是他們有時會問:”為什么 Linux 不能像 Windows 那樣 ……?“,”怎么Redhat Linux不能 mount NTFS 分區(qū)!“,”Linux 下用什么整理硬盤?“,”什么時候OpenOffice才能完全兼容Word文件?。俊?,”現在還有什么Windows能干的事情Linux干不了的?“……

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

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

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

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

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

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

      微軟的地位

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

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

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

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

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

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

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

      微軟的軟件被這么多人盜用,那么人們是怎樣使用這些盜版程序的呢?先看看電腦培訓班,教的都是一些 DOS 命令,打字,Windows 基本操作,Word 文檔處理,PowerPoint,高級班可能有 Excel,Access…… 參加各種微軟認證考試,MCSE,MSDE 的人絡繹不絕??荚囕o導班都貼出了”280元,考過為止“之類的字樣??荚噮⒖假Y料更是昂貴,有些電腦書店整整兩書架都是”Microsoft Press“的東西。我有個同學參加認證考試,每門考試都要200

      多元。而且你一次考不過可以再考,又要交錢。他后來還津津樂道跟我說,看我,花了XXXX(一個四位數)元考過了微軟認證,得到一張比爾蓋茨親筆簽名的證書和價值6000元的 Windows XP 內部發(fā)行版。

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

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

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

      發(fā)達國家的計算機教育

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

      他是那么的不厭其煩,我的每一個問題他都詳細的回答。我有時都覺得過于詳細了,怎

      么這么耐心?。课矣X得他似乎是我的高中老師。他是什么樣的人呢?我好奇的打聽了他的情況。原來,他是丹麥一所普通高中的計算機老師。

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

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

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

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

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

      可是你現在還是不能干正事?。∧阆胍粋€ Word, PowerPoint?那就買一套 Office XP 吧,一起買便宜些,$459.90。

      那些程序不會用?。∧切┎藛卧趺丛O置,到底有什么功能???看“幫助”也學不會。買本書看看吧,我推薦“Special Edition Using Microsoft Office XP”,不貴,$27.99。這本書里面大部分是屏幕抓圖,還是買一本舊的比較劃算,$17.85。

      你如果只是當個秘書,上面的差不多還湊合了??墒悄阌懈叩淖非?,你想成為 Windows程序員。首先買一個 Visual Studio.NET 吧,要不然怎么編譯程序。$494.95。

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

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

      為什么要反對使用 Windows

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

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

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

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

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

      有些人說:“微軟畢竟開創(chuàng)了一個歷史,造就了今天的 IT 行業(yè)?!?但是,如果沒有微軟,我們今天早就用上非常穩(wěn)定,非??煽?,非常方便,非?!吧倒稀钡能浖?!微軟是阻擋信息技術發(fā)展的罪魁禍首。

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

      什么是 Windows 能干而 Linux 干不了的事情?---“Windows 能干而 Linux 干不了的事情,那就是不需要干的事情?!?/p>

      有個朋友看我半年沒有用 Windows,有時就會問我:“你只用 Linux,有沒有發(fā)現有些

      Windows 能處理的事情 Linux 干不了?”,我回答說:“Windows 能干而 Linux 干不了的事情,那就是不需要干的事情?!?/p>

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

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

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

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

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

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

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

      顯然不是這樣。你看看那些高水平的學術雜志,論文,那些大學教授的網頁,那些漂亮的幻燈片,它們是什么做的?原來 UNIX 用戶早就有非常方便的 troff, LaTeX, SGML等東

      西可以處理文檔,而且它們比起 Word 都要高明的多。Word 顯然被這些大拿忽略了,以至于很久以來沒有人想在 Linux 下開發(fā)一個類似 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 的用戶們都是關心解決世界的關鍵問題的份子,他們哪里有時間用自己的機器來玩游戲?。克麄兠刻煊肔inux高效的做完自己的工作就到陽光下享受自然去了。要玩游戲也是玩一些類似推箱子,貪吃蛇之類的智力小游戲。所以,你知道為什么 Linux 幾乎沒有游戲了吧?

      “整理硬盤,優(yōu)化系統”

      這是一個非常有意思的話題,僅次于有關“病毒”的話題。相信很多 Windows 用戶都有

      整理硬盤的經歷。在很多 Windows 用戶眼里,“硬盤用久了,會出現碎片,速度會減慢,需要一個程序來整理,整理硬盤的時候不要做其它工作”,這好像是天經地義的事情。

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

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

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

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

      IDE

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

      高明的 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 的熱鍵,菜單,編輯器功能,按鈕…… 跟原來那個有很大不同。你不得不花很多時間來熟悉新的環(huán)境,而不能保持原來的某些東西。

      而在 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 的有什么區(qū)別嗎?

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

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

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

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

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

      Linux 干不了的有用的事情 Windows 照樣干不了

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

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

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

      ”好了。你知道 Windows 是垃圾,你現在用什么?“

      ”Linux + Xwindow“

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

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

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

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

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

      ”哪兒有什么窗口??!我沒有看到呢?“

      你發(fā)現了問題嗎?這些 Linux 用戶說是在用 Linux 和 Xwindow,但是他們對 Linux和 Xwindow 幾乎完全不了解。很多人用了那么久 Xwindow 都不知道根窗口是什么東西,不知道其實按鈕也是窗口,不知道窗口管理器和其它程序有什么關系,大家都以為窗口上面的按鈕是程序自己放上去的,不知道窗口”class name“,”resource name“是什么東西。他們

      也不知道.Xdefaults 是用來干什么的。特別是他們很多人都不知道 Xwindow 的字體是如何命名的,什么是 fontset,有了一個新的字體也不知道怎么安裝。

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

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

      Linux 天生就是繼承了 UNIX 的高效的工作方式,為什么我們要把它掩蓋起來?我們?yōu)槭裁粗桓嬖V用戶 KDE 的菜單怎么用?我們?yōu)槭裁床荒芟裨缙诘?Xwindow 書籍那樣第一節(jié)就告訴用戶什么是 X server, 什么是 X client,什么是 Window Manager, 什么是根窗口。第二章就告訴用戶窗口有哪些屬性,什么是 classname, resource name, hint,怎樣使用.Xdefaults, xrdb ……

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

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

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

      GUI vs.CLI

      做一個堅定不移的”兩面派“

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

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

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

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

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

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

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

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

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

      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 和 CLI,UNIX 和 Xwindow 都是工業(yè)標準,它們從設計那天開始就有非常靈活的用法,各個程序,不管是 GUI 還是命令行的都可以互相協作。UNIX 和X 是一家,何必搞的那么偏激,非此即彼?你從我上面的行為可以看出 GUI 和 CLI的模糊界線嗎?我就是堅定不移的”兩面派“。

      UNIX 是簡單的

      ”我相信簡單就是最好,如果太復雜,我是不能理解的?!?Seymour Cray

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

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

      我不會再繼續(xù)闡述我理解到的”UNIX 的簡單“,因為這個需要自己去體會。

      UNIX 是永恒的

      有人說:”Plan9 會取代 UNIX,Mach 會取代 Linux 內核?!?/p>

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

      我為同一個設備寫過 Linux 內核和 Windows VxD 驅動程序。寫 Linux 驅動程序時,我對 UNIX 設計的完美的一致性,遠見性所折服。UNIX 用同樣界面的 read(), write()系統調用就可以對不同的對象:普通文件,設備文件,管道,管道文件,socket,……進行統一的讀寫操作。我跟本不需要寫一個測試用的應用程序就可以對我的設備驅動進行測試,因為 cat, cp, dd, 它們也使用了同樣的 read(), write(),設備和普通文件在應用程序眼里沒有區(qū)別。在那個還沒有 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 程序設計的思想是提供給用戶”機制“,而不限制用戶制定”政策“。這是一個重要的尊重用戶的作法。

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

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

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

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

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

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

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

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

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

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

      看看優(yōu)秀的 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, 你會發(fā)現它的操作是那么的有規(guī)律性,似乎vi的設計者在幾十年前就已經設計好了 VIM 在今天的完美而統一的操作方式!而且vi的操作還體現在 Mutt, tin 等很多程序中。你甚至可以把 bash 設置為 vi 的輸入方式來輸入命令行,我就是這么做的。一個程序可以調用另外一個程序來得到數據,可以把數據交給它處理后返回來,可以在自己的窗口里”嵌入“另外一個程序。

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

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

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

      而 UNIX 和 Xwindow 就是高檔的”組裝貨“。比如我用 Mutt 的時候,我可以用 VIM也可以用 pico 來編輯郵件,我可以用 ImageMagick 也可以用 xv 來顯示附件里的圖片,我可以用 lynx 把 HTML 附件轉成文本嵌入窗口中,我也可以把 HTML 附件交給Mozilla

      圖形顯示。我可以讓 GnuPG 幫我把郵件進行數字簽名和加密,我也可以用其它 PGP 程序。

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

      學 UNIX 絕對不是浪費時間

      有人告訴我:”你看我用 Windows 什么都不用學。而用 Linux,光是安裝就花了我一個星期!“

      首先,我要告訴你的是,你裝 Linux 花了一個星期,不是因為 Linux 不好裝,而是因為你已經習慣了 Windows,對 Linux 最初難以理解而已。你想一想你最初安裝Windows的時候呢?你花了多少時間搞明白什么是硬盤分區(qū)?什么是盤符?什么是目錄?你認為Windows 就是那么容易可以學會的嗎?雖然你覺得沒花時間學,但是你以前在用別人的機器的時候已經耳濡目染,自然就了解了。而且由于你想要 Linux 和 Windows 并存于硬盤上,又增加了安裝難度。而且你肯定沒有得到有經驗的 Linux 用戶的幫助,否則他們會在20分種之內幫你搞定。一個星期也太夸張了.如果一開始用的就是Linux就沒有這個問題。你想想如果你沒有用過 windows,你肯定會很習慣 /etc, /usr, /usr/local ,...而不是 C:, D:, E:,...是不是?如果你只用過Linux,你第一次用 windows 時恐怕也會問:”/bin 目錄哪里去了???“

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

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

      看看 Windows 的工具,你從 Borland C++ 換到 VC, 就必需適應新的環(huán)境:菜單不同了,顏色不同了,按鈕不同了,幫助信息不同了,熱鍵不同了,編譯器參數,調試器功能也不同了,…… 那個時候恐怕花要花你很多時間去適應。當你剛剛適應了 VC, 你又要換成VJ, PowerBuilder, C++Builder,...很多windows程序員都是這樣,開頭在dos下用Turbo C, 然后是 Borland C, VC, C++ Builder,......不斷追趕微軟的潮流。而且微軟的SDK, MFC,.NET …… 什么都在不斷變化,不斷出問題,又不斷的在修改…… Windows 程序員不得不買又厚又重的 Microsoft Press 的書籍,看了才一個月,又過時了。今天你才學會了寫 VxD,明天你就必須用WDM 了。你不得不注冊 MSDN 才能趕上 Microsoft 的步伐。很多人說:”計算機是貴族的專業(yè)?!?這就是微軟一手造成的。

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

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

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

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

      怎樣完全用 GNU/Linux 工作

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

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

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

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

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

      結論

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

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

      消除學計算機很難的幻覺,勇敢的拿起像 bash, FVWM, TeX, VIM, Emacs, Mutt ……這樣強大的程序,勇敢的面對符號。不要再埋怨”Linux 為什么不能像 Windows 那樣“,不要再浪費時間試用這樣那樣的程序,不要再忙著升級。你需要理解 UNIX 的工作方式,因為那是大多數科學家的工作方式。Linux 可以成為你的好朋友,你需要認識它,了解它,信任它,才能完全的靠它來高效的工作。當然,在游戲機,手機,掌上電腦里,或者在用電腦來娛樂的時候,用一些”傻瓜軟件“還是不錯的.我希望小學,中學的計算機老師能夠提高自己的素質,在孩子們的啟蒙教育中充分利用Linux 神秘的特點,引起孩子們對數學,對符號的好奇心。誘導他們用計算機來解決世界上的有趣問題,而不要把教學的范圍局限于計算機的操作和它自身的問題。

      附錄: 我用來處理日常事務的 Linux 程序

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

      如果你只想做一個像我這樣的普通用戶,主要目的是用 Linux 來完成自己的任務,那就可以不用系統管理員或者網絡管理員的標準來要求自己,因為當一個系統和網絡管理員確實

      很辛苦。這里我對實驗室的網管同學鞠一躬,謝謝你的指點和幫助.不用把你的機器當成網絡服務器,不用開放沒有必要的服務,設置好 ssh, ftp 已經足夠了。這樣會省去了解很多沒必要了解的東西的時間。不用過度考慮”安全“,因為 Linux 缺省已經很安全了。不過你有興趣了解更多那也無妨。

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

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

      Shell: bash。它結合了 csh 和 ksh 的優(yōu)點,并且有 readline 功能,你可以隨意綁定自己的鍵盤。

      編輯器: VIM, Emacs。

      程序開發(fā): 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)發(fā)行的 MIT Macsyma 系統。它是用 Common Lisp 實現的。很多現在的符號計

      算程序比如 Maple 都從 MAXIMA 身上學到很多東西。它現在經過 DOE 批準以GPL發(fā)行,永遠是一個自由軟件。

      加密程序:GnuPG。我的 PGP 密鑰就是它搞出來的。

      打包,壓縮程序。什么都有: tar, gzip, bzip2, zip, rar,...虛擬光驅程序。Linux 不需要虛擬光驅程序,直接 mount 就行了。

      ftp 服務器:proftpd, vsftpd。proftpd 功能很強,但是我只用了最簡單的一種設置。

      WWW 服務器:apache。(我一般沒有開)

      ftp 客戶程序:lftp,ncftp。它們都是文本方式操作的,但是比起圖形界面的方便的多。比如 lftp 幾乎具有 bash 的所有方便功能,Tab 補全,bookmark, queue, 后臺下載,鏡像…… Linux 也有圖形界面的 ftp 客戶程序,但是大多不穩(wěn)定,有很多問題。這就是很多人抱怨 Linux 不如 Windows 的一個小原因。還有很多人用 Wine 模擬 Windows 的leapftp,其實 lftp 比 leapftp 好很多,你需要的只是適應一下。

      自動下載工具:wget。它非常穩(wěn)定,有一次我下載一個程序,用 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之類的文檔,如果找不到PDF或PS,直接去圖書館借最好。

      看網頁:Mozilla, Phoenix, lynx。Mozilla-Xft 的顯示效果比IE 好很多。

      英漢字典:IBM智能詞典,星際譯王。

      編輯網頁:我用VIM 直接寫 HTML。你如果想要圖形方式的可以用其它的比如screem, BlueFish。

      登錄其它 UNIX, Linux 機器:openSSH, telnet。我喜歡用 openSSH 把其它機器的X 程序通過 ssh 加密的隧道傳到我機器上顯示。

      登錄 Windows2000 server 的 display service: rdesktop,...我有一天試了一下,不錯。后來就沒有用過了。

      同步程序:rsync。我用 rsync 通過 ssh 來跟某些機器同步數據,或者做自己機器上不同目錄間的同步。

      上BBS:rxvt(或任何一種終端)+ telnet + chatbot(helloooo 機器人的程序)

      QQ, ICQ: 我沒有 QQ 或 ICQ。不過你可以用 Gaim, 它同時支持 QQ, ICQ 和很多其它的即時通信方式。ICQ 用戶也可以用 Licq。

      放錄像:MPlayer, RealPlayer。MPlayer 太好了,直接就可以放 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 再給我,文檔里沒有特殊的格式干脆就用文本吧,何必那么麻煩。以前很奇怪的是,通知里本來沒有什么特殊的格式居然還要發(fā)doc附件的email。現在好了,我們系發(fā)通知都用文本,PDF,甚至圖片了。

      其它程序:還有很多我需要用而你不一定用得著的。比如,Doctor Scheme,Scheme48, Scsh, kawa...這些程序只有 Doctor Scheme 有Windows版本。還有很多幕后工作但是你一般不察覺的:xinetd, telnetd, sshd, crond, atd, lpd,...他們都比 Windows 的對應者強的多,或者根本沒有對應者。

      附:

      寫給支持和反對《完全用Linux工作》的人們

      作者:王垠

      在一陣陣唾罵和歡呼聲中,《完全用linux工作》被轉載到了天涯海角。很多人支持我,也有很多人唾罵我。我不知道它是怎樣流傳到那么多地方,其實我不知道它都被轉到哪里去了…… 我知道現在這篇文章又會羅里羅索寫很長(因為我計劃寫這樣一個東西已經很久了,坐在Emacs前面總是有一種巫師在煉丹的感覺……),所以先提出中心思想吧。中心思想就是:

      我只是一個傻瓜。看《完全用Linux 工作》的時候請用你們自己的判斷力。

      幾乎所有人都承認,那篇文章很偏激。當時的情況是這樣,我用 Linux 的時候被一個同學鄙視了,說:”你怎么用像 DOS 一樣落后的東西,真土!看我漂亮的 Win2000...“ 這跟當面嘲笑別人老婆或者媽媽有什么區(qū)別?我義憤填膺啊,就幾乎跟他吵起來。然后就寫出了這篇文章放在主頁上,叫了幾個人來看。接著我珍愛的 TeX 又受到眾人鄙視,于是我又寫了一篇文章打擊 Word,然后把 TeX 捧上了天。道理很簡單,鄙視我喜歡的東西的人就是敵人--邪教徒或者恐怖分子--他支持的我就反對,他反對的我就支持。為了使人信服,舉例必用大科學家,世界一流大學,一流實驗室的名號,雖然我不跟其中任何一種沾邊。還好那時候我還不認識上帝,要不就打他的名字了。論據不管是實際經歷還是自己推測的,先寫上去再說。揚眉吐氣??!隔壁微軟研究院的哥們居然都被我打動了,開始寫 Linux 程序,學用 LaTeX 和 Emacs。不過幾天之后我就把它刪掉了,因為我自己都感覺到偏激。

      于是就沒管那篇文章了。可是沒想到它竟然已經被轉載到那么多地方,似乎引起不小的波瀾。有段時間每天都收到十幾封email,國內的,國外的,問技術問題的,夸我的,罵我的,講道理的,鄙視我的,想交朋友的,語重心長的,號稱要刪掉機器上的 Windows 的…… 我的主頁居然也占據了”王垠“在 Google 上的首選位置,把那個日本的什么王公貴族”李王垠殿下“都擠下去了。大家似乎都知道我天花亂墜的本事了,有人就想找我寫文章向別人推薦商業(yè)軟件,我很后悔沒有趁機狠狠賺一筆。走到圖書館,亮出借書證,管理員張大了嘴說:”哇!你就是那個 Linux 牛人??!“,也不知道他是褒是貶。甚至有人把他的 BBS 昵稱都改成了”堅決擁護精神領袖花生“(花生是我的外號)。為此還騙到了好幾頓報告”報告“是清華專用動詞,意思是請客吃飯)。雖然我覺得自己身上沒有什么值得自豪的東西,但是又有點為自己興風作浪的本事感到驚訝。雖然我一再告誡自己要謙虛,但是不由的有一種毛澤東,甘地,甚至摩西的感覺。我更加體會到”網絡上沒有人知道你是一頭豬“的真理性。其實,不但網絡上沒有人知道我是一頭豬,實際生活中也沒有人知道,其實我是一頭笨豬。

      這么長的時間之后,還有人寫信給我說”深受鼓舞“,”提壺灌頂“,”對不起我還在用

      Windows 給你寫信“,”真想刪掉Windows 啊“ …… 我很好奇,我的文章真的有那么大的威力?我再看這篇文章,覺得有點慘不忍睹,看了開頭就不忍心再看下去。我告訴同學我很后悔寫了一篇這么偏激的文章,可是他”徼枉必須過正,你沒有錯",所以我也搞不清楚自己這樣寫對不對,這樣自責對不對。就像我從來不敢看自己照片,卻有時被人稱為帥哥,就讓我無法判斷自己是否帥一樣。所以現在我就開始懷疑我自己是否真是一頭笨豬。也許多年以后,我會正確的評價我的想法。就像我現在覺得我15歲的照片挺養(yǎng)眼一樣,也許我會發(fā)現自己其實是一頭聰明豬?

      寫這篇文章不是為了讓自己免得被罵,也不是為了顯示高深的豬的哲理。只是因為我深深的感到人應該有自己的判斷力,不要簡單的接受別人說的 DO's 和 DONT's。懷疑一切,同時又敞開心扉去了解一切。

      看過《完全用Linux工作》的朋友,請仔細檢查里面的 DO's 和 DONT's。

      第二篇:清華申請退學博士作品-完全用Linux工作

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

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

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

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

      UNIX 不是計算機專家的專利

      當我建議一些非計算機專業(yè)的人用 Linux 的時候,很多人說:“UNIX 是計算機系的人用的,我們不能理解。” “UNIX 是男孩用的,我們女孩不用?!?/p>

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

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

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

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

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

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

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

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

      你要體會什么叫做”設計“,一個糟糕的設計并不是到后來縫縫補補就可以變好的,而一個出色的設計,不但可以以不變應萬變,而且可以影響到后來者。一個出色的設計配上一個出色的實現,那就是非常出色的發(fā)明。Linux 就是這樣的一個出色的發(fā)明。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 一定能辦到,而且辦的更好?!?/p>

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

      微軟的地位

      微軟的名聲在歐洲和美國的大學里,特別是在計算機系里之壞,大家可能有所耳聞。我認識的 MIT,Stanford 的教授,貝爾實驗室的專家,甚至一個歐洲小國的高中計算機老師都絕口不提微軟的名字。在他們眼里,微軟只是一個沒有真技術,??吭诼浜髧疑虡I(yè)宣傳和壟斷 經營的小公司。這個”小“并不是說它人少,錢少,而是說它先進技術少。

      我上次和王益合作寫了一個算法演示程序,那個算法是貝爾實驗室一位科學家Steven Fortune很天才的發(fā)明,為了程序能夠被身邊大多數人使用,我們選擇了 VC+MFC 作為平臺。我在分析算法時還得到 Fortune 很熱情的鼓勵,寄給我一份資料,還多次回信耐心的給我講解了很多細節(jié)。但是程序完成之后,我把樣品發(fā)給 Fortune,他回信說:”對不起。我機器上沒有

      MFC?!?話說的很客氣,但是我已經感覺到了他對 Windows的不屑。然后我把 MFC 靜態(tài)編譯進程序再發(fā)給他,他就沒有再回信了。他顯然不是瞧不起我,而是確實有難處。你能感覺到這位科學家對微軟和 Windows 是什么態(tài)度了吧?不是反感,而是他心里根本沒有 Windows 這個東西!微軟在高 科技領域沒有發(fā)展,那么它怎么生存呢?到發(fā)展中國家去發(fā)展一下,他們的人民還對電腦一無所知,我說不定甚至可以打入大學的計算機系呢。我送他們軟件,我捐 錢蓋大樓,我出錢找圖靈獎獲得者來演講,讓他們覺得我們都是科學家!

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

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

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

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

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

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

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

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

      發(fā)達國家的計算機教育

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

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

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

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

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

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

      花了如此多錢買來的操作系統就能用了嗎?它竟然連壓縮程序都沒有提供!你裝上Windows 之后一般第一件事就是去下載一個 WinZip 吧,“只要 29 美元”。Windows會中病毒啊,馬上花 70 美元買一個 Norton AntiVirus 吧。還有黑客呢?再買一個Norton Internet Security 好了,100 美元。系統需要優(yōu)化,磁盤需要整理,買一個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

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

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

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

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

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

      有些人說:“微軟畢竟開創(chuàng)了一個歷史,造就了今天的 IT 行業(yè)?!钡?,如果沒有微軟,我們今天早就用上非常穩(wěn)定,非常可靠,非常方便,非?!吧倒稀钡能浖耍∥④浭亲钃跣畔⒓夹g發(fā)展的罪魁禍首。

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

      什么是 Windows 能干而 Linux 干不了的事情?---

      “Windows 能干而 Linux 干不了的事情,那就是不需要干的事情?!?/p>

      有個朋友看我半年沒有用 Windows,有時就會問我:“你只用 Linux,有沒有發(fā)現有些Windows 能處理的事情 Linux 干不了?”---我回答說:“Windows 能干而 Linux 干不了的事情,那就是不需要干的事情?!?/p>

      Windows 能做的有益的事情 Linux 都能做---

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

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

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

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

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

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

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

      顯然不是這樣。你看看那些高水平的學術雜志,論文,那些大學教授的網頁,那些漂亮的幻燈片,它們是什么做的?原來 UNIX 用戶早就有非常方便的 troff, LaTeX, SGML等東西可以處理文檔,而且它們比起 Word 都要高明的多。Word 顯然被這些大拿忽略了,以至于很久以來沒有人想在 Linux 下開發(fā)一個類似 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 幾乎沒有游戲了吧?

      “整理硬盤,優(yōu)化系統”

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

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

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

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

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

      IDE

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

      高明的 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 的熱鍵,菜單,編輯器功能,按鈕?? 跟原來那個有很大不同。你不得不花很多時間來熟悉新的環(huán)境,而不能保持原來的某些東西。

      而在 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 的有什么區(qū)別嗎?

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

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

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

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

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

      Linux 干不了的有用的事情 Windows 照樣干不了

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

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

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

      ”好了。你知道 Windows 是垃圾,你現在用什么“

      ”Linux + Xwindow“

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

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

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

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

      ”根窗口就是遮蓋整個屏幕的那個最大的窗口?!?/p>

      ”哪兒有什么窗口??!我沒有看到呢?“

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

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

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

      Linux 天生就是繼承了 UNIX 的高效的工作方式,為什么我們要把它掩蓋起來?我們?yōu)槭裁粗桓嬖V用戶 KDE 的菜單怎么用?我們?yōu)槭裁床荒芟裨缙诘?Xwindow 書籍那樣第一節(jié)就告訴用戶什么是 X server, 什么是 X client,什么是 Window Manager, 什么是根窗口。第二章就告訴用戶窗口有哪些屬性,什么是 classname, resource name, hint,怎樣使用.Xdefaults, xrdb ??

      在這里我又不得不說一下那些 Linux 的發(fā)行公司和寫書的人,他們把 Linux 和Xwindow 包裝起來,卻沒有從基本上告訴用戶 Xwindow 的工作原理。很多書籍講授的層次就是在Gnome, KDE 的菜單操作的層次,靠大量抓圖來占篇幅,“繁榮”Linux 書籍市場?,F在很多人已經把能夠利用別人的庫寫出一個好看的程序作為自己編程水平的象征。在這“圖形化”,“可視化” 的年代,你如果還在用 troff, LaTeX 寫文檔,你還在用VIM 自己編輯 HTML,用 Mutt 處理郵件,你還在用文本模式的 gdb 調試程序,你還在用Xlib 寫程序, 你還在用 tin 上 USENET,你還在自己寫 Makefile,寫機器代碼,你還在玩 Clossal Cave 這樣的字符模式冒險游戲,那你就是老古董。

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

      GUI vs.CLI

      做一個堅定不移的“兩面派”

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

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

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

      可憐的我:“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 來收發(fā) email。我的每個桌面上都常常堆放著一打不同大小的 rxvt。我用 VIM 編輯 LaTeX。我自己寫Makefile 來維護 LaTeX 文檔。我有時用 mpg321 來放 mp3。我上BBS用的我自己寫的expect 腳本。好了,CLI 派的朋友可以收我做盟友了

      你說我是 CLI 的老古董?我的 FVWM 被我配置為可以“手寫操作”,我只要畫一個“r”就可以啟動 rxvt,我只要畫一個 “U” 就可以啟動 GVIM,?? 我用 GVIM 語法加亮模式編輯程序,我用 Mozilla 瀏覽網頁,?? GUI 派的現在好像認我做朋友了 好了。CLI 派的朋友,雖然我很喜歡命令行,但是我有時在屏幕上左右畫一下就可以執(zhí)行:

      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 和 CLI,UNIX 和 Xwindow 都是工業(yè)標準,它們從設計那天開始就有非常靈活的用法,各個程序,不管是 GUI 還是命令行的都可以互相協作。UNIX 和X 是一家,何必搞的那么偏激,非此即彼?你從我上面的行為可以看出 GUI 和 CLI的模糊界線嗎?我就是堅定不移的“兩面派”。

      UNIX 是簡單的--

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

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

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

      我不會再繼續(xù)闡述我理解到的“UNIX 的簡單”,因為這個需要自己去體會。

      UNIX 是永恒的

      有人說:“Plan9 會取代 UNIX,Mach 會取代 Linux 內核?!?/p>

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

      我為同一個設備寫過 Linux 內核和 Windows VxD 驅動程序。寫 Linux 驅動程序時,我對 UNIX 設計的完美的一致性,遠見性所折服。UNIX 用同樣界面的 read(), write()系統調用就可以對不同的對象:普通文件,設備文件,管道,管道文件,socket,??進行統一的讀寫操作。我跟本不需要寫一個測試用的應 用程序就可以對我的設備驅動進行測試,因為 cat, cp, dd, 它們也使用了同樣的 read(), write(),設備和普通文件在應用程序眼里沒有區(qū)別。在那個還沒有 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程序設計的思想是提供給用戶“機制”,而不限制用戶制定“政策”。這是一個重要的尊重用戶的作法。

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

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

      Xwindow 的窗口具有 Property,也就是一些可以自己定義的共享數據(原子)。正是因為這些 Property的存在,使得 Xwindow 具有無比強大的生命力。X的窗口管理器和其它客戶程序之間并沒有統一的協議,但是后來出現了ICCCM(客戶程序間通信規(guī)范),這個規(guī)范就是通過 property定義的?,F在又有人定義了一套“擴展的窗口協議(EWM Hints)”,使得Xwindow 可以具有某些 Windows 的特征,比如一個工具條程序可以告

      訴窗口管理器:“這個屏幕下面被我占據了24個像素的空間,你最大化程序的時候不要越過這個界線?!?/p>

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

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

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

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

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

      我們來說說很多初學 Linux 的用戶。雖然他們在用 Linux,但是他們打心眼兒里是覺得 Windows 的工作方式好,他們希望 Linux 有一天能“像Windows那樣”。你說:“我鼠標一點,我菜單一拉,......就可以完成我的操作?!?但是我要告訴你:“Linux 從來沒有摹仿

      Windows,將來也不會。Linux 從誕生之日起,它的工作方式就比 Windows 的先進。Linux 屬于能勇敢面對符號的人。只有符號才能完全操縱計算機?!?/p>

      看看優(yōu)秀的 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, 你會發(fā)現它的操作是那么的有規(guī)律性,似乎vi的設計者在幾十年前就已經設計好了 VIM 在今天的完美而統一的操作方式!而且vi的操作還體現在 Mutt, tin 等很多程序中。你甚至可以把 bash 設置為 vi 的輸入方式來輸入命令行,我就是這么做的。一個程序可以調用另外一個程序來得到數據,可以把數據交給它處理后返回來,可以在自己的窗口里“嵌入”另外一個 程序。

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

      Windows。我曾經試圖從Windows + Exceed + SecureCRT ssh 登錄到 Sun 機器,然后通過 ssh 的隧道(X11 tunnel)把 X 程序傳到 Exceed 上運行,但是搞了兩天都沒有成功!而在Linux 下這個事情根本就是不用怎么配置的,OpenSSH 和 XFree86 本來就是完美結合,只要打開 ssh 的 “forward X11” 選項就什么都搞定了。

      Windows 的程序都是大而全,大而雜,所有的電子郵件程序都需要自己提供編輯器,自己發(fā)送和收取郵件,自己顯示郵件的附件。每一個BBS程序都提供自己的 Virtual Terminal, 自己的通訊代碼。每一個 IDE 都自己提供編輯器,編譯器,匯編器,調試器。人們?yōu)榱耸褂靡环N新的程序,需要適應所有這些它提供的界面,而不能使用自己喜歡的編輯器的鍵綁定,菜單組 織......不能 DIY!

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

      而 UNIX 和 Xwindow 就是高檔的“組裝貨”。比如我用 Mutt 的時候,我可以用VIM 也可以用 pico 來編輯郵件,我可以用 ImageMagick 也可以用 xv 來顯示附件里的圖片,我可以用 lynx 把 HTML 附件轉成文本嵌入窗口中,我也可以把HTML 附件交給 Mozilla 圖形顯示。我可以讓 GnuPG 幫我把郵件進行數字簽名和加密,我也可以用其它 PGP 程序。我想讓 Postfix 而不是 sendmail 幫我發(fā)出郵件,我想讓 fetchmail 幫我收郵件,轉發(fā)給 postfix,然后被我自己寫的Perl過濾器處理......這一切我都可以辦到!我可以選擇我最喜歡的專門的程序來完成專門的工作,然后把它們結合在一起,我也可以分別得到它們的好處。

      結論

      我寫這么多的目的是什么?我希望喜歡 Linux 的朋友,完全清除微軟和Windows 灌輸在你腦子里的謬論,別再相信它們所謂的“新技術”,別再追趕Windows,因為追趕 Windows =倒退。馬克思有一個思想很重 要,“新生事物并不一定是在最近出現的?!?UNIX,Xwindow, TeX 雖然都比 Windows 先出現,但是它們才是先進生產力的代表。我們要清楚的認識到什么才是真正的現代化,什么才是真正的自動化。

      勇敢的拿起像 bash, FVWM, VIM, Emacs, Mutt, lftp......這樣強大的程序,不要再埋怨“Linux 為什么不能像 Windows 那樣”,不要再浪費時間試用這樣那樣的程序,不要再忙著升級。是你需要改變而不是 Linux 和 UNIX,Linux 現在就可以成為你的好朋友。你需要認識它,了解它,信任它,才能完全的靠它來高效的工作,省出時間來處理世界上更加值得處理的事情。

      第三篇:《用完全平方公式因式分解》教學設計

      14.3.2 《用完全平方公式因式分解》教學設計

      【設計理念】因式分解是學生進一步學習數學不可或缺的基礎知識和基本技能。本節(jié)課以培養(yǎng)學生熟練運用完全平方公式因式分解,以反復練習促進此方法的熟練掌握,以老師講解例題與方法,學生多多練習為具體的教學指導思想。

      一、教材分析

      本節(jié)的內容主要是用完全平方公式來因式分解。因式分解是整式的一種重要的恒等變形,它和整式的乘法,尤其是多項式的乘法關系十分密切。因式分解的幾種基本方法都是直接依據整式乘法的各個法則和乘法公式。完全平方公式是一種重要的因式分解的方法,學好用完全平方公式因式分解,是學生進一步學習數學不可或缺的工具。

      二、學情分析

      在知識上:學生在學習用完全平方公式因式分解之前,已經學習了用平方差公式因式分解。這兩種方法都是整式乘法的逆運用,所以應先復習整式乘法內容,再學習用公式法分解因式,可以加強學生對公式的熟練使用。

      在思想上:學生個體有所差異,所以應準備一些難度大的題目,以便一些做得快的學生做。另外,平方差公式與完全平方公式都有平方項,容易混淆,講解時應加以區(qū)分。

      三、教學目標

      1、知識目標: 要求學生掌握完全平方公式,并能熟練運用完全平方公式分解因式,并能區(qū)分完全平方公式以及平方差公式。

      2、能力目標:要求學生通過綜合運用提公因式法、完全平方公式分解因式,進一步培養(yǎng)學生的觀察和聯想能力。通過對完全平方公式的逆向變形及將一個整式看做“元”進行分解,發(fā)展學生的觀察、類比、歸納、預見等能力,進一步體會換元思想,提高處理數學問題的技能。

      3、情感目標:讓學生品嘗成功的喜悅,從而激發(fā)其求知的熱情。

      四、教學重難點

      1、重點:用完全平方公式因式分解。

      2、難點:例4的分解和化簡過程較為復雜,要求用換元的思想;能否很好區(qū)分平方差公式和完全平方公式。

      五、教學方法 教法:講授法

      學法:探究學習法

      六、教學過程

      (1)復習

      提問:我們已經學了哪些因式分解的方法? 練一練:因式分解 1.a3b-ab3

      2.m2(16x-y)+n2(y-16x)

      3.x4-y4

      4.(x+2y)2-(x-3y)2 提問:除了平方差公式,還學過哪些乘法公式?

      (2)新課

      觀察下列式子、它們具有什么特點?

      (1)x2+12x+36;

      (2)-2xy-x2-y2;(3)a2+2a+1;

      (4)4x2-4x+1;我們已經學了完全平方公式:

      把完全平方公式反過來:

      即兩數的平方和,加上(或者減去)這兩數的積的2倍,等于這兩數和(或者差)的平方。我們把多項式

      叫做完全平方式。

      練一練:下列哪些式子是完全平方式,哪些不是?請說明理由。(口答)

      (1)x2+12x+36;

      (2)-2xy-x2-y2;

      (3)a2+2a+1;

      (4)4x2-4x+1;

      (5)ax2+2a2x+a3;

      (6)-3x2+6xy-3y2(7)

      (8)

      思考:完全平方公式有什么特征?

      1、有三項

      2、有兩項可以寫成某數的平方,第三項是平方項底數積的兩倍。

      3、平方項只能為正,第三項可正可負。

      鞏固:書P119做一做(請學生起來回答)例3:把下列各式分解因式(1)(3)

      (2)

      (教師板書一步一步寫出解題過程,并指引學生)指出解題步驟:

      (1)先寫成公式特色,再判斷能否用公式。(2)平方項若是負數,要提取符號加括號。(3)有公因式的先提取公因式,再用完全平方公式分解。

      練一練:書P118 分解因式1.16x2+24x+9 2.-x2+2xy-y2 思考:什么時候用完全平方公式,什么時候用平方差公式?

      1、完全平方公式是三項,有三項就考慮完全平方;若是兩項,且為差的形式,則考慮平方差。

      2、若是看不出來就先考慮提取公因式再考慮公式法。

      例4:分解因式:(1)3ax2+6axy+3ay2(2)(a+b)2-12(a+b)+36

      練一練:

      1、計算:

      2、將

      再加上一項,使它成為的形式,你有幾種方法?

      (先讓學生自己思考一下,然后請同學起來回答,在請其他人補充)拓展:

      1、當m+n=3時,式子

      2、當a+b=8,ab=10時,式子(請學生上臺書寫)

      (3)小結

      1、如何用符號表示完全平方公式?

      2、完全平方公式的結構特點是什么?

      3、我們學了哪些因式分解的方法?

      七、作業(yè)布置

      1、作業(yè)本、課時14.3.2P119頁

      2、績優(yōu)學案

      八、板書設計

      1、小結的內容平方差公式

      2、因式分解 完全平方公式:

      =____________.=_____________.3、因式分解的步驟:一提(提取公因式),二使用公式法,三查(分解徹底,化簡)

      九、反思

      1、先復習一下前一節(jié)課所學的知識,然后回顧以前的知識:整式的乘法,然后引出完全平方公式。

      2、講解完知識點先做一個練習,從練習中歸納出完全平方公式的特點,以便更好理解。

      3、從練習中總結解題方法,可以讓學生了解自己哪里錯了,印象更加深刻,這樣下次就不容易錯。

      4、不是一味的講課,多提提問題讓學生思考,可以讓他們融入課堂,學得更加深刻。

      5、多讓學生做練習,而不是聽老師講解,可以從練習中熟悉完全平方公式,也更好應用。

      6、總結前一節(jié)課學過的平方差公式,并作出比較,以免混淆,做一些綜合的練習,為以后的應用打基礎。

      第四篇:用完全平方公式分解因式教學反思

      用完全平方公式分解因式教學反思

      根據新課程標準要求和學生的起點能力,本節(jié)課的具體目標有兩個,一個是會用完全平方公式分解因式,一個是會綜合運用提取公因式法、公式法分解因式。我以“問題情境——建立數學模型——解釋、應用與拓展”的模式組織課堂教學。整堂課教下來我覺得自己做的比較好的幾點是:

      1、突顯特點。這節(jié)課的重點是運用完全平方公式分解因式,而完全平方式的判定是關鍵。所以我比較重視完全平方式特點分析,應用。尤其強調完全平方式標準模式的書寫,這也是學生思維過程的暴露,有利于中等及中等以下學生對新知識的掌握,提高學生解題的準確率,對提高那些拐腳的偏理科的數學尖子生的表達能力也有好處。對以后靈活掌握用配方法解一元二次方程,求代數式最值等知識有正向遷移作用。有利于學生思維能力的發(fā)展。

      2、自主訓練。我以先引導學生分析多項式特點,再讓學生嘗試分解因式的方式完成例題教學。對課本上的練習題放手讓學生自己完成,體現了以教師為主導,以學生為主體,及時反饋,及時鞏固教學方式。

      3、及時歸納。根據初一學生認知特點,教學中我給予學生及時的多歸納,總結,使學生掌握一定的條理性和規(guī)律性,有利于學生的創(chuàng)新和發(fā)展。如完全平方式特點形象概括(口訣記憶法,結構的對稱美),因式分解步驟概括(一提二套三查),以及換元思想,配方法的提出。

      4、重視動態(tài)生成。教學中我發(fā)現704班學生思維很活躍,接受能力比較強,我對例題教學作了及時調整,由師生合作完成改為先引導學生觀察、分析多項式特點,再讓學生自主完成解題過程。不足之處:

      (1)探索用于因式分解的完全平方公式及特點分析時,沒有把握好時間,這是導致后面時間不夠的原因之一。

      (2)用現代化教學手段的能力有待加強。(課件使用不熟悉,沒有利用投影儀,這也是導致時間不夠的一個原因。例如填表練習講評時,若利用投影儀,將會節(jié)省時間,同時能充分暴露學生解題錯誤。)

      (3)表格沒有充分利用。表格最后一行我設計為空格的目的是在講評了表格里上述內容后,插入這樣一個教學環(huán)節(jié):根據完全平方式特點,請你在表格的最后一欄里構造一個完全平方式,并分解因式。當學生基本完成后,組織學生同桌交流,交流方式為:請把你的構思告訴同伴,先一個聽,一個評。然后調換角色。

      (4)沒有發(fā)現學生書寫錯誤。學生扮演過程中有兩處出錯,我沒發(fā)現。

      (5)公式中的字母a,b可以表示數,單項式,多項式的廣泛意義只是讓學生體驗,沒有讓學生開口表達。

      (6)由于沒有經歷過這種教學場面,教學中有點緊張,處理突發(fā)問題能力優(yōu)待加強。教學語言表達還需進一步簡煉。

      第五篇:用完全平方公式因式分解教學設計

      《用完全平方公式因式分解》的教學設計及反思

      一、教學目標:

      1、會用完全平方公式分解因式。

      2、會綜合運用提取公因式法、公式法分解因式。

      3、通過對完全平方公式的逆向變形及將一個整式看做“元”進行分解,發(fā)展學生的觀察、類比、歸納、預見等能力,進一步體會換元思想,提高處理數學問題的技能。

      二、重點和難點:

      重點:用完全平方公式因式分解。

      難點:由于用完全平方公式因式分解的關鍵是能否判斷一個多項式是否為完全平方式,因此準確判斷一個多項式是否為完全平方式是本課的一個難點。而例4分解和化簡過程比較復雜,并要求用換元的思想來因式分解,是本節(jié)教學的另一個難點。

      三、教學過程:

      (一)、用完全平方公式因式分解之引入篇

      (1)做一做:

      把下列各式分解因式(學生上臺板演)(1)ax4-ax2(2)16m4-n4 估計有部分學生只是把多項式16m4-n4分解到(4m2+ n2)(4m2- n2)的形式,教師予以強調指出必須分解到每個因式不能分解為止。(2)考一考

      a、除了平方差公式外,還有那些公式? b、如何 表示?

      (a+b)2=a2+2ab+b2(a-b)2=a2-2ab+b2

      c、怎樣用語言表述? d、公式應該怎么寫?

      (a±b)2=a2±2ab+b2

      反過來,可得a2±2ab+b2=(a±b)2

      兩數的平方和,加上(或減去)這兩數的積的兩倍,等于這兩數和(或者差)的平方。形如a2±2ab+b2的多項式稱為完全平方式.實質為:兩數的平方和,加上(或減去)這兩個數的積的兩倍. 給出完全平方式的概念。

      (二)、用完全平方公式因式分解之辨析篇 判別下列各式是不是完全平方式:(1)x2+y2;(2)a2-6a+9;

      (3)△2-2×△×□+□2;(4)m2+2mn-n2.(三)、用完全平方公式因式分解之歸納篇 a±2ab+b完全平方式的特點: 1.有三項組成.

      2.其中有兩項分別是某兩個數(或式)的平方.

      3.另一項是上述兩數(或式)的乘積的2倍,符號可正可負.

      (四)、用完全平方公式因式分解之探索篇 對照a2±2ab+b2=(a±b)2,你會嗎?

      1、x2+4x+4=()2+2()()+()2 =(+)2

      2、m2-6m+9=()2-2()()+()2 =(-)2

      注意:公式中的a、b可以表示單項式甚至是多項式。

      (五)、用完全平方公式因式分解之嘗試篇

      下列各式能因式分解嗎?若能,請分解;若不能,請把某一項的系數作適當改變,使之能分解:(1)a2+4ab+4b2(2)4x2-8 x+1

      其中第(2)題為變式練習。

      (六)、用完全平方公式因式分解之游戲篇 22請根據你小組得到的單項式討論:

      (1)請將你手中的單項式粘貼在黑板上的合適的地方,使它能與黑板上的整式組成完全平方式;(2)分解組成的多項式。

      (七)、用完全平方公式因式分解之闖關篇 利用完全平方公式對下列多項式因式分解:(1)a2-10a+25;(2)4a2+12ab+9b2;(3)-x2+4xy-4y2(4)3ax2+6axy+3ay

      2(5)(2x+y)2-6(2x+y)+9

      (八)、用完全平方公式因式分解之拓展篇 你能用簡便方法求出

      20052-4010× 2003+20032的值嗎?

      (九)、用完全平方公式因式分解之小結篇

      我們看過我們聽過,我們想過我們做過,我對過我錯過,有過激烈的爭議也有過意外的收獲,親愛的同學們,你不想說些什么嗎?

      因式分解多項式;先看有無公因式。兩項三項用公式;辯明是否標準式。

      (十)、作業(yè)布置

      四、教學設想:

      本節(jié)課通過從引入到小結一共九個篇章,分別是:引入、探索、實踐、歸納、嘗試、游戲、闖關、拓展、小結,層層深入,不斷推進,一步一步地把學生引向知識的深層次,在探索和實踐中把握新知,在游戲和闖關之中培養(yǎng)數學技能。在教學過程中,注意讓學生親身體驗知識的產生過程,激發(fā)學生探求知識的欲望,使學生始終處于主動探索問題的積極狀態(tài),使獲取新知識水到渠成,同時培養(yǎng)學生的觀察問題、分析問題以及解決問題的能力。

      五、教學反思:

      本節(jié)課從引入到小結一共九個篇章,分別是:引入、辨析、歸納、探索、嘗試、游戲、闖關、拓展、小結。在這里我要特別強調的是,游戲篇與闖關篇,對于游戲篇,我最初的設想是:把四個完全平方式拆成十二項,然后把它們分給十二個小組,而游戲規(guī)則是:認為自己分到中間項的小組在原座位不動,認為自己分到平方項的小組可以去到其他小組找能夠組成完全平方式的項,然后組成完全平方式??紤]到游戲的可操作性與有效性以及整個游戲的難度,并且經過多次的斟酌,我把游戲改成了現在的模式。我覺得這個游戲還是非常成功的,也達到我預期的目的。同學們的表現特別是小組的合作精神非常地不錯,能夠積極參與到這個游戲中來,表現出了很高的熱情,效果也不錯。對于闖關篇的設計,我更是幾易其稿。最初的是叫攻關篇,題目是:利用完全平方公式對下列多項式因式分解:(1)4a2+12ab+9b2;(2)-x2+4xy-4y2

      (3)3ax2+6axy+3ay2(4)(2x+y)2-6(2x+y)+9

      而要求是小組可以從中自選單數題或雙數題,完成后由小組代表上來進行交流匯報?,F在把它改成闖關篇,原來打算模仿“幸運52”找五個商標來進行,在找商標的過程中突然想到奧運五福娃,于是就有了五福娃闖關篇。在整個教學過程中,我的想法是層層深入,不斷推進,一步一步地把學生引向知識的深層次,同時也引發(fā)學生學習的高潮,讓學生在探索和實踐中把握新知,在游戲和闖關之中培養(yǎng)數學技能。學生是學習的主體,而教師則是學習的組織者、引導者、參與者,我的總的想法也是讓學生成為知識的主動構建者,真正成為學習的主人,并且力爭使課堂變得生動、有趣、活潑、高效。

      下載完全用Linux工作,擯棄[小編推薦]word格式文檔
      下載完全用Linux工作,擯棄[小編推薦].doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內容由互聯網用戶自發(fā)貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發(fā)現有涉嫌版權的內容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

      相關范文推薦

        出納崗位工作完全流程手冊

        出納崗位工作完全流程手冊?。〕黾{人員一定要看! 出納是會計工作的重要環(huán)節(jié),涉及的是現金收付、銀行結算等活動,而這些又直接關系到職工個人、單位乃至國家的經濟利益,工作出了差錯,......

        用責任心工作[

        用責任心去工作 --讀《用心去工作》有感 世間萬事萬物,想要做好,都得用心。工作要做好,亦是要用心。用心工作,有事業(yè)心,有責任心,有進取心,有感恩心、、、等等,但是人無完人,職場上的......

        用生命工作

        用生命工作我是一名質檢工作人員,負責公司所有包裝材料的質量檢驗。 前年,剛接手這項工作的時候,領導就跟我講,這項工作有哪些內容,該怎么怎么做,怎么安排,當時我聽著,覺得挺簡單的,......

        怎樣讓員工完全投入工作5篇

        怎樣讓員工完全投入工作?作者:羅偉霞 文章來源:本站原創(chuàng) 點擊數:197 更新時間:2005-6-28 企業(yè)希望的是什么?擴大?還不是時候。當然希望業(yè)績上升是每個老板們轉透腦筋的問題,不過,要提......

        日本語 工作機械用

        アーバ 穴あけ工具 バイト ボールエンドミル ドリル エンドミル 円筒研削盤 ファイン ボーリング フェースミル 複合機 フライス盤 ハンドリーマ 平面研削......

        內勤日常用工作

        銷售策劃部內勤工作內容一、平時須完成的工作: (一)每天的工作: 1)銷售臺帳更新、到款更新、新簽合同及認購協議書審核、需上報的審批單及時上報; 2)跟蹤及協調各部門聯系單完成情......

        用匠心對待工作

        繼承遺志,須用匠人之心來對待工作 各位領導,親愛的工友們: 大家好! 我是來自煉鐵部的 ,今天我要與大家分享的題目是《繼承遺志,須用匠人之心來對待工作》。 開始我的分享之前,我想......

        用愛去工作

        記得有位哲人曾經說過:生命是沒有意義的,除非有工作;所有的工作都是辛苦的,除非有知識;所有的知識是空虛的,除非有熱望;所有的熱望是盲目的,除非有愛。有愛的工作才是生命的具體化,那......