一个LINUX狂人的语录(我的认为很精辟)

http://blog.chinaunix.net/uid-57160-id-2734431.html?page=2html

 

我已经半年没有使用 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 错误观念的世界,你须要信念和勇气才能理解它的简单。"
     我下面就告诉你一些我理解到的东西。首先,你要知道的是微软在国际科学领域是根本没有地位的。
     微软的地位
     微软的名声在欧洲和美国的大学里,特别是在计算机系里之坏,你们可能有所耳闻。我认识的 MIT,Stanford 的教授,贝尔实验室的专家,甚至一个欧洲小国的高中计算机老师都绝口不提微软的名字。在他们眼里,微软只是一个没有真技术,专靠在落后国家商业宣传和垄断 经营的小公司。这个"小"并非说它人少,钱少,而是说它先进技术少。
      我上次和王益合做写了一个算法演示程序,那个算法是贝尔实验室一位科学家Steven Fortune很天才的发明,为了程序可以被身边大多数人使用,咱们选择了 VC+MFC 做为平台。我在分析算法时还获得 Fortune 很热情的鼓励,寄给我一份资料,还屡次回信耐心的给我讲解了不少细节。可是程序完成以后,我把样品发给 Fortune,他回信说:"对不起。我机器上没有 MFC。" 话说的很客气,可是我已经感受到了他对 Windows的不屑。而后我把 MFC 静态编译进程序再发给他,他就没有再回信了。他显然不是瞧不起我,而是确实有难处。
      你能感受到这位科学家对微软和 Windows 是什么态度了吧?不是反感,而是他内心根本没有 Windows 这个东西!微软在高科技领域没有发展,那么它怎么生存呢?到发展中国家去发展一下,他们的人民还对电脑一无所知,我说不定甚至能够打入大学的计算机系呢。 我送他们软件,我捐钱盖大楼,我出钱找图灵奖得到者来演讲,让他们以为咱们都是科学家!
     好了,如今全国的大学包括清华,几乎全部人机器必装盗版 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 的人络绎不绝。考试辅导班都贴出了"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 编程大全"之类的书,根本没有听课。吃饭时就念念有词的跟我说,"代码的优化是无止境的","匈牙利命名法真是伟大的发明" ……
      这就是中国不少大学计算机系的状况。
      感受到无知了?这不是偶然的,而是微软长久以来埋下的伏笔。它要让无知的你们都把它奉为神圣,它要让支持UNIX,Xwindow的人一旦说 UNIX 好,Xwindow 好的时候,都被一群人围着说教:"这个 Windows 也能作到","你对 Windows 有偏见","微软才是主流啊","你敢瞧不起 win2k?",".NET 就是世界潮流","微软的毕竟是新技术","有钱就是有技术"……
      甚至在一番论战比较后败下来仍是要说:"Windows 性能差点,可是易用性强","Windows 是老百姓用的,要求别那么?quot;,"微软那么有钱,之后想超过 UNIX 还不容易吗?"……
      发达国家的计算机教育
      我前段时间在 USENET 发文问有关 Scheme 语言的问题时,认识了一位丹麦人。他解决了我全部的问题,而且建议我阅读一些很"深奥"的有关程序语言语法,文法的书,他告诉我不少网站能够学习 LISP,Scheme,人工智能,算法。他叫我看 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
      不少人都说不该该彻底否认 Window,Windows 也有它的长处。不该该骂微软。
      对。Windows 容易操做,适合普通用户。若是微软把它本身定位在 P&G,Philips
      那样的地位,可以给咱们的百姓提供周到的,完善的,价廉物美的服务。那我确定是很喜欢它的。可是从上面的种种状况说明,微软是一个野心极大的国际垄断组织!它的产品没有一个是不出问题的:Windows
      不稳定,容易中病毒,而微软不为你们免费提供杀毒软件。我就是要让大家花钱买个人朋友 Symantec 的杀毒软件,谁叫大家已经上了个人贼船?这叫什么售后服务啊!
      你买来微软的程序,安装的时候通常都有一个协议,说:"因为微软的程序形成你的数据损坏或丢失,微软概不负责。"
      我想不少人确定以为这个不合理,不想按那个 "I accept"。可是你的软件买都买来了,钱都花了,如今一按 "I decline",安装程序立刻就会退出。你只好被迫点击了 "I accept"!这不是不平等条约吗?
      我已经目击了好几个朋友的文档被 Microsoft Word
损坏,有的是编辑了十多天的30多页的论文,有的是费了很大工夫作出来的我的简历,那个朋友为此失去了到本身向往的P&G 工做的机会。就在他要投简历的前一个晚上,就在那一瞬间……
      不知道他痛哭的时候有没有想起要投诉微软,但是谁叫咱们用的都是盗版呢,何况你还点击了 "I accept"。
      微软仗势已经占有大部分PC市场,制定不符合国际标准的"微软的标准",以不合理的方式压制其它公司的软件,这个问题已经在美国司法部闹了好久了。他甚 至在 Windows系列操做系统中放置可以经过网络泄漏用户信息的代码,以致于 Windows 刚进入澳大利亚时被澳大利亚政府禁止使用。
     有些人说:"微软毕竟开创了一个历史,造就了今天的 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
    好几百倍的东西能够制造幻灯片,你能够用最简单的方法制造世界一流效果的论文和幻灯片。
    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 用户眼里,"硬盘用久了,会出现碎片,速度会减慢,须要一个程序来整理,整理硬盘的时候不要作其它工做",这好像是天经地义的事情。我也曾经津津有味的看 着 Norton Defrag 一点一点的把个人硬盘排序,调整,用图形的方式显示出来,而后报告?quot;100% 没有碎片。你的硬盘如今已经达到最佳状态。" 我如今才发觉我那时是多么的幼稚。
     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 机器作的。
     民航总局用来训练地情人员的虚拟现实训练设备,Windows 固然无能为力。那都是商业的 IRIX 机器。
      UNIX 是最先支持 TCP/IP 网络协议的系统。它上面有不少能够互相协做的网络服务程序,它们通过多年的使用和修订,已经达到比较完善的程度。而就在1997年,微软的比尔盖茨还在扬言:"Internet 是没有前途的。"
      微软的这个"远见卓识"你们应该都已见识,它后来加上的网络服务程序IIS漏洞之多,让公安部都频频发出警报,你们也是见识了的。
      其实你知道了,Windows 没有同样有用的事情能比 UNIX 干的更好。
      Linux 干不了的有用的事情 Windows 照样干不了
      固然 Linux 不是万能的。它也有不能干的事情,电脑也有干不了的事情。可是 Linux干不了的事情,Windows 确定也干不了。这些事情就是咱们须要探索,须要努力的事情了。在你探索的过程当中,Linux 一定是你的好伙伴。
      不要把Linux和Xwindow掩盖起来!不要把咱们的用户当成傻瓜。
      什么?你早就知道 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 和 CLI,UNIX 和 Xwindow 都是工业标准,它们从设计那天开始就有很是灵活的用法,各个程序,无论是 GUI 仍是命令行的均可以互相协做。UNIX 和X 是一家,何须搞的那么偏激,非此即彼?你从我上面的行为能够看出 GUI 和  CLI的模糊界线吗?我就是坚决不移的"两面派"。
      UNIX 是简单的--
      "我相信简单就是最好,若是太复杂,我是不能理解的。" -Seymour Cray
      不少第一次用 Linux 的人会惊奇的发现,Linux 的程序竟然不?quot;安装"就能够运行,程序拷贝到随便那个目录均可以用,而不是必定要占用你第一个分区的空间。程序的设置只是一些简简单单的文本文件。你根本不须要什么"注册表修改器"
      就能够改变系统的设置。这就叫作简单,可是简单就是美。虽然这只是 UNIX 简单性的一个肤浅的认识,你已经体会到了某些东西。
      可是简单并不意味着功能弱,并不意味着落后。相反,简单意味着强大,意味着生命力。
      我不会再继续阐述我理解到的"UNIX 的简单",由于这个须要本身去体会。
      UNIX 是永恒的
      有人说:"Plan9 会取代 UNIX,Mach 会取代 Linux 内核。"
      可是你若是是一个深刻体会了 UNIX 的人,你就会知道:UNIX 的思想是永恒的,无论时过境迁,Plan9 是否代替 UNIX,UNIX 的灵魂都会在 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 程序设计的思想是提供给用户"机制",而不限制用户制定"政策"。这是一个重要的尊重用户的做法。
     咱们再来看看 Xwindow。Xwindow 是一个出色的设计,它把显示服务器和客户程序分开。一个显示上既能够显示本机上的程序,也能够显示别的机器上的 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介绍。
     至于绘图,你能够用不少可视化的工具,好比 xfig,dia。可是对于我来讲,任何可视化的工具都不能完成某些任务,我须要一种能够精确描述图形的语言。我找到了MetaPost。它简单又好用, 并且效果是世界一流的。个人插图,若是不是图像,都是MetaPost 画出来的。
    我曾经抱怨 mozilla-mail 常常忽然消失,损坏我好几封快要完成的信件。后来我发现mozilla
的 邮件处理程序确实是不稳定的,功能又弱,有经验的 UNIX 用户都不用这样的程序。Mutt 是一个很是稳定可靠的 UNIX 邮件处理程序,并且功能很是强大。我曾经为 Gnome 和 KDE 的不稳定而烦恼。如今我找到了很是强大的 FVWM。KDE,Gnome也能和 FVWM 一块儿工做。虽然 Gnome 和 KDE 整体不稳定,可是某些部件程序还不错,不少 gtk, Qt 的程序也很不错,它们不少都是能够独立于这些桌面环境运行的。
    Linux 有不少强大方便的工做方式是 Windows 没有的,或者有相似的东西,可是不好劲或者用起来不方便。好比 ssh 服务,rsync,cvs,expect ……
    结论
    我写这么多的目的是什么?我但愿喜欢 Linux 的朋友,彻底清除微软和 Windows 灌输在你脑子里的谬论,别再相信它们所谓的"新技术",别再追赶 Windows,由于追赶Windows = 倒退。马克思有一个思想很重要,"新生事物并不必定是在最近出现的。"
    UNIX,Xwindow, 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, vsftpd。proftpd 功能很强,可是我只用了最简单的一种设置。
     WWW 服务器:apache。(我通常没有开)
     ftp 客户程序:lftp,ncftp。它们都是文本方式操做的,可是比起图形界面的方便的多。好比 lftp 几乎具备 bash 的全部方便功能,Tab 补全,bookmark, queue, 后台下载,镜像…… Linux 也有图形界面的 ftp 客户程序,可是大多不稳定,有不少问题。这就是不少人抱怨 Linux 不如 Windows 的一个小缘由。还有不少人用 Wine 模拟 Windows 的leapftp,其实 lftp 比 leapftp 好不少,你须要的只是适应一下。
     自动下载工具:wget。它很是稳定,有一次我下载一个程序,用 IE 和 Mozilla 下载回来的文件都是坏的,最后仍是程序员

可靠的传输了数据。用它甚至能够镜像整个网站,比起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 再给我,文档里没有特殊的格式干脆就用文本吧,何须那么麻烦。之前很奇怪的是,通知里原本没有什么特殊的格式竟然还要发doc附件的email。如今好 了,咱们系发通知都用文本,PDF,甚至图片了。     其它程序:还有不少我须要用而你不必定用得着的。好比,Doctor Scheme,Scheme48, Scsh, kawa...这些程序只有 Doctor Scheme 有Windows版本。还有不少幕后工做可是你通常不察觉的:xinetd, telnetd, sshd, crond, atd, lpd,  ... 他们都比 Windows 的对应者强的多,或者根本没有对应者。
相关文章
相关标签/搜索