求问:上海linux和windows的区别开发学习时间要多少?

我为什么要学LINUX系统?(转)
我的图书馆
我为什么要学LINUX系统?(转)
我为什么要学LINUX系统?
&转自:http://blog.sina.com.cn/s/blog_v4rb.html
&&&&&“UNIX&是简单的,你不需要成为天才也能理解这种简单。”
由于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&玩。
你支持&Linux,你喜欢&Linux,你能从中感觉到快乐,这非常好。你现在只需要明白的是:Linux&从来就不是一个玩具,它是天才UNIX的后代。UNIX&是自晶体管发明以来最伟大的发明,它从诞生那一天开始就比&Windows&的设计出色。Linux&并不需要追赶&Windows,不需要打垮微软,它的最终目标是改变整个计算机世界,还人们自由,给人们乐趣和方便。其它UNIX很多都已经败在Linux脚下,更何况&Windows!
你如果出现了以上的情况,说明你的思想受到了&Windows&的某种潜移默化的影响和误导。你没有能够从本质上理解存在于&Linux&身上的&UNIX&思想。UNIX的设计者&Dennis&Ritchie&说:“Unix&is&simple.&It&just&takes&a&genius&to&understand&its&simplicity.”&但是我不这么认为,因为我不是一个天才,但是我却勇敢的把Windows完全删除掉,半年之后我体会到了&UNIX&的思想和好处。因为我相信这样的信念:“Windows&能办到的事&Linux&一定能办到,而且办的更好。”
这小节开头的话应该改成:“Unix&是简单的,但是在这个冲斥着&Windows&错误观念的世界,你需要信念和勇气才能理解它的简单!”&我下面就告诉你一些我理解到的东西。
微软的地位
微软的名声在欧洲和美国的大学里,特别是在计算机系里之坏,大家可能有所耳闻。我认识的&MIT,Stanford&的教授,贝尔实验室的专家,甚至一个欧洲小国的高中计算机老师都绝口不提微软的名字。在他们眼里,微软只是一个没有真技术,专靠在落后国家商业宣传和垄断经营的小公司。这个“小”并不是说它人少,钱少,而是说它先进技术少。
我上次和王益合作写了一个算法演示程序,那个算法是贝尔实验室一位科学家Steven&Fortune很天才的发明,为了程序能够被身边大多数人使用,我们选择了&VC+MFC&作为平台。我在分析算法时还得到&Fortune&很热情的鼓励,寄给我一份资料,还多次回信耐心的给我讲解了很多细节。但是程序完成之后,我把样品发给&Fortune,他回信说:“对不起。我机器上没有&MFC。”&话说的很客气,但是我已经感觉到了他对&Windows&的不屑。然后我把&MFC&静态编译进程序再发给他,他就没有再回信了。他显然不是瞧不起我,而是确实有难处。
你能感觉到这位科学家对微软和&Windows&是什么态度了吧?不是反感,而是他心里根本没有&Windows&这个东西!微软在高科技领域没有发展,那么它怎么生存呢?到发展中国家去发展一下,他们的人民还对电脑一无所知,我说不定甚至可以打入大学的计算机系呢。我送他们软件,我捐钱盖大楼,我找图灵奖获得者来演讲!
好了,现在全国的大学包括清华,几乎所有人机器必装盗版&Win2000,&Office&XP,学校的选课系统是非IE不能正确浏览,论文用&Word&编辑,演示用ppt做,连&863&项目都用&VC&写程序了。我很久以前就看到一份报纸说,“微软为什么不严厉打击盗版?”&这篇文章说,微软非但不打击中国的盗版行为,而且有放任之趋势。放长线吊大鱼,“以后我要你们加倍的来还我!”&确实如此,它的目的快实现了。
Windows&笼罩下的中国计算机教育
说句丢脸的话,比尔盖茨很久以前是我的偶像……&file://blush
在中国,比尔盖茨被很多人奉为神圣,“少年电脑天才”,甚至有的人提到他的名字就做出“抱拳对天”的姿势。很多人谈到微软的“新技术”,“高科技”&都是眉飞色舞。各种“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&是老百姓用的,要求别那么高”,“微软那么有钱,以后想超过&UNIX&还不容易吗?”……
发达国家的计算机教育
我前段时间在&USENET&发文问有关&Scheme&语言的问题时,认识了一位丹麦人。他解决了我所有的问题,并且建议我阅读一些很“深奥”的有关程序语言语法,文法的书,他告诉我很多网站可以学习&LISP,Scheme,人工智能,算法。他叫我看&Jonathan&Rees&的论文。他还打包给我寄过来一份&MIT&的&"How&to&Design&Programs"。他说他在自己的&PC&机上装的是&Linux,他用&Emacs&编辑,运行&Scheme&程序。他对&Emacs&的了解和爱好真是使人惊讶。他大学本科毕业时做的毕业设计是一个&Scheme&解释器。这对于我来说是望尘末及了。
他是那么的不厌其烦,我的每一个问题他都详细的回答。我有时都觉得过于详细了,怎么这么耐心啊?我觉得他似乎是我的高中老师。他是什么样的人呢?我好奇的打听了他的情况。原来,她是丹麦一所普通高中的计算机老师!注意我换了人称代词!
她说她在高中里讲授程序设计和算法,计算机语言文法分析。她说用&Scheme,她的学生不用再为指针越界,内存泄漏等程序语言本身的问题而烦恼,而专注于问题和算法本身。有利于培养学生解决问题的能力,特别是用计算机解决数学问题的能力。
天哪!为什么欧洲出现那么多数学家,几何学家?你看看别人重视的是什么!我们的计算机教育如果继续这样下去,只会沿着弯路越走越远!
微软和它的朋友们的如意算盘
下面来看看微软的收入是怎么来的。首先,Windows&98系列操作系统,一个就是&100&多美元,每次升级又是几乎同样的价钱。Windows&NT&还要贵几倍,而且有用户数目限制,5个用户的,10个用户的……&以后如果要增加用户数目还要按比例付钱。这个奇怪的现象被通用汽车公司的总裁比喻为:“你买的微软牌汽车最开头只有一个座位,每加一个座位你得向汽车公司付钱,每开100英里要大修一次,每过一年要换一次引擎。”
花了如此多钱买来的操作系统就能用了吗?它竟然连压缩程序都没有提供!你装上&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&能干而&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&下开发图形界面程序极其简单,很多初中生甚至小学生都可以随手编出一些漂亮不中用的程序。如果你整天寻找这样的程序挑来挑去,永远也找不到你满意的。
我曾经也犯过这样的错误,优秀的&FVWM,&lftp,&Mutt,&wget&都被我忽略过!当我找回它们的时候,我是那么的羞愧不已,它们现在都是我的朋友用这些程序你可以改变它们的一切,我第一次看到&FVWM&觉得它只不过是一个有很厚很难看边框的东西。可是现在,我的同学看到&FVWM&都说:“哇!真漂亮。”
有另一种完全不同的方式可以达到相同的目的,甚至更好。
很多人很关心&Open&Office,&Star&Office,&AbiWord,&...&他们多么盼望有一天某一个&Linux&程序能够完全兼容的打开一个复杂的&doc&文档。但是你永远也不可能有那一天。为什么呢?因为微软为了占有市场,必定不会让其它系统的程序能够完全兼容它的文档格式!它一定会不断变化&doc&文档的内部结构,隐藏一些秘密,让其它公司的程序打开&doc&文档时总是有某种问题,从而你必需购买&Microsoft&Office&和&Windows。
你应该想一下,那么多的高智商的大学教授,科学家,学生,他们用的都是&Linux&或者其它类型的&UNIX,他们没有&Word&可用,怎么处理文档呢?这么多年没有一个像&Open&Office&的程序出现,难道大家没有办法写文档吗?
显然不是这样。你看看那些高水平的学术杂志,论文,那些大学教授的网页,那些漂亮的PDF幻灯片,它们是什么做的?原来&UNIX&用户早就有非常方便的&troff,&LaTeX,&SGML&等东西可以处理文档,而且它们比起&Word&都要高明的多。Word&显然被这些大拿忽略了,以至于很久以来没有人想在&Linux&下开发一个类似&Word&的程序,除非某些公司想抢微软的饭碗。
很多人留着&Windows&在硬盘上的原因无非是为了用&Word&和&PowerPoint。你待会儿可以看看我的TeX网页,你就会知道为什么我可以完全离开&Windows.
Windows&能做的那些没用的事情&Linux&永远做不好
有些人说&Linux&下不能玩&Windows&下所能得到的所有游戏。的确,Linux&下虽然也有少量的游戏,比如&Quake。但是它没有&Counter&Strike,&没有&Star&Craft,&……
并不是说电脑游戏不该玩,但是应该适可而止。电脑是用来处理事务,帮助你学习,解决问题的工具,而不是一个玩具!整天沉迷于电脑游戏中,而不出去感觉外面的世界,你会变得越来越冷酷,越来越缺乏人情味。你与真实的世界越来越远。
你可以在&CS&里杀人,你可以在&Tomb&Raider&里探险,你甚至可以在&Tony&Hawks&Pro&Skaters&里滑板……&但是&Its&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&一点一点的把我的硬盘排序,调整,用图形的方式显示出来,然后报告:“100%&没有碎片。你的硬盘现在已经达到最佳状态。”&我现在才发觉我那时是多么的幼稚。
Linux&和&UNIX&用户似乎从来没有“整理硬盘”这种说法呢?你觉得很奇怪吗?如果你觉得很奇怪,那说明你的思想在某种程度上被微软的LJ程序禁锢了。你需要明白,UNIX&的大型主机很多必须是一天24小时,一年365又1/4天不停运转的,要是每个星期都要整理一次硬盘,在整理的时候几乎不能干任何事情,那是绝对行不通的!
Linux&机器根本不用整理硬盘,这就是为什么没有看到过&Linux&用户整理硬盘。Linux&的文件系统是比&Windows&的&FAT,&FAT32,&NTFS&高明得多的文件系统,它们不但可以对文件设置权限,实施完全的保护,而且可以“越用越整齐”,“越用碎片越少”!你应该把文件大部分放在&Linux&的分区,而不是&Windows&分区,因为它比&Windows&分区可靠得多。
还有更滑稽的事情就是有很多“Norton&System&Doctor”,“Windows&优化大师”,“超级兔仔注册表魔法”&之类的程序存在,而且价格昂贵。似乎一个操作系统本来应该有很多问题,需要别的厂商做程序来“优化”它,而且为了得到优化,你需要付钱!这些问题&Linux&根本就没有,所以不需要什么优化。Linux&内核本身就是高度优化的。
有些人在抱怨为什么&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!
有一次某杂志采访一些出名的&Linux&内核程序员,包括&Linus&在内,没有一个人用&IDE,有的人用&VIM,有的用&Emacs,只有&Linus&说“GNU&Emacs&is&evil”,但是其实他用的是一种跟&Emacs&有同样键绑定功能的&MicroEmacs。大家都是用编辑器编辑了程序文件,然后用&make&这样的自动工具调用&gcc&编译器完成编译工作的。
我以前也编过&Windows&程序:应用程序,驱动程序。但是我没有用&VC&的&IDE。Linux&教育了我,我会在命令行调用&CL,我知道&CL&才是&VC&的编译器。我可以在&cygwin&的&Makefile&里使用&CL。我还知道&CL&的参数都有什么用处。但是这些不是一个从一开头就用&IDE&的人能很快理解到的。
我相信:&IDE&is&evil。我有一些用&Windows&的&IDE&写程序的朋友,他们对那套东西已经很精通了。但是我却惊奇的发现,他们竟然把编译器和汇编器的概念都分不清楚,甚至有的人连“编辑器”和“编译器”都搞混淆了!他们只知道在一个窗口里输入了代码,点击一个按钮就可以编译程序,但是这里面到底是怎么工作的,他们不知道!他们被盖在上面的窗口挡住了视线,甚至会以为那个按钮就是编译器!
他们对那些&IDE&的热键背的滚瓜烂熟,但是我却看到他们在一个函数一个函数的把别人的&ANSI&风格的代码变成&VC&的风格。想想这件事在&VIM&里有多么简单,一瞬间就可以搞定。
为什么&UNIX&程序员不用&IDE?明白了这个道理你就能体会到&UNIX&的设计思想了。首先,一个&IDE&集成了编辑器,编译器,汇编器,调试器,跟踪器……&这个编辑器功能肯定比不上&VIM&或&Emacs,编译器比不上&GCC,汇编器比不上&as,调试器比不上&gdb,&ddd,&跟踪器比不上&strace,&ltrace,&truss。你得到的是一套整合的很好的低能的程序。如果你对调试器的功能不满意,你只好换用另外一套&IDE,但是这套&IDE&的热键,菜单,编辑器功能,按钮……&跟原来那个有很大不同。你不得不花很多时间来熟悉新的环境,而不能保持原来的某些东西。
而在&UNIX&下就不一样了。你可以用你最喜欢的&VIM&编辑程序,你在&VIM&里可以调用&GNU&make,make&可以调用&gcc,&ld,&...&实际上&make&能帮你很多忙。make&的出错信息可以被&VIM&捕获,VIM&能帮你在源程序里定位。你如果喜欢&icc,&你可以让&make&用&icc&而不是&gcc。你如果觉得&gdb&跟踪变量时比较麻烦,你可以用&ddd&来显示各种数据结构之间的关系。你还可以在&Emacs&里调用&gdb,那样就可以同步显示源代码了。而且&VIM&和&Emacs&还可以编辑很多其它东西,比如信件,LaTeX&文档,HTML,配置文件……&你不用另外找一个什么编辑器来干这些杂活了。很多程序比如&Mutt,&tin&都可以在内部使用&VIM,这样就更方便了。
我在&Windows&下做过的一件最傻的事情莫过于“释放内存”了。有一天我看到一个&Windows&程序说:“这个程序可以帮你把大量内存释放出来给一个很大的程序用。”我试了一下,居然一下把我的&64M&内存释放出来&48M!我高兴极了。现在想一想,那是多么傻的事情,那么多的内存留着干什么?不用白不用啊!一个操作系统,居然还需要别人写的程序来释放内存,那是什么样的操作系统?
在&Linux&下用&free&命令,你会发现你的内存几乎每时每刻都快要被用完。那是因为&Linux&把大部分内存用来作为磁盘缓冲了。Linux&有比&Windows&先进的磁盘缓冲技术。你有没有发现你往硬盘写数据的时候,很快就完成了?那是因为&Linux&在内存里有很多磁盘缓冲区,你要写到硬盘上的数据先被写到了这些内存里,然后&Linux&就告诉你“拷贝完成”,当你马上又想删除刚才写入的某些数据时,Linux&只是把数据从内存里移除,然后报告“删除完成”。在一定的间隔时间后,Linux&才把数据写回硬盘,这样不但高效,避免了多次硬盘操作,而且减少了文件的不连续,也就是减少了“碎片”。Windows&当然也有磁盘缓冲,但是由于它内存管理的低效率,它不敢把大量内存都用来作为磁盘缓冲,因为它没有能力在用的时候随时把内存收回来。
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漏洞之多,让GA部都频频发出警报,大家也是见识了的。
其实你知道了,Windows&没有一样有用的事情能比&UNIX&干的更好。
Linux&干不了的有用的事情&Windows&照样干不了
当然&Linux&不是万能的。它也有不能干的事情,电脑也有干不了的事情。但是&Linux&干不了的事情,Windows&肯定也干不了。这些事情就是我们需要探索,需要努力的事情了。在你探索的过程中,Linux&必定是你的好伙伴。
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,它收到这样的提示时,可以答应工具条程序的这个要求,也可以不答应。一切选择的权力在于谁?当然是用户了!一切窗口乖乖听话,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,这就是为什么&helloooo&诞生在&Linux&而不是&Windows。我曾经试图从&Windows&+&Exceed&+&SecureCRT&ssh&登录到&Sun&机器,然后通过&ssh&的隧道(X11&tunnel)把&X&程序传到&Exceed&上运行,但是搞了两天都没有成功!而在&Linux&下这个事情根本就是不用怎么配置的,OpenSSH&和&XFree86&本来就是完美结合,只要打开&ssh&的&"forward&X11"&选项就什么都搞定了。
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过滤器处理……&这一切我都可以办到!我可以选择我最喜欢的专门的程序来完成专门的工作,然后把它们结合在一起,我也可以分别得到它们的好处。
我写这么多的目的是什么?我希望喜欢&Linux&的朋友,完全清除微软和&Windows&灌输在你脑子里的谬论,别再相信它们所谓的“新技术”,别再追赶&Windows,因为追赶&Windows&=倒退。马克思有一个思想很重要,“新生事物并不一定是在最近出现的。”&UNIX,Xwindow,&TeX&虽然都比&Windows&先出现,但是它们才是先进生产力的代表。我们要清楚的认识到什么才是真正的现代化,什么才是真正的自动化。
勇敢的拿起像&bash,&FVWM,&VIM,&Emacs,&Mutt,&lftp&……&这样强大的程序,不要再埋怨“Linux&为什么不能像&Windows&那样”,不要再浪费时间试用这样那样的程序,不要再忙着升级。是你需要改变而不是&Linux&和&UNIX,Linux&现在就可以成为你的好朋友。你需要认识它,了解它,信任它,才能完全的靠它来高效的工作,省出时间来处理世界上更加值得处理的事情。
附录:&我用来处理日常事务的&Linux&程序
这里给出一些推荐使用的可以处理一般事情的程序。至于你的专业上要用到的科学和工程软件比如&Matlab,&Mathematica,&Maple,&HSpice,&Design&Compiler,&……&还有其它物理上的,化学上的,生物上的&……&都必然有&Linux&和&UNIX&的版本。当然他们很多不是免费的,不要总是觉得什么都应该免费,它们是经过很多人辛勤劳动的产物,是可靠的程序,他们物有所值。
下面列出我常用的一些&Linux&程序。一个列表里可能有很多,那是为了方便你来选择,我列出了比较信得过的。但其实很多只有第一个是我真正在用的。我不喜欢试用程序。
Shell:&bash。我使用&bash&的&vi&命令行方式。
编辑器:&VIM,&Emacs
程序开发:&GCC,&make,&ld,&Scheme48,&j2sdk,&Perl,&Python,&Tcl/Tk&...
论文,幻灯工具:LaTeX,&ConTeXt
绘图工具:MetaPost。这个语言太强了,以至于我只用它了。你不熟悉的话可以用&dia&来画一些流程图之类的图片。
图&像处理:ImageMagick。其中的&import&程序可以屏幕抓图,convert&程序可以转换图像格式,display&可以显示图片和简单编辑(缩放,换质量,转格式,简单绘图,简单虑镜)。通常我就这么点需要。如果你要更强大的图像工具可以用&Gimp,&它几乎和&Photoshop&差不多。
自动管理工具:make。我可以用make来自动编译程序,自动编译文档,自动更新插图……&全自动,而且不会重复劳动。
加密程序:GnuPG。我的&PGP&密钥就是它搞出来的,我用了&2048&位加密。
打包,压缩程序。什么都有:&tar,&gzip,&bzip2,&zip,&rar,&...
虚拟光驱程序。Linux&不需要虚拟光驱程序,直接&mount&就行了。
ftp&服务器:proftpd,&vsftpd
WWW&服务器:apache。(我一般没有开)
ftp&客户程序:lftp
自动下载工具:wget
虚拟终端: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&加密的隧道传到我机器上显示。
上BBS:rxvt(或任何一种终端)&+&telnet&+&chatbot(helloooo&机器人的程序)
QQ,&ICQ:&我没有&QQ&或&ICQ。不过你可以用&Gaim,&它同时支持&QQ,&ICQ&和很多其它的即时通信方式。
放&录像:MPlayer,&RealPlayer。MPlayer&太好了,直接就可以放&VCD,&DVD,&divx,&wma,&wmv&...&用&Windows&的同学都很羡慕我,说&Windows&要放这个需要大堆插件。rm&最好还是用&realplayer&放,它也是免费的。
放音乐:&xmms(mp3,ogg都可以),&mpg321(放mp3),&ogg123(放ogg).
看&Word&文档。请&Word&用户把文档全部转为&PDF&或&PS&再给我,文档里没有特殊的格式就用文本文件,要不我就不看
其它程序:还有很多我需要用而你不一定用得着的。比如,Doctor&Scheme,&Scheme48,&Scsh,&...这些程序只有&Doctor&Scheme&有Windows版本。还有很多幕后工作但是你一般不察觉的:xinetd,&telnetd,&sshd,&crond,&atd,&lpd,&...&他们都比&Windows&的对应者强的多。
TA的最新馆藏
喜欢该文的人也喜欢}

我要回帖

更多关于 linux和windows的区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信