我来批《完全用GNU/Linux工作,摈弃Windows》(转帖)

[复制链接]
3926|10
 楼主| songbw 发表于 2008-5-4 17:24 | 显示全部楼层 |阅读模式
下面是一斯坦福大学博士的反驳,现任某电子类专业高校(国内排名前150)计算机学院院长。&nbsp;&nbsp;<br /><br />  饶有兴趣地看完《完全用GNU/Linux工作,摈弃Windows》,这真是一篇很有趣的**,也是一篇很有鼓动性的**,但读完以后,却促使我站到Windows的立场上,对该文从技术角度做一批判。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  微软的名声在欧洲和美国的大学里,特别是在计算机系里之坏,大家可能有所耳闻。我认识的&nbsp;&nbsp;&nbsp;MIT,Stanford&nbsp;&nbsp;&nbsp;的教授,贝尔实验室的专家,甚至一个欧洲小国的高中计算机老师都绝口不提微软的名字。在他们眼里,微软只是一个没有真技术,专靠在落后国家商业宣传和垄断经营的小公司。这个“小”并不是说它人少,钱少,而是说它先进技术少。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  微软的名声在哪里都不好,这是众所周知的,其实用不着打出“欧洲和美国的大学”或什么“教授、专家”的幌子。什么是“真技术”,泥水匠砌砖头都是技术,要批别人没技术,作者首先得拿出“技术”的定义来。至于“专靠在落后国家商业宣传和垄断经营的小公司”云云,大谬!微软作为美国本土公司,商业宣传和挣到的利润大部分都在美国吧。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  我上次和王益合作写了一个算法演示程序,那个算法是贝尔实验室一位科学家Steven&nbsp;&nbsp;&nbsp;Fortune很天才的发明,为了程序能够被身边大多数人使用,我们选择了&nbsp;&nbsp;&nbsp;VC+MFC&nbsp;&nbsp;&nbsp;作为平台。我在分析算法时还得到&nbsp;&nbsp;&nbsp;Fortune&nbsp;&nbsp;&nbsp;很热情的鼓励,寄给我一份资料,还多次回信耐心的给我讲解了很多细节。但是程序完成之后,我把样品发给&nbsp;&nbsp;&nbsp;Fortune,他回信说:“对不起。我机器上没有&nbsp;&nbsp;&nbsp;MFC。”&nbsp;&nbsp;&nbsp;话说的很客气,但是我已经感觉到了他对&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;的不屑。然后我把&nbsp;&nbsp;&nbsp;MFC&nbsp;&nbsp;&nbsp;静态编译进程序再发给他,他就没有再回信了。他显然不是瞧不起我,而是确实有难处。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  计算机科学家不用Windows,再正常不过了,很多从事计算机理论研究的学者都不用Windows,换句话说,他们根本就不开发软件,也不掌握开发软件的技术(这并不妨碍他的学术成就),最多写两个小程序验证一下算法,这些人使用Unix,完全是一种习惯,在PC还没诞生之前,他们就在使用计算机了,可能是大型机,也可能是小型机,操作系统通常是Unix,他只会用Unix。你要让他们讲出Windows的技术,他根本就不了解,更谈不上“对Windows的不屑”。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  连&nbsp;&nbsp;&nbsp;863&nbsp;&nbsp;&nbsp;项目都用&nbsp;&nbsp;&nbsp;VC&nbsp;&nbsp;&nbsp;写程序了。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  谁说863项目不能用VC来写程序?用VB的都有,这和863项目要攻关的内容又有什么关系了?难道只要会用Unix上的cc编译程序就可以申请863项目了吗?&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;“电脑要从娃娃抓起”,我们再来看看娃娃们学的是什么。大部分家长给孩子买了电脑之后,他们首先就会装一个盗版的&nbsp;&nbsp;&nbsp;Windows,然后买来盗版的游戏开始玩。如果哪个孩子会用&nbsp;&nbsp;&nbsp;Delphi&nbsp;&nbsp;&nbsp;编程序,那可不得了。报社记者,电视台争相报导,说,某某学校的初中生某某,在别人都还在玩电脑游戏这种“初级阶段”的时候就已经用&nbsp;&nbsp;&nbsp;Delphi&nbsp;&nbsp;&nbsp;写程序了。镜头还瞄准了他显示器上面的像框中的比尔盖茨头像!&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  不光骂微软,这会儿连Borland公司都骂上了。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  有些同学很多时候上课都捧着一本很重的“Windows&nbsp;&nbsp;&nbsp;编程大全”之类的书,根本没有听课。吃饭时就念念有词的跟我说,“代码的优化是无止境的”,“匈牙利命名法真是伟大的发明”&nbsp;&nbsp;&nbsp;……&nbsp;&nbsp;&nbsp;这就是中国很多大学计算机系的情况。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  代码的优化本来就是无止境的,基于Unix的程序不讲代码优化吗?计算机系同学不要讲代码优化吗?匈牙利命名法不是单为Windows发明的,MacOS、Java包括当今Unix上的很多应用程序都用匈牙利命名法,这是商品化软件开发的一般套路,当然很多理论学者不用去关心它,但计算机系的学生不懂匈牙利命名法就不行!&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  他说他在高中里讲授程序设计和算法,计算机语言文法。他说用&nbsp;&nbsp;&nbsp;Scheme,他的学生不用再为内存泄漏等程序语言本身的问题而烦恼,而专注于问题和算法本身。有利于培养学生解决问题的能力,特别是用计算机解决数学问题的能力。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  “内存泄漏”和程序设计语言是没关系的,C的程序在Unix上不泄漏,在Windows上会发生泄漏,这确实是Windows的缺点。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  天哪!为什么欧洲出现那么多数学家,几何学家?你看看别人重视的是什么!我们的计算机教育如果继续这样下去,只会沿着弯路越走越远!&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  不管怎么说,我还是坚信对大众而言,“计算机教育”必须强调工程实践,十三亿人民都是数学家、几何学家,谁来种田给你饭吃。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  下面来看看微软的收入是怎么来的。首先,Windows&nbsp;&nbsp;&nbsp;98系列操作系统,一个就是&nbsp;&nbsp;&nbsp;100&nbsp;&nbsp;&nbsp;多美元,每次升级又是几乎同样的价钱。Windows&nbsp;&nbsp;&nbsp;NT&nbsp;&nbsp;&nbsp;还要贵几倍,而且有用户数目限制,5个用户的,10个用户的……&nbsp;&nbsp;&nbsp;以后如果要增加用户数目还要按比例付钱。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  相比商用Unix系统来说,Windows便宜得多!&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  那些程序不会用啊!那些菜单怎么设置,到底有什么功能啊?看“帮助”也学不会。买本书看看吧,我推荐“Special&nbsp;&nbsp;&nbsp;Edition&nbsp;&nbsp;&nbsp;Using&nbsp;&nbsp;&nbsp;Microsoft&nbsp;&nbsp;&nbsp;Office&nbsp;&nbsp;&nbsp;XP”,不贵,$27.99。这本书里面大部分是屏幕抓图,还是买一本旧的比较划算,$17.85。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  为什么看“帮助”也学不会?相比Unix中man命令,Windows的帮助内容要丰富得多。如果有哪位不买几本书看看就会安装并使用Unix,我拜他为师。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  但是从上面的种种情况说明,微软是一个野心极大的国际垄断组织!它的产品没有一个是不出问题的:Windows&nbsp;&nbsp;&nbsp;不稳定,容易中病毒,而微软不为大家免费提供杀毒软件。我就是要让你们花钱买我的朋友&nbsp;&nbsp;&nbsp;Symantec&nbsp;&nbsp;&nbsp;的杀毒软件,谁叫你们已经上了我的贼船?这叫什么售后服务啊!&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  病毒最初不在Windows系统上发明的,早几年美国最大的一次蠕虫病毒,造成无数政府机关、军事部门中招,就是Unix上的病毒。我记得我上大学时读过一本书,整本书讲的就是攻破Unix系统的方法,当时我所在的计算机系运行Unix的一台Vax-11&nbsp;&nbsp;&nbsp;785,就被一位二年级的同学搞瘫了。我们感觉Windows的病毒多,是因为Windows的装机量大,微软的目标大,而不是说Unix就是金钢不坏之身。&nbsp;&nbsp;&nbsp;<br />
 楼主| songbw 发表于 2008-5-4 17:25 | 显示全部楼层

11

你买来微软的程序,安装的时候一般都有一个协议,说:“由于微软的程序造成你的数据损坏或丢失,微软概不负责。”&nbsp;&nbsp;&nbsp;我想很多人肯定觉得这个不合理,不想按那个&nbsp;&nbsp;&nbsp;&quot;I&nbsp;&nbsp;&nbsp;accept&quot;。但是你的软件买都买来了,钱都花了,现在一按&nbsp;&nbsp;&nbsp;&quot;I&nbsp;&nbsp;&nbsp;decline&quot;,安装程序马上就会退出。你只好被迫点击了&nbsp;&nbsp;&nbsp;&quot;I&nbsp;&nbsp;&nbsp;accept&quot;!这不是不平等条约吗?&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  这个不平等条约哪个软件都有,不光是微软的软件。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  微软仗势已经占有大部分PC市场,制定不符合国际标准的“微软的标准”,以不合理的方式压制其它公司的软件,这个问题已经在美国司法部闹了很久了。他甚至在&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;系列操作系统中放置能够通过网络泄漏用户信息的代码,以至于&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;刚进入澳大利亚时被澳大利亚政府禁止使用。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  我们国家政府部门不只是限制使用Windows系统,还限制使用Sun的计算机,以及它的Solaris(Sun版本的Unix)。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;“Windows&nbsp;&nbsp;&nbsp;能干而&nbsp;&nbsp;&nbsp;Linux&nbsp;&nbsp;&nbsp;干不了的事情,那就是不需要干的事情。”&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  强盗逻辑。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  Windows&nbsp;&nbsp;&nbsp;能做的有益的事情&nbsp;&nbsp;&nbsp;Linux&nbsp;&nbsp;&nbsp;都能做---Windows&nbsp;&nbsp;&nbsp;下的某些功能确实是我们需要的,那么&nbsp;&nbsp;&nbsp;Linux&nbsp;&nbsp;&nbsp;的开发者们和用户也需要这种功能,他们就会去实现这种功能,而且比&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;的方式好得多。由于大多数科学家,工程师用的都是&nbsp;&nbsp;&nbsp;Linux&nbsp;&nbsp;&nbsp;或者某种商业&nbsp;&nbsp;&nbsp;UNIX,&nbsp;&nbsp;&nbsp;所以几乎所有商业的科学工程程序,比如&nbsp;&nbsp;&nbsp;Matlab,&nbsp;&nbsp;&nbsp;Mathematica,&nbsp;&nbsp;&nbsp;AutoCAD,&nbsp;&nbsp;&nbsp;Candence的,Synopsys的,Avant!&nbsp;&nbsp;&nbsp;的……全都是先有&nbsp;&nbsp;&nbsp;UNIX&nbsp;&nbsp;&nbsp;的版本(包括Linux),然后再考虑移植给&nbsp;&nbsp;&nbsp;Windows,甚至根本不移植给&nbsp;&nbsp;&nbsp;Windows,因为&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;的机器一般没有足够的能力运行这样的程序。你不要以为只有&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;才有&nbsp;&nbsp;&nbsp;PSpice,&nbsp;&nbsp;&nbsp;UNIX&nbsp;&nbsp;&nbsp;的&nbsp;&nbsp;&nbsp;HSpice&nbsp;&nbsp;&nbsp;要好得多,而且可以运行在大型主机上。当然它们不是免费的,但是它们值那个价钱。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  这些软件多数诞生在PC之前,有了Windows后,很多在Unix上的应用系统都往Windows上移。有些软件是不会移植到Windows的,这一点不错,但不是Windows没能力,而是运行Windows系统的PC的没有能力,大型应用系统所用的Unix一般在运行在昂贵的大型机、小型机和图形工作站上,而花几千元钱买的PC已经大大的物有所值了。就Windows系统来说,它的能力已经大大的超过Unix。现在最大的问题不是Windows不能干,而是太能干了,微软塞给我们太多不用的功能。什么软件能不能在某个平台上运行,我认为最大的问题在硬件平台上,比如运算速度、内存容量、磁盘存储系统或图形加速设备等,和操作系统没有太大的联系。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  显然不是这样。你看看那些高水平的学术杂志,论文,那些大学教授的网页,那些漂亮的幻灯片,它们是什么做的?原来&nbsp;&nbsp;&nbsp;UNIX&nbsp;&nbsp;&nbsp;用户早就有非常方便的&nbsp;&nbsp;&nbsp;troff,&nbsp;&nbsp;&nbsp;LaTeX,&nbsp;&nbsp;&nbsp;SGML&nbsp;&nbsp;&nbsp;等东西可以处理文档,而且它们比起&nbsp;&nbsp;&nbsp;Word&nbsp;&nbsp;&nbsp;都要高明的多。Word&nbsp;&nbsp;&nbsp;显然被这些大拿忽略了,以至于很久以来没有人想在&nbsp;&nbsp;&nbsp;Linux&nbsp;&nbsp;&nbsp;下开发一个类似&nbsp;&nbsp;&nbsp;Word&nbsp;&nbsp;&nbsp;的程序,除非某些公司想抢微软的饭碗。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  Troff、LaTeX、SGML和Word是两个概念,前三者是用一种语言来描述一个文档,就像用HTML来描述一个网页一样。我们可以用HTML来写一个网页,当然我们更愿意用FrontPage或DreamWeaver来创作网页,一定要说用HTML语言写网页就比FrontPage和DreamWeaver好,那就是强词夺理了。其实Windows的RTF文件就是用语言来描述的,大家可以试一试,用Word写一个文档,存成RTF格式,再用记事本打开这个RTF文件,可以看到都是格式化的ASCII码文字。用一种语言来描述文档,Unix做得到,Windows同样也做到了。对于专业印刷级的文档,通行用Postscript语言,Unix中有解释器,Windows中也有解释器。其实,比较操作系统,不必太关心应用程序。这篇**后面讲到的游戏也是如此,Windows的游戏软件比Unix多,这完全是因为Windows的游戏更有市场,而不是说Unix不能开发游戏软件。作者所说的“Linux&nbsp;&nbsp;&nbsp;的用户们都是关心解决世界的关键问题的份子,他们哪里有时间用自己的机器来玩游戏啊?他们每天用Linux高效的做完自己的工作就到阳光下享受自然去了”,完全没必要做这种解释,简直是画蛇添足。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  Linux&nbsp;&nbsp;&nbsp;机器根本不用整理硬盘,这就是为什么没有看到过&nbsp;&nbsp;&nbsp;Linux&nbsp;&nbsp;&nbsp;用户整理硬盘。Linux&nbsp;&nbsp;&nbsp;的文件系统是比&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;的&nbsp;&nbsp;&nbsp;FAT,&nbsp;&nbsp;&nbsp;FAT32,&nbsp;&nbsp;&nbsp;NTFS&nbsp;&nbsp;&nbsp;高明得多的文件系统,它们不但可以对文件设置权限,实施完全的保护,而且可以!你应该把文件大部分放在&nbsp;&nbsp;&nbsp;Linux&nbsp;&nbsp;&nbsp;的分区,而不是&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;分区,因为它比&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;分区可靠得多。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  作者不懂操作系统!Unix的文件系统叫i-node,和FAT和NTFS一样,也是硬盘空间也是一块一块分配的,只要是块分配的,就肯定会造成碎片,谈不上“越用越整齐”,“越用碎片越少”。i-node的文件管理方式大学教科书就有,不是什么很高级很复杂的东西,大学生都读得懂,我不相信微软的工程师会读不懂,不知道吸取其中的优点。如果Unix的机器运行时掉电,启动时同样要Check一番,否则文件也是会损坏的,这一点和Windows没有什么区别。NTFS的文件权限保护绝对比Unix高明,Unix只能对三类用户设限(所有者、组、其它),Windows可以对任何用户和组设限,Unix权限控制只有rwx三种(读、写、执行),NTFS不用我说了,地球人都知道,比Unix多多了。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  高明的&nbsp;&nbsp;&nbsp;UNIX&nbsp;&nbsp;&nbsp;程序员不用&nbsp;&nbsp;&nbsp;IDE,IDE&nbsp;&nbsp;&nbsp;从来就是给初级&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;程序员用的。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  我就是喜欢IDE。我是从一个Unix程序员成长成Windows程序员,作者说的cc、make、vi、gdb我都会,但用起来就是麻烦,效率就是低下,IDE多简单,初级程序员都会,简单有什么过错,能把复杂的东东做简单,那是微软的本事(当然更是Borland公司的本事)。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  为什么&nbsp;&nbsp;&nbsp;UNIX&nbsp;&nbsp;&nbsp;程序员不用&nbsp;&nbsp;&nbsp;IDE?明白了这个道理你就能体会到&nbsp;&nbsp;&nbsp;UNIX&nbsp;&nbsp;&nbsp;的设计思想了。首先,一个&nbsp;&nbsp;&nbsp;IDE&nbsp;&nbsp;&nbsp;集成了编辑器,编译器,汇编器,调试器,跟踪器……&nbsp;&nbsp;&nbsp;这个编辑器功能肯定比不上&nbsp;&nbsp;&nbsp;VIM&nbsp;&nbsp;&nbsp;或&nbsp;&nbsp;&nbsp;Emacs,编译器比不上&nbsp;&nbsp;&nbsp;GCC,汇编器比不上&nbsp;&nbsp;&nbsp;as,调试器比不上&nbsp;&nbsp;&nbsp;gdb,&nbsp;&nbsp;&nbsp;ddd,&nbsp;&nbsp;&nbsp;跟踪器比不上&nbsp;&nbsp;&nbsp;strace,&nbsp;&nbsp;&nbsp;ltrace,&nbsp;&nbsp;&nbsp;truss。你得到的是一套整合的低能的程序。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  我怎么就没觉得IDE的编辑器、编译器、调试器低能了?分散的工具有哪些在IDE中做不到?&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  而在&nbsp;&nbsp;&nbsp;UNIX&nbsp;&nbsp;&nbsp;下就不一样了。你可以用你最喜欢的&nbsp;&nbsp;&nbsp;VIM&nbsp;&nbsp;&nbsp;编辑程序,你在&nbsp;&nbsp;&nbsp;VIM&nbsp;&nbsp;&nbsp;里可以调用&nbsp;&nbsp;&nbsp;GNU&nbsp;&nbsp;&nbsp;make,make&nbsp;&nbsp;&nbsp;可以调用&nbsp;&nbsp;&nbsp;gcc,&nbsp;&nbsp;&nbsp;ld,&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;&nbsp;make&nbsp;&nbsp;&nbsp;的出错信息可以被&nbsp;&nbsp;&nbsp;VIM&nbsp;&nbsp;&nbsp;捕获,VIM&nbsp;&nbsp;&nbsp;能帮你在源程序里定位。你如果喜欢&nbsp;&nbsp;&nbsp;icc,&nbsp;&nbsp;&nbsp;你可以让&nbsp;&nbsp;&nbsp;make&nbsp;&nbsp;&nbsp;用&nbsp;&nbsp;&nbsp;icc&nbsp;&nbsp;&nbsp;而不是&nbsp;&nbsp;&nbsp;gcc。你如果觉得&nbsp;&nbsp;&nbsp;gdb&nbsp;&nbsp;&nbsp;跟踪变量时比较麻烦,你可以用&nbsp;&nbsp;&nbsp;ddd&nbsp;&nbsp;&nbsp;来显示各种数据结构之间的关系。你还可以在&nbsp;&nbsp;&nbsp;Emacs&nbsp;&nbsp;&nbsp;里调用&nbsp;&nbsp;&nbsp;gdb,那样就可以同步显示源代码了。而且&nbsp;&nbsp;&nbsp;VIM&nbsp;&nbsp;&nbsp;和&nbsp;&nbsp;&nbsp;Emacs&nbsp;&nbsp;&nbsp;还可以编辑很多其它东西,比如信件,LaTeX&nbsp;&nbsp;&nbsp;文档,HTML,配置文件……&nbsp;&nbsp;&nbsp;你不用另外找一个什么编辑器来干这些杂活了。很多程序比如&nbsp;&nbsp;&nbsp;Mutt,&nbsp;&nbsp;&nbsp;tin&nbsp;&nbsp;&nbsp;都可以在内部使用&nbsp;&nbsp;&nbsp;VIM,这样就更方便了。实际上&nbsp;&nbsp;&nbsp;make&nbsp;&nbsp;&nbsp;在其它方面还能帮你很多忙,我的每一个比较大型的&nbsp;&nbsp;&nbsp;LaTeX&nbsp;&nbsp;&nbsp;文档都是用&nbsp;&nbsp;&nbsp;make&nbsp;&nbsp;&nbsp;维护的。&nbsp;&nbsp;&nbsp;
 楼主| songbw 发表于 2008-5-4 17:25 | 显示全部楼层

11

VC中也用make啊,Unix中make能做的,VC中的make也同样能做到。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  当然有很多事情是Linux/UNIX的专利了。因为&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;只能装在&nbsp;&nbsp;&nbsp;PC&nbsp;&nbsp;&nbsp;机上,好像以前也有&nbsp;&nbsp;&nbsp;Alpha&nbsp;&nbsp;&nbsp;可以使用&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;NT,但是就是没见到有人用。PC&nbsp;&nbsp;&nbsp;机的能力是很低的,像我们编程序处理&nbsp;&nbsp;&nbsp;NP-Hard&nbsp;&nbsp;&nbsp;问题的人,用&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;的机器显然速度不够,而且有时一个问题算上几天甚至几个星期,Windows&nbsp;&nbsp;&nbsp;机器是以“死机”著称的,我们怎么能放心?&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  这些话说对了,但漏说了一句,PC上用Unix,一些大型应用程序跑起来一样慢。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  IBM&nbsp;&nbsp;&nbsp;制造的最大的并行计算机有&nbsp;&nbsp;&nbsp;8000&nbsp;&nbsp;&nbsp;多个处理器,Windows&nbsp;&nbsp;&nbsp;不可能有能力管理这么多处理器,它用的是什么操作系统?答案是&nbsp;&nbsp;&nbsp;Linux。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  错,不是Linux,而是用Linux的代码针对多处理器重新改写的操作系统。花几十块钱买一个红帽子来,能支持8000多个处理器才怪。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  《泰坦尼克号》电影里的三维动画,那么细腻逼真,Windows机器能做出来吗?不行。那也是&nbsp;&nbsp;&nbsp;Linux&nbsp;&nbsp;&nbsp;机器做的。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  再错,和Linux没关系,和硬件系统中的图形加速设备有关系。有好的图形加速设备,Windows也能做。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  很多第一次用&nbsp;&nbsp;&nbsp;Linux&nbsp;&nbsp;&nbsp;的人会惊奇的发现,Linux&nbsp;&nbsp;&nbsp;的程序居然不用“安装”就可以运行,程序拷贝到随便那个目录都可以用,而不是一定要占用你第一个分区的空间。程序的设置只是一些简简单单的文本文件。你根本不需要什么“注册表修改器”&nbsp;&nbsp;&nbsp;就可以改变系统的设置。这就叫做简单,但是简单就是美。虽然这只是&nbsp;&nbsp;&nbsp;UNIX&nbsp;&nbsp;&nbsp;简单性的一个肤浅的认识,你已经体会到了某些东西。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  谁说Unix的程序就不要安装,你去安装一个Oracle试试,一个个目录建起来、一个个文件拷贝好,一个个配置参数设置好,这是手工安装。VC采用静态链接也可以编译成一个执行程序,到处拷拷就能用,但这不是一种高效率的做法。Windows最初的程序设置也是文本文件,就是大家都熟悉的INI文件(现在依然可以用),用文本文件设置参数远不如注册表简单和功能强大,所以注册表就发明了。在Unix中要写好配置文件根本就不是件容易的事,注册表有层次型的结构,更容易表达具有复杂结构的配置参数。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  我为同一个设备写过&nbsp;&nbsp;&nbsp;Linux&nbsp;&nbsp;&nbsp;内核和&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;VxD&nbsp;&nbsp;&nbsp;驱动程序。写&nbsp;&nbsp;&nbsp;Linux&nbsp;&nbsp;&nbsp;驱动程序时,我对&nbsp;&nbsp;&nbsp;UNIX&nbsp;&nbsp;&nbsp;设计的完美的一致性,远见性所折服。UNIX&nbsp;&nbsp;&nbsp;用同样界面的&nbsp;&nbsp;&nbsp;read(),&nbsp;&nbsp;&nbsp;write()&nbsp;&nbsp;&nbsp;系统调用就可以对不同的对象:普通文件,设备文件,管道,管道文件,socket,……进行统一的读写操作。我跟本不需要写一个测试用的应用程序就可以对我的设备驱动进行测试,因为&nbsp;&nbsp;&nbsp;cat,&nbsp;&nbsp;&nbsp;cp,&nbsp;&nbsp;&nbsp;dd,&nbsp;&nbsp;&nbsp;它们也使用了同样的&nbsp;&nbsp;&nbsp;read(),&nbsp;&nbsp;&nbsp;write(),设备和普通文件在应用程序眼里没有区别。在那个还没有&nbsp;&nbsp;&nbsp;Smalltalk,&nbsp;&nbsp;&nbsp;没有&nbsp;&nbsp;&nbsp;C++&nbsp;&nbsp;&nbsp;的年代,UNIX&nbsp;&nbsp;&nbsp;的设计者已经使用了所谓的&nbsp;&nbsp;&nbsp;“面向对象方法”。对,C&nbsp;&nbsp;&nbsp;语言也可以实现面向对象。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  对设备像文件一样read()和write(),在DOS中就行。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  UNIX&nbsp;&nbsp;&nbsp;的系统调用几十年都没有很大变化,这非但不是顽固,不进步的象征,反而是&nbsp;&nbsp;&nbsp;UNIX&nbsp;&nbsp;&nbsp;的远见卓识的体现!这就跟&nbsp;&nbsp;&nbsp;TeX&nbsp;&nbsp;&nbsp;程序几十年都不变的情况差不多。这些才是真正的永恒的&nbsp;&nbsp;&nbsp;master&nbsp;&nbsp;&nbsp;piece!&nbsp;&nbsp;&nbsp;你应该改变所有软件都必需从&nbsp;&nbsp;&nbsp;0.1,&nbsp;&nbsp;&nbsp;1.0,&nbsp;&nbsp;&nbsp;1.1,&nbsp;&nbsp;&nbsp;1.2,&nbsp;&nbsp;&nbsp;2.0,&nbsp;&nbsp;&nbsp;...,&nbsp;&nbsp;&nbsp;3.0,&nbsp;&nbsp;&nbsp;3.1,&nbsp;&nbsp;&nbsp;95,&nbsp;&nbsp;&nbsp;98,&nbsp;&nbsp;&nbsp;2000,&nbsp;&nbsp;&nbsp;XP,&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;&nbsp;不断升级的想法。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  Unix的系统调用只包含操作系统核心的五个模块:进程管理、作业管理、内存管理、文件管理、设备管理,还是就一些网络通信的系统调用。这些内容在Windows中也同样简单,自Windows诞生起也没有发生变化。Unix的系统调用不含图形用户界面,Windows的系统调用(在Windows中叫API)则包罗万象,当然比Unix复杂多了。Unix也是在进化的,后面的X&nbsp;&nbsp;&nbsp;Window的API比Windows的GDI简单不到哪里去。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  **后面讲到X&nbsp;&nbsp;&nbsp;Window的程序设计是很复杂的,我是先会写X&nbsp;&nbsp;&nbsp;Window的程序,然后才学会写Windows的程序,对此太有体会了。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  如果连“一句话开头一个字母要大写”这么明显的问题都需要程序帮你纠正的话,人脑还用来干什么?况且如果你故意想要不大写的话,那就更麻烦了,我楞是没有从它那一大堆菜单里找到怎么关闭这个愚蠢的选项。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  这人不会用Word,自已愚蠢还说Word愚蠢。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  Linux&nbsp;&nbsp;&nbsp;从来没有摹仿&nbsp;&nbsp;&nbsp;Windows,将来也不会。Linux&nbsp;&nbsp;&nbsp;从诞生之日起,它的工作方式就比&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;的先进。Linux&nbsp;&nbsp;&nbsp;属于能勇敢面对符号的人。只有符号才能完全操纵计算机。”&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  “只有符号才能完全操纵计算机”这句话没错,但绝大多数计算机用户并不想完全操纵计算机,他只要能用计算机来完成他的日常工作就行了,图形用户界面正是提高他的工作效率的一个天才发明,否则Unix中要X&nbsp;&nbsp;&nbsp;Window做什么?&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  在&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;和其它非&nbsp;&nbsp;&nbsp;UNIX&nbsp;&nbsp;&nbsp;操作系统中,这种合作是非常困难的。我曾经在Windows&nbsp;&nbsp;&nbsp;下使用&nbsp;&nbsp;&nbsp;Perl来进行一些自动工作。但是&nbsp;&nbsp;&nbsp;Windows&nbsp;&nbsp;&nbsp;的文件操作,管道是如此的不稳定,程序之间基本不能合作。你别想在&nbsp;&nbsp;&nbsp;Visual&nbsp;&nbsp;&nbsp;Studio&nbsp;&nbsp;&nbsp;窗口里面嵌入&nbsp;&nbsp;&nbsp;UltraEdit&nbsp;&nbsp;&nbsp;编辑器,你别想用一个&nbsp;&nbsp;&nbsp;expect&nbsp;&nbsp;&nbsp;脚本来控制&nbsp;&nbsp;&nbsp;telnet&nbsp;&nbsp;&nbsp;到水木清华BBS。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  Windows中程序的合作远远比Unix高明,它是基于OLE技术的,在Unix中,用UG2做出的工程图纸,在troff、Tex中能插进去吗。Windows中只要两个程序都是基于OLE,它们之间可以相互连接和嵌入。这一点和Windows和Unix的体系结构不同有关,Windows完全是基于面向对象技术的,而Unix不是。Unix程序之间的联系是标准输入/和标准输出来实现的,可以用shell程序(shell有不同的版本,bsh、csh、ksh,以前我常用ksh,作者用的是bash)组合起来,同样的功能在Windows中是用wscript。(作者提到的grep,&nbsp;&nbsp;&nbsp;find,&nbsp;&nbsp;&nbsp;awk,&nbsp;&nbsp;&nbsp;sed,&nbsp;&nbsp;&nbsp;make,&nbsp;&nbsp;&nbsp;Perl都是Unix中的文字过滤程序,这些是Unix中很有特色的东西,它们在Windows中也可以找到相应的版本,如果找不到,则拿它们的源程序重新编译一下就行了,Perl现在常用来写网页。但这些工具绝对是专家级的,是计算机专家们搞出来的东东,不是给普通用户用的,家庭用户谁懂得正则表达式)。&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;  这篇**我读得也累了,还有很多文字我也懒得批判了。前面我说这篇**的鼓动性很强,因为它代表了一种情绪,一种不分青红皂白谩骂微软的情绪。我对这篇**进行批判,并不意味着我就是在吹捧微软公司,要说微软的毛病,随随便便可以说出一大堆,我批这篇**,是因为**有那么多错误的小辫子,我对揪小辫子历来有兴趣。我从大学二年级到硕士毕业,都是在Unix开发软件,生平只读过两个商品化软件的源代码,一个是Unix,另一个就是Unix上的Spice(这篇**中也有提到),对Unix有深厚的感情。最初我在DOS下开发软件时,对DOS是恨之入骨,性能太差了,其实当时的PC,只能运行DOS,后来用Windows&nbsp;&nbsp;&nbsp;3.1,还是不行,问题主要出在Windows&nbsp;&nbsp;&nbsp;3.1的内存管理上(分段式管理,不是平板式内存,给写程序带来很大的麻烦),在Windows&nbsp;&nbsp;&nbsp;95以后,Windows基本上令我满意了,反而觉得在Unix上开发基于X&nbsp;&nbsp;&nbsp;Window的应用是那么的原始。相比Windows来说,Unix比较简洁、干净,比较适合专业人士玩,但并不适合大众使用,当然Unix/Linux上现在也越来越多花里胡哨的东东,很多我听都没听说过,我常常想,如果Unix这么发展下去,为了完成Windows应用程序所具有功能,桌面上堆满了图标,一个程序中无数个菜单和对话框,系统庞大到不可收拾,错误百出,这时的Unix又和Windows有什么差别呢,到那时没准大家又开始骂Unix了&nbsp;&nbsp;&nbsp;<br />
littgh1982 发表于 2008-5-4 17:43 | 显示全部楼层

写的很不错

如果引用的部分加上引号就更好了,现在看着有点乱
sinanjj 发表于 2008-5-5 12:28 | 显示全部楼层

我来逐条反驳

&quot;下面是一斯坦福大学博士的反驳,&quot;---------------------请指出是谁来.&nbsp;我想知道他发表了什么论文.<br />&nbsp;&nbsp;  &quot;微软的名声在哪里都不好,这是众所周知的,&quot;&nbsp;----------------微软在商业届的传奇发展史是独一无二的.&nbsp;名声不好么??&nbsp;名声不好你支持他干嘛??<br /><br />&quot;要批别人没技术,作者首先得拿出“技术”的定义来。至于“专靠在落后国家商业宣传和垄断经营的小公司”云云,大谬!微软作为美国本土公司,商业宣传和挣到的利润大部分都在美国吧。&quot;&nbsp;--------------------------没技术的表现是:&nbsp;硬件同样的条件下,&nbsp;计算速度没linux快,&nbsp;文件系统没linux快,&nbsp;没linux稳定,&nbsp;多用户支持没linux好,&nbsp;内存利用很烂,&nbsp;最快的计算机,&nbsp;最先进的设备平台,&nbsp;最好的服务器,&nbsp;往往用了linux/unix系统.&nbsp;后半句我同意文中观点,&nbsp;但需要注意的是:&nbsp;服务器一直都是unix/linux的天下,&nbsp;MS在美国的市场占有率并不是99%.<br />&nbsp;&nbsp;  &quot;计算机科学家不用Windows,再正常不过了,很多从事计算机理论研究的学者都不用Windows,换句话说,他们根本就不开发软件,也不掌握开发软件的技术(这并不妨碍他的学术成就),最多写两个小程序验证一下算法,这些人使用Unix,完全是一种习惯,在PC还没诞生之前,他们就在使用计算机了,可能是大型机,也可能是小型机,操作系统通常是Unix,他只会用Unix。你要让他们讲出Windows的技术,他根本就不了解,更谈不上“对Windows的不屑”。&nbsp;&quot;-------------------很对,&nbsp;人家科学家作出的成就是怎样的,&nbsp;我们国内科学家用windows的作出的成就是怎样的,&nbsp;一比便知.<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&quot;连863项目都用VC写程序了。&quot;---------------做863项目的人的素质不同,&nbsp;有的人只会用VC,&nbsp;考虑到市场应用,&nbsp;也有可能使用VC.&nbsp;国家没有统一标准.&nbsp;你去问问嫦娥上敢不敢用VC,&nbsp;用了我就服你.&nbsp;国家863还有一个做麒麟操作系统(linux核心)的呢.&nbsp;&nbsp;&nbsp;<br />&nbsp;&quot;不光骂微软,这会儿连Borland公司都骂上了。&nbsp;&quot;------------------不要曲解原文意思,&nbsp;原文的意思是推广linux,&nbsp;对我们下一代的教育意义.&nbsp;骂MS,&nbsp;没有的事,&nbsp;MS绝对不是垃圾.&nbsp;教育用window,&nbsp;确实会毒害一代人,&nbsp;原文中的语气偏激,&nbsp;情有可原.&nbsp;<br /> &quot;“内存泄漏”和程序设计语言是没关系的,C的程序在Unix上不泄漏,在Windows上会发生泄漏,这确实是Windows的缺点。&nbsp;&nbsp;&nbsp;&quot;---------------???内存泄漏是指C等高级语言用RAM超过硬件支持量,&nbsp;C程序如果进行良好的变量定义,释放的话,&nbsp;内存泄漏可以避免.&nbsp;就是说:&nbsp;内存泄漏和你C语言写的好不好有关.&nbsp;linux下,&nbsp;良好的内存机制和gcc帮你优化了,&nbsp;基本不用考虑这个问题,&nbsp;windows下,&nbsp;内存分配很烂,&nbsp;所以,&nbsp;你在window下写程序就注意一下吧.<br />&quot; 不管怎么说,我还是坚信对大众而言,“计算机教育”必须强调工程实践,十三亿人民都是数学家、几何学家,谁来种田给你饭吃。&quot;---------liunx就不工程实践了??&nbsp;proe,&nbsp;cadence,&nbsp;matlab等,&nbsp;先放出来的都是linux版.&nbsp;linux下也有office,&nbsp;有比office更好的tex,&nbsp;<br />&quot; 为什么看“帮助”也学不会?相比Unix中man命令,Windows的帮助内容要丰富得多。如果有哪位不买几本书看看就会安装并使用Unix,我拜他为师。&quot;---------你拜我为师吧.&nbsp;我就告诉你把每个单词的意思都看懂,&nbsp;你就学会了.&nbsp;你4级不过我也没办法啊...&nbsp;<br />  &quot;病毒最初不在Windows系统上发明的,早几年美国最大的一次蠕虫病毒,造成无数政府机关、军事部门中招,就是Unix上的病毒。我记得我上大学时读过一本书,整本书讲的就是攻破Unix系统的方法,当时我所在的计算机系运行Unix的一台Vax-11&nbsp;&nbsp;&nbsp;785,就被一位二年级的同学搞瘫了。我们感觉Windows的病毒多,是因为Windows的装机量大,微软的目标大,而不是说Unix就是金钢不坏之身。&quot;------------人家军方政府只用linux/unix,&nbsp;说明了什么??&nbsp;你window连被攻击的资格都没有....,&nbsp;unix被告瘫痪很容易,&nbsp;你root格式化系统盘就是了.&nbsp;安全而言,&nbsp;最好的就是美国NSA的linux优化内核补丁,&nbsp;你可以查一查.<br />&nbsp;<br />&nbsp;<br />
sinanjj 发表于 2008-5-5 12:30 | 显示全部楼层

下边的我懒得反驳了....

  
soso 发表于 2008-5-15 13:06 | 显示全部楼层

“内存泄漏”

“内存泄漏”是&nbsp;malloc&nbsp;和&nbsp;new&nbsp;造成的,任何&nbsp;C/C++&nbsp;写的程序都可以内存泄露。
caoyu1099 发表于 2010-5-27 16:36 | 显示全部楼层
creatory_cn 发表于 2010-5-27 17:40 | 显示全部楼层
我想使用内存泄露的方式把XP搞死,可行吗?
wdxx 发表于 2010-5-28 23:22 | 显示全部楼层
sjg_mcu 发表于 2010-5-30 08:21 | 显示全部楼层
麒麟操作系统, 哈!哈!哈!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

86

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部