下载

0下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 用Linux代替windows

用Linux代替windows.doc

用Linux代替windows

无言的小恋人
2019-05-27 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《用Linux代替windowsdoc》,可适用于IT/计算机领域

【转:完全用Linux工作,摈弃Windows】我已经半年没有使用Windows的方式工作了。Linux高效的完成了我所有的工作。GNULinux不是每个人都想用的。如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了。我不是一个狂热的自由软件份子,虽然我很喜欢自由软件。这篇文章也不是用来推行自由软件运动的,虽然我觉得自由软件运动是非常好的。这篇文章也不是用来比较Linux和Windows内核效率,文件系统,网络服务的。我现在是作为一个用户而不是一个开发者来说话的,我们的讨论是基于操作,应用层面的。是为了告诉大学里还不了解,或者不理解UNIX的科学工作者和大学生,UNIX比Windows更适合用于科学研究工作,请大家理解UNIX的工作方式,不要用Windows的标准来要求Linux,而要用一个科学工作者的标准来要求自己,用UNIX的思想来武装自己。我显然是反对在大学,特别是理工科专业推广Windows的。我也反对在对"娃娃"们的计算机启蒙教育中使用Windows。因为Windows不论从技术上,经济上,思想风格上都是与我们培养高科技人才的目标格格不入的。Windows的流行属于历史遗留问题,爷爷一级的人当然已经不可救药,但是我们不应该让下一代继续走上歧途。UNIX不是计算机专家的专利当我建议一些非计算机专业的人用Linux的时候,很多人说:"UNIX是计算机系的人用的,我们不能理解。""UNIX是男孩用的,我们女孩不用。"但是其实世界上的大多数科学家和工程师几乎用的都是UNIX作为他们的电脑工具。就因为它简单,可靠,稳定,强大,有趣。甚至很多时候UNIX就是唯一的选择。你说:"我们都会用UNIX的话,你们计算机专业的人还用来干什么"很容幸的告诉你,计算机专业的有一部分人就是专门为你们提供这样强大而方便的计算机工具的。如果他们制造的工具只有自己会用的话,那这个工具还有什么用理解GNULinux不要用Windows的标准来要求Linux。由于GNULinux这个词太长,下面如果没有特别指明,"Linux"就是指GNULinux"。在这个年代,恐怕没有人需要我来介绍Linux是什么了吧如果你觉得"Linux只不过是跟DOS差不多的东西",那请问问你旁边的Linux用户,Linux到底是什么那为什么我还要写一篇这样的文章因为,我发现还有很多人不不理解Linux和历,那个朋友为此失去了到自己向往的PG工作的机会。就在他要投简历的前一个晚上,就在那一瞬间……不知道他痛哭的时候有没有想起要投诉微软,可是谁叫我们用的都是盗版呢,况且你还点击了"Iaccept"。微软仗势已经占有大部分PC市场,制定不符合国际标准的"微软的标准",以不合理的方式压制其它公司的软件,这个问题已经在美国司法部闹了很久了。他甚至在Windows系列操作系统中放置能够通过网络泄漏用户信息的代码,以至于Windows刚进入澳大利亚时被澳大利亚政府禁止使用。有些人说:"微软毕竟开创了一个历史,造就了今天的IT行业。"但是,如果没有微软,我们今天早就用上非常稳定,非常可靠,非常方便,非常"傻瓜"的软件了!微软是阻挡信息技术发展的罪魁祸首。微软的程序的工作方式(注意,我只是说操作方式,病毒的事情另外算)确实适合于一般家庭,上上网,发发邮件,打打游戏都不错。可是微软却要把自己包装成什么"高科技"企业,要在世界各地设置"研究院",在大学计算机系赠送不适合用于科研的Windows产品,甚至出钱请图灵奖得主来中国畅谈"二十一世纪的计算",还在大会上宣传自己的NET技术。非要把别人认为自己是科学的,自己是领导世界高科技的。但是呢它什么高科技也没有。欧洲,美国,哪一个关键部门在用微软的东西NASADOECERN你仔细想一想,微软的程序对人类到底有什么重大作用什么是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都说:"哇!真漂亮。"有另一种完全不同的方式可以达到相同的目的,甚至更好。很多人很关心OpenOffice,StarOffice,AbiWord,他们多么盼望有一天某一个Linux程序能够完全兼容的打开一个复杂的doc文档。但是你永远也不可能有那一天。为什么呢因为微软为了占有市场,必定不会让其它系统的程序能够完全兼容它的文档格式。它一定会不断变化doc文档的内部结构,隐藏一些秘密,让其它公司的程序打开doc文档时总是有某种问题,从而你必需购买MicrosoftOffice和Windows。你应该想一下,那么多的高智商的大学教授,科学家,学生,他们用的都是Linux或者其它类型的UNIX,他们没有Word可用,怎么处理文档呢这么多年没有一个像OpenOffice的程序出现,难道大家没有办法写文档吗显然不是这样。你看看那些高水平的学术杂志,论文,那些大学教授的网页,那些漂亮的幻灯片,它们是什么做的原来UNIX用户早就有非常方便的troff,LaTeX,SGML等东西可以处理文档,而且它们比起Word都要高明的多。Word显然被这些大拿忽略了,以至于很久以来没有人想在Linux下开发一个类似Word的程序,除非某些公司想抢微软的饭碗。很多人留着Windows在硬盘上的原因无非是为了用Word和PowerPoint。我见过一个教授,他的Windows笔记本电脑上除了PowerPoint什么都没有。有一天演示的时候,他指着堆乱字符说:"对不起,这是一个公式……怎么每次都是这样……"其实有比PowerPoint好几百倍的东西可以制造幻灯片,你可以用最简单的方法制造世界一流效果的论文和幻灯片。你待会儿可以看看我的TeX网页,你就会知道为什么我可以完全离开Windows。Windows能做的那些没用的事情Linux永远做不好电脑游戏有些人说Linux下不能玩Windows下所能得到的所有游戏。的确,Linux下虽然也有少量的游戏,比如Quake。但是它没有CounterStrike,没有StarCraft,……并不是说电脑游戏不该玩,但是应该适可而止。电脑是用来处理事务,帮助你学习,解决问题的工具,而不是一个玩具!整天沉迷于电脑游戏中,而不出去感觉外面的世界,你会变得越来越冷酷,越来越缺乏人情味。你与真实的世界越来越远。你可以在CS里杀人,你可以在TombRaider里探险,你甚至可以在TonyHawk'sProSkaters里滑板……但是It'snotreal!你虽然有很高的"反恐技巧",但是遇到歹徒的时候,你是那么的怯懦你虽然控制Laura伸手敏捷,但是你打篮球的时候怎么总是被人断球你虽然可以轻易的在THPS里作出一个"kickfliptohangtengrindtofakie",但是你踩在自己的滑板上的时候还不会ollie!说回来,如果你偶尔玩一下电脑游戏未尝不可。但是世界上有远比WindowsPC更好的游戏方式。Sony的PlayStation,SEGA的DreamCast,Nintendo的N,Namco的街机……每一个都比Windows游戏精彩,每一个都有如此高的D性能,以至于Pentium,ItaniumGForce都无法与它们比美!Linux的用户们都是关心解决世界的关键问题的份子,他们哪里有时间用自己的机器来玩游戏啊他们每天用Linux高效的做完自己的工作就到阳光下享受自然去了。要玩游戏也是玩一些类似推箱子,贪吃蛇之类的智力小游戏。所以,你知道为什么Linux几乎没有游戏了吧"整理硬盘,优化系统"这是一个非常有意思的话题,仅次于有关"病毒"的话题。相信很多Windows用户都有整理硬盘的经历。在很多Windows用户眼里,"硬盘用久了,会出现碎片,速度会减慢,需要一个程序来整理,整理硬盘的时候不要做其它工作",这好像是天经地义的事情。我也曾经津津有味的看着NortonDefrag一点一点的把我的硬盘排序,调整,用图形的方式显示出来,然后报告quot没有碎片。你的硬盘现在已经达到最佳状态。"我现在才发觉我那时是多么的幼稚。Linux和UNIX用户似乎从来没有"整理硬盘"这种说法呢你觉得很奇怪吗如果你觉得很奇怪,那说明你的思想在某种程度上被微软的垃圾程序禁锢了。你需要明白,UNIX的大型主机很多必须是一天小时,一年又天不停运转的,要是每个星期都要整理一次硬盘,在整理的时候几乎不能干任何事情,那是绝对行不通的!Linux机器根本不用整理硬盘,这就是为什么没有看到过Linux用户整理硬盘。Linux的文件系统是比Windows的FAT,FAT,NTFS高明得多的文件系统,它们不但可以对文件设置权限,实施完全的保护,而且可以"越用越整齐","越用碎片越少"!你应该把文件大部分放在Linux的分区,而不是Windows分区,因为它比Windows分区可靠得多。还有更滑稽的事情就是有很多"NortonSystemDoctor","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的微软程序员上次向乌干达的可怜儿童捐助了多美元,这是值得称赞的。有一次某杂志采访一些出名的Linux内核程序员,包括Linus在内,没有一个人用IDE,有的人用VIM,有的用Emacs,只有Linus说"GNUEmacsisevil",但是其实他用的是一种跟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里可以调用GNUmake,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都干不了当然有很多事情是LinuxUNIX的专利了。因为Windows只能装在PC机上,好像以前也有Alpha可以使用WindowsNT,但是就是没见到有人用。PC机的能力是很低的,像我们编程序处理NPHard问题的人,用Windows的机器显然速度不够,而且有时一个问题算上几天甚至几个星期,Windows机器是以"死机"著称的,我们怎么能放心所以几乎所有科学计算程序,EDA程序,高性能图像处理程序都不是Windows的。他们有时也会移植一些给Windows,但是常常降低那些程序的能力。你比较过Windows版本的Mathematica和Linux的有什么区别吗IBM制造的最大的并行计算机有多个处理器,Windows不可能有能力管理这么多处理器,它用的是什么操作系统答案是Linux。《泰坦尼克号》电影里的三维动画,那么细腻逼真,Windows机器能做出来吗不行。那也是Linux机器做的。民航总局用来训练地情人员的虚拟现实训练设备,Windows当然无能为力。那都是商业的IRIXUNIX是最早支持TCPIP网络协议的系统。它上面有很多可以互相协作的网络服务程序,它们经过多年的使用和修订,已经达到比较完善的程度。而就在年,微软的比尔盖茨还在扬言:"Internet是没有前途的。"微软的这个"远见卓识"大家应该都已见识,它后来加上的网络服务程序IIS漏洞之多,让公安部都频频发出警报,大家也是见识了的。其实你知道了,Windows没有一样有用的事情能比UNIX干的更好。Linux干不了的有用的事情Windows照样干不了当然Linux不是万能的。它也有不能干的事情,电脑也有干不了的事情。但是Linux干不了的事情,Windows肯定也干不了。这些事情就是我们需要探索,需要努力的事情了。在你探索的过程中,Linux必定是你的好伙伴。不要把Linux和Xwindow掩盖起来!不要把我们的用户当成傻瓜。什么你早就知道Windows是垃圾噢!你怎么不早说呢!害我废话这么多。嘿嘿。"好了。你知道Windows是垃圾,你现在用什么quot"LinuxXwindow""那我问你,Xwindow是什么样的""不就是跟Windows差不多吗只不过'Start'按钮比较方,而且上面不是一个Windows标志,而是一个脚丫子。点击一下居然还有很漂亮的中文菜单。我喜欢!""你知道什么是'根窗口'吗""不知道。从来没听说过呢""根窗口就是遮盖整个屏幕的那个最大的窗口。""哪儿有什么窗口啊!我没有看到呢"你发现了问题吗这些Linux用户说是在用Linux和Xwindow,但是他们对Linux和Xwindow几乎完全不了解。很多人用了那么久Xwindow都不知道根窗口是什么东西,不知道其实按钮也是窗口,不知道窗口管理器和其它程序有什么关系,大家都以为窗口上面的按钮是程序自己放上去的,不知道窗口quotclassname","resourcename"是什么东西。他们也不知道Xdefaults是用来干什么的。特别是他们很多人都不知道Xwindow的字体是如何命名的,什么是fontset,有了一个新的字体也不知道怎么安装。他们被遮在Linux之上的一层一层的包装迷惑了,他们等待有图形界面的工具来帮助完成一切事情,他们认为Linux跟Windows一样,只是麻烦一点。他们知道Linux内核很好,但是他们感觉不到Linux和Xwindow在操作层面的天生的先进性,随后不久就把Linux完全删除掉了。你发现没有,要用户理解UNIX和Xwindow的操作层面的先进性,才是留住用户的最好办法。如果用户体会不到操作时的方便和高效,内核再好他们也不会理会。但是用摹仿Windows的作法来吸引用户,永远会失败的。因为Linux如果摹仿Windows那一套低效率的方式,那么Linux的这套"低效率方式"永远比不上Windows的那一套"低效率方式"。那么用户就会说:"这个Linux,没有一样比的上Windows。"Linux天生就是继承了UNIX的高效的工作方式,为什么我们要把它掩盖起来我们为什么只告诉用户KDE的菜单怎么用我们为什么不能像早期的Xwindow书籍那样第一节就告诉用户什么是Xserver,什么是Xclient,什么是WindowManager,什么是根窗口。第二章就告诉用户窗口有哪些属性,什么是classname,resourcename,hint,怎样使用Xdefaults,xrdb……在这里我又不得不说一下那些Linux的发行公司和写书的人,他们把Linux和Xwindow包装起来,却没有从基本上告诉用户Xwindow的工作原理。很多书籍讲授的层次就是在Gnome,KDE的菜单操作的层次,靠大量抓图来占篇幅,"繁荣"Linux书籍市场。现在很多人已经把能够利用别人的库写出一个好看的程序作为自己编程水平的象征。在这quot图形化","可视化"的年代,你如果还在用troff,LaTeX写文档,你还在用VIM自己编辑HTML,用Mutt处理邮件,你还在用文本模式的gdb调试程序,你还在用Xlib写程序,你还在用tin上USENET,你还在自己写Makefile,写机器代码,你还在玩ClossalCave这样的字符模式冒险游戏,那你就是老古董。其实这种思想是错误的。虽然你是一个坚决的Linux支持者,但是你的思想是Windows的思想。你认为图形界面,菜单,按钮就可以解决一切问题,就可以给你高效方便。你还是没能摆脱微软给你的潜移默化的东西。你其实离不开Windows那样的环境,你迟早会删掉自己的Linux。GUIvsCLI做一个坚定不移的"两面派"大家看到这个标题是不是热血沸腾两派大虾都可以围攻我了:GUI派用户:"哇!我一看你这小子就是CLI的。要不然自己写什么Makefile用什么Mutt"CLI派用户:"切~你还用X!高手都不用X。你是GUI那边的。"可怜的我:"~~你们都不要我~~GUI和CLI就那么水火不容吗"计算机界这样的门派之分还很多。很有特点的就是CLI和GUI了。CLI(CommandLIne)的狂热份子声称永远不用X。我上次在实验室看到一个同学用一个SecureCRT登录到Sun机器,然后用一个vanillavi编辑程序,我建议他启动一个GVIM过来显示在Exceed上可以有语法加亮。但是他坚决反对,说:"高手不用X。你想想,要是我在一个很慢的网络连接怎么用X而且好多服务器没有装X程序。"但是我们实验室的网速可够快,Windows机器都有Exceed啊,而且Sun机器有全套X客户程序包括GVIM。他说他是CLI的坚决拥护者,但是他却在用Windows,他后来打开了好几个SecureCRT,每次从文本框输入地址,用户名和密码,从下拉菜单选择"SSH",然后点击"Connnect"。他还不断的夸SecureCRT是"网络管理员投票选出的最受欢迎的登录方式"。老天,SecureCRT本身就是个GUI啊,他其实没有明白Xwindow的好处。你说我是GUI的我虽然很少在console下工作。但是我对bash,VIM很熟悉,我可以让bash按照我的键绑定方式来工作。我可以在rxvt里使用Mutt来收发email。我的每个桌面上都常常堆放着一打不同大小的rxvt。我用VIM编辑LaTeX。我自己写Makefile来维护LaTeX文档。我有时用mpg来放mp。我上BBS用的我自己写的expect脚本。好了,CLI派的朋友可以收我做盟友了你说我是CLI的老古董我的FVWM被我配置为可以"手写操作",我只要画一个"r"就可以启动rxvt,我只要画一个"U"就可以启动GVIM,……我用GVIM语法加亮模式编辑程序,我用Mozilla浏览网页,……GUI派的现在好像认我做朋友了好了。CLI派的朋友,虽然我很喜欢命令行,但是我有时在屏幕上左右画一下就可以执行:ModuleFvwmConsoleterminalrxvtgeometryxbggoldfgmidnightbluefn"adobecouriermediumr*********"你是不是现在又想把我逐出师门GUI派的朋友,虽然我很喜欢窗口。但是我可以在FvwmConsole里输入:All(rxvt)MoveToDesk把我所有的rxvt移动到我现在工作的桌面。"这家伙,怎么这么快就叛变了!"其实何必分什么GUI和CLI,UNIX和Xwindow都是工业标准,它们从设计那天开始就有非常灵活的用法,各个程序,不管是GUI还是命令行的都可以互相协作。UNIX和X是一家,何必搞的那么偏激,非此即彼你从我上面的行为可以看出GUI和CLI的模糊界线吗我就是坚定不移的"两面派"。UNIX是简单的"我相信简单就是最好,如果太复杂,我是不能理解的。"SeymourCray很多第一次用Linux的人会惊奇的发现,Linux的程序居然不quot安装"就可以运行,程序拷贝到随便那个目录都可以用,而不是一定要占用你第一个分区的空间。程序的设置只是一些简简单单的文本文件。你根本不需要什么"注册表修改器"就可以改变系统的设置。这就叫做简单,但是简单就是美。虽然这只是UNIX简单性的一个肤浅的认识,你已经体会到了某些东西。但是简单并不意味着功能弱,并不意味着落后。相反,简单意味着强大,意味着生命力。我不会再继续阐述我理解到的"UNIX的简单",因为这个需要自己去体会。UNIX是永恒的有人说:"Plan会取代UNIX,Mach会取代Linux内核。"但是你如果是一个深入体会了UNIX的人,你就会知道:UNIX的思想是永恒的,不管时过境迁,Plan是否代替UNIX,UNIX的灵魂都会在Plan身上现形!我为同一个设备写过Linux内核和WindowsVxD驱动程序。写Linux驱动程序时,我对UNIX设计的完美的一致性,远见性所折服。UNIX用同样界面的read(),write()系统调用就可以对不同的对象:普通文件,设备文件,管道,管道文件,socket,……进行统一的读写操作。我跟本不需要写一个测试用的应用程序就可以对我的设备驱动进行测试,因为cat,cp,dd,它们也使用了同样的read(),write(),设备和普通文件在应用程序眼里没有区别。在那个还没有Smalltalk,没有C的年代,UNIX的设计者已经使用了所谓的"面向对象方法"。对,C语言也可以实现面向对象。UNIX的系统调用几十年都没有很大变化,这非但不是顽固,不进步的象征,反而是UNIX的远见卓识的体现!这就跟TeX程序几十年都不变的情况差不多。这些才是真正的永恒的masterpiece!你应该改变所有软件都必需从,,,,,,,,,,,XP,不断升级的想法。Windows就不同了,它在最开头只是一个DOS之上的图形包装而已。后来为了兼容以前的糟糕设计,不得不加上很多累赘。我写VxD驱动程序的时候就深有体会,Windows程序对设备的操作只有用DeviceIoControl,我不得不写了两个应用程序来对设备驱动进行测试。Windows内核的不一致性和隐密性使我非常恼火。不过WindowsWDM驱动程序现在也有了ReadFile,WriteFile,……那说明什么那说明Windows在向UNIX学习,或者有可能是某个UNIX设计人员在微软打了几天临工,顺手加了几个UNIX的东西进去。这样做是没有用的,Windows从一开始就是非常糟糕的设计,它的历史的包袱太沉重了,缝缝补补有什么用它只能永远的被UNIX甩在身后!UNIX是强大的让聪明人干任何他们想干的事情。UNIX的一个特点就是非常高的灵活性,Xwindow也具有这种灵活性。这种灵活性体现在哪里呢UNIX的程序一般都有很多参数,不管你现在用的着用不着,总有人需要某些参数。它们的行为很多都可以用配置文件来改变。比如GNUbash,通常缺省的命令行输入方式是Emacs方式,但是只要我编辑一个inputrc文件,就可以把它变成vi的输入方式,而且我还可以自己绑定键序列到某些操作。我可以用shopt来设置它的很多特点,比如是否进行通配符扩展,是否可以把一个变量当作一个目录来cd,是否可以自动纠正某些明显的目录名打字错误……UNIX程序设计的思想是提供给用户"机制",而不限制用户制定"政策"。这是一个重要的尊重用户的作法。我们再来看看Xwindow。Xwindow是一个出色的设计,它把显示服务器和客户程序分开。一个显示上既可以显示本机上的程序,也可以显示别的机器上的X程序,而它们都遵守你的窗口管理器的统一指挥,它们之间可以方便的传送剪贴版数据,各种事件……比如有时我的XFree上会出现四个不同机器上的XTerm,两个不同机器上的GVIM,……它们统一受本机上的FVWM指挥。Xwindow程序都具有很多很多命令行参数和resource参数。你可以随意的在命令行或者Xdefaults文件设置所有的颜色,字体,尺寸……而且如果你用xrdb把Xdefaults导入到根窗口,那么其它机器上没有经过配置的同样的程序,显示到你的机器上的时候也会遵守同样的外观规定。Xwindow的窗口具有Property,也就是一些可以自己定义的共享数据(原子)。正是因为这些Property的存在,使得Xwindow具有无比强大的生命力。X的窗口管理器和其它客户程序之间并没有统一的协议,但是后来出现了ICCCM(客户程序间通信规范),这个规范就是通过property定义的。现在又有人定义了一套"扩展的窗口协议(EWMHints)",使得Xwindow可以具有某些Windows的特征,比如一个工具条程序可以告诉窗口管理器:"这个屏幕下面被我占据了个像素的空间,你最大化程序的时候不要越过这个界线。"一个强大的窗口管理程序比如FVWM,它收到这样的提示时,可以答应工具条程序的这个要求,也可以不答应。一切选择的权力在于谁当然是用户了!你想想,是不是有些Windows程序常常弹出一个窗口要你选择"YesorNo"你不点击它它就不下去。你觉不觉得你的程序在侵犯你的尊严你是一个人,一个智慧的生物,怎能受到一个程序如此的待遇还有就是很多Windows程序把人当成傻瓜,而它是"智能程序"。比如,有一个程序就是喜欢把你的每句话第一个字母都变成大写,我不说它是谁了,你遇到的时候就知道了。如果连"一句话开头一个字母要大写"这么明显的问题都需要程序帮你纠正的话,人脑还用来干什么况且如果你故意想要不大写的话,那就更麻烦了,我楞是没有从它那一大堆菜单里找到怎么关闭这个愚蠢的选项。只有符号才能完全操纵计算机。我们来说说很多初学Linux的用户。虽然他们在用Linux,但是他们打心眼儿里是觉得Windows的工作方式好,他们希望Linux有一天能"像Windows那样"。你说:"我的鼠标一点,我菜单一拉,……就可以完成我的操作。"但是我要告诉你:"Linux从来没有摹仿Windows,将来也不会。Linux从诞生之日起,它的工作方式就比Windows的先进。Linux属于能勇敢面对符号的人。只有符号才能完全操纵计算机。"看看优秀的UNIX程序,XFree,FVWM,VIM,Emacs,proftpd,Mutt,wget,tin,没有一个不是用配置文件来设置选项的。为什么这些程序没有方便的菜单可以用来配置难道它们的设计者就那么低能,连个图形配置界面也写不出来当然不是。因为图形界面配置方式的能力是极其有限的,而配置文件和程序语言的表达能力却是无限的。用图形界面配置这些程序的话,如果你想达到配置文件的效果,你需要成百上千的菜单,checkbox,radiobutton,到时候你根本没办法找到你需要修改的地方了!而各个程序的配置文件的语法都有很多相似之处,一般就是一些命令,设置一些变量,参数,……一旦用会了一个,其它的也就容易理解了。如果你用惯了awk,sed,Perl,你会觉得那才是真正的自动化啊。鼠标虽然是很好的工具,但是它的表达能力是有限的。你不可能光用鼠标就让电脑完全明白你的意思,它毕竟只有个按钮。看看我的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的文件操作,管道是如此的不稳定,程序之间基本不能合作。你别想在VisualStudio窗口里面嵌入UltraEdit编辑器,你别想用一个expect脚本来控制telnet到水木清华BBS。Windows的程序都是大而全,大而杂,所有的电子邮件程序都需要自己提供编辑器,自己发送和收取邮件,自己显示邮件的附件。每一个BBS程序都提供自己的VirtualTerminal,自己的通讯代码。每一个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用户的帮助,否则他们会在分种之内帮你搞定。一个星期也太夸张了如果一开始用的就是Linux就没有这个问题。你想想如果你没有用过windows,你肯定会很习惯etc,usr,usrlocal,而不是C:,D:,E:,是不是如果你只用过Linux,你第一次用windows时恐怕也会问:"bin目录哪里去了啊"最重要的是,你用惯了的UNIX工具,它们可以伴随你一生,而不会那么容易变化或消失。你可以永远不用再换另外的工具了。除非那个工具比你这个好的太多,而且可以完全模拟你现在的工具。我们实验室一个多岁的老师,用vi,cc,make,都几十年了,他以前的经验绝对没有白费,而且教会了我们一批又一批的学生。vi伴随着UNIX的最初发行而诞生,直到今天还是世界上头两号编辑器之一!有些人的FVWM配置文件已经用了多年,现在完全不经修改还可以用。看看Windows的工具,你从BorlandC换到VC,就必需适应新的环境:菜单不同了,颜色不同了,按钮不同了,帮助信息不同了,热键不同了,编译器参数,调试器功能也不同了,……那个时候恐怕花要花你很多时间去适应。当你刚刚适应了VC,你又要换成VJ,PowerBuilder,CBuilder,很多windows程序员都是这样,开头在dos下用TurboC,然后是BorlandC,VC,CBuilder,不断追赶微软的潮流。而且微软的SDK,MFC,NET……什么都在不断变化,不断出问题,又不断的在修改……Windows程序员不得不买又厚又重的MicrosoftPress的书籍,看了才一个月,又过时了。今天你才学会了写VxD,明天你就必须用WDM了。你不得不注册MSDN才能赶上Microsoft的步伐。很多人说:"计算机是贵族的专业。"这就是微软一手造成的。这些东西才是没完没了的浪费大家的时间和金钱的。这是是浪费生命!我们为什么不使用从诞生就那么一致和完美的UNIX你需要理解先进工具的设计理念。UNIX的工具就像我们用的汽车,它的离合器,油门,刹车,方向盘,后视镜,永远都在同样的位置。用惯了的话,你对你的汽车的每一个部件都会了如指掌,甚至你自己都可以修车了。这难道不好吗有人说:"你说我们需要了解UNIX,难道你要开车还必须了解汽车的结构吗"你去问问开车的司机,哪一个不了解汽车的结构的,那他的驾照就是混来的。你难道想要傻瓜型的"微软牌汽车"吗我们来看看:你买的微软牌汽车最开头只有一个座位,每加一个座位你得向汽车公司付钱。车上的防撞气囊不时会冒出来,说是为了你的安全。每开英里要大修一次,每过一年要换一次引擎。附带的,你还必须换用由微软汽车公司指定的石油公司提供的新型号的机油。你的车出了问题,但是法律规定,你不准私自拆开你的汽车来修理,你必需到微软汽车公司指定的维修点去,需要付相当多的钱才能修好一个小毛病。最可气的是,你每换一个型号的微软牌汽车,它的刹车和离合器都在不同的位置,你需要重新去考驾驶执照。如果这辆汽车在途中刹车失灵,你受了重伤,你也不能状告微软汽车公司,因为你买来汽车之后必须签一个合同,说"由于微软牌汽车对你和家人造成的一切死伤,微软概不负责。"怎样完全用GNULinux工作说了这么多Windows的不好。我还没有告诉你我怎么用Linux处理有些必要的事情。半年以前我由于中文老是配置不好,一直是双系统,不时需要重起到Wink来处理汉字。后来我找到了miniChinput,XSIM和SCIM输入法。这下可以处理汉字了。而且VIM和Emacs对汉字支持越来越好。我的大部分文本是用VIM编辑的,包括程序,信件,网页,LaTeX论文,MetaPost绘图语言。我不用Word这样的程序写论文,而是用LaTeX,因为这是世界上效果最好,最方便的论文工具,是大多数学术杂志要求的格式。幻灯都是用ConTeXt做的,用起来很简单,而且效果非常漂亮。你可以看看我的TeX介绍。至于绘图,你可以用很多可视化的工具,比如xfig,dia。但是对于我来说,任何可视化的工具都不能完成某些任务,我需要一种可以精确描述图形的语言。我找到了MetaPost。它简单又好用,而且效果是世界一流的。我的插图,如果不是图像,都是MetaPost画出来的。我曾经抱怨mozillamail经常突然消失,损坏我好几封快要完成的信件。后来我发现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,DesignCompiler,……还有其它物理上的,化学上的,生物上的……都必然有Linux和UNIX的版本。当然他们很多不是免费的,不要总是觉得什么都应该免费,自由不等于免费。它们是经过很多人辛勤劳动的产物,是可靠的程序,它们物有所值。下面列出我常用的一些Linux程序。一个列表里可能有很多,那是为了方便你来选择,我列出了比较信得过的。但其实很多只有第一个是我真正在用的,我不喜欢试用程序。我不是一个合格的网络管理员,我的服务器都只设置了我自己需要的功能,那样可以省去我很多麻烦。Shell:bash。它结合了csh和ksh的优点,并且有readline功能,你可以随意绑定自己的键盘。编辑器:VIM,Emacs。程序开发:GCC,make,ld,Scheme,jsdk,Perl,Python,TclTk论文,幻灯工具:LaTeX,ConTeXt绘图工具:MetaPost。这个语言太强了,以至于我只用它了。你不熟悉的话可以用xfig,dia来画一些流程图之类的图片。图像处理:ImageMagick。其中的import程序可以屏幕抓图,convert程序可以转换图像格式,display可以显示图片和简单编辑(缩放,换质量,转格式,简单绘图,简单虑镜)。通常我就这么点需要。如果你要更强大的图像工具可以用Gimp,它几乎和Photoshop差不多。自动管理工具:make。我可以用make来自动编译程序,自动编译文档,自动更新插图……全自动,而且不会重复劳动。数值计算程序:SciLab。这个程序基本上可以代替Matlab。代数计算程序:MAXIMA。这个程序基于世界上最老的计算机代数系统之一:由美国能源部(DOE)发行的MITMacsyma系统。它是用CommonLisp实现的。很多现在的符号计算程序比如Maple都从MAXIMA身上学到很多东西。它现在经过DOE批准以GPL发行,永远是一个自由软件。加密程序:GnuPG。我的PGP密钥就是它搞出来的。打包,压缩程序。什么都有:tar,gzip,bzip,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下载回来的文件都是坏的,最后还是wget可靠的传输了数据。用它甚至可以镜像整个网站,比起WebZip这样的Windows程序强多了,而且不会因为你不付钱就在下载回来的网页里强制插入广告。虚拟终端:rxvt,xterm,gnometerminal,mlterm,Xserver:XFree窗口管理器:FVWM。编译加入了libstroke。中文输入:XSIM。被我修改过以适应FVWM的需要。另外推荐你还可以用SCIM。email处理:MuttPostfixfetchmail看PDF,PS,DJVU文件:AcrobatReader,xpdf,GhostScript,gv,djvu工具包和netscape插件。看CAJ文档。我从来不看CAJ之类的文档,如果找不到PDF或PS,直接去图书馆借最好。看网页:Mozilla,Phoenix,lynx。MozillaXft的显示效果比IE好很多。英汉字典:IBM智能词典,星际译王。编辑网页:我用VIM直接写HTML。你如果想要图形方式的可以用其它的比如screem,BlueFish。登录其它UNIX,Linux机器:openSSH,telnet。我喜欢用openSSH把其它机器的X程序通过ssh加密的隧道传到我机器上显示。登录Windowsserver的displayservice:rdesktop,我有一天试了一下,不错。后来就没有用过了。同步程序:rsync。我用rsync通过ssh来跟某些机器同步数据,或者做自己机器上不同目录间的同步。上BBS:rxvt(或任何一种终端)telnetchatbot(helloooo机器人的程序)QQ,ICQ:我没有QQ或ICQ。不过你可以用Gaim,它同时支持QQ,ICQ和很多其它的即时通信方式。ICQ用户也可以用Licq。放录像:MPlayer,RealPlayer。MPlayer太好了,直接就可以放VCD,DVD,divx,wma,wmv用Windows的同学都很羡慕我,说Windows要放这个需要大堆插件。rm最好还是用realplayer放,它也是免费的。放音乐:xmms(mp,ogg都可以),mpg(放mp),ogg(放ogg)。mpg不如xmms管理音乐文件那么方便,但是有时我还是用mpg放mp作为背景音乐,因为懒得开一个xmms窗口:)游戏:我觉得KDE的那个ksokoban(推箱子),很好玩:)看Word文档。请Word用户把文档全部转为PDF或PS再给我,文档里没有特殊的格式干脆就用文本吧,何必那么麻烦。以前很奇怪的是,通知里本来没有什么特殊的格式居然还要发doc附件的email。现在好了,我们系发通知都用文本,PDF,甚至图片了。其它程序:还有很多我需要用而你不一定用得着的。比如,DoctorScheme,Scheme,Scsh,kawa这些程序只有DoctorScheme有Windows版本。还有很多幕后工作但是你一般不察觉的:xinetd,telnetd,sshd,crond,atd,lpd,他们都比Windows的对应者强的多,或者根本没有对应者

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/34

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利