分类目录归档:转载

R. Stallman及其生活方式 2009-08-24

在美国,有人说,自由软件的伟大旗手R. Stallman的生活方式非常“吝啬”(cheaply),甚至可以说非常“另类”。

今年,Stallman已经53岁,还是单身一人,住在一个“一居室单元”里面,工作、居住“一体化”,没有私人豪华轿车,不玩MP3播放器,甚至连“手机”也不用。Stallman留着大胡子、披肩发,样子确实怪怪的。这是什么原因呢?Stallman很穷吗?那倒也不是,这是为什么呢?

上周,R. Stallman在Lehigh大学讲演,力促他的听众,把开源(Open Source)当成一种生活方式,而不仅仅是一种计算方式。他说,“使用商业化的私有软件往往导致人们之间的“分隔(divided)”,因为,你不能把私有软件的拷贝(自由地)送给你的邻居,去帮助他们,而且,由于看不到源代码,往往使我们显得很无助(helpless)”。因此,Stallman拒绝使用含有私有软件成分的电子产品(器件),比如,媒体播放器(多半内含私有解码器)、个人用手机(不少是在私有软件平台运行的),等等。

Stallman是怎么想的呢?人们往往根据使用的方便性、可靠性、易用性和成本等因素来“选择”计算机软件,然而,他认为这种“选择”是根本错误的。因为,它们不允许我们知道什么才是重要的。他向听众说,软件的“选择”原则应当是使其源代码对于所有用户都是开放的,以便可以修改、调整和进一步完善其性能。他说,私有软件的内部结构是严密“看管”的一项机密,任何修改(tinkering)都是非法的。

Stallman回忆说,在1984年,他在写自由软件运动的宣言时,自由软件运时在当时并没有敌人。然而,今天情况不同了,出现了自由软件的诋毁者(detractors)和变节者(defectors)。当今,只有少数GNU/Linux发行版不包含私有软件,比如:Ututo、Blag和gNewSense等Linux发行版。Stallman继续说,今天计算机的普及应用情况,在20多年前,那简直是不可想象的。

Stallman确实是个怪人,关于他的“吝啬”生活方式,他甚至辩解说,“不要买房子、不要买汽车、不要生孩子,你将为此付出你一生的全部时间去赚钱,支付这笔开销”。这就太极端了,人活着的乐趣全没了,搞自由软件也不能痴迷到这种“3不要”的程度,怪不得有人称Stallman的生活方式是“Live Cheaply”(吝啬的生活方式)。

Stallman的贡献是伟大的,根据GPL许可证,自由软件允许人们自由地拷贝、修改和分发,发挥出软件的最大效力,极大地增加了社会整体的计算机能力。现今,核心自由软件已有两亿多行源代码,价值近100亿美元,是人类的一项宝贵财富。善用它,用好它,是我们的责任。GPL v3新版本突出了软件开发者是自由软件版权人应有的合法地位,明示社会公众,自由软件是版权软件,但是,允许人们自由使用。根据GPL新版本的规定,凡违反自由软件“游戏规则”者,一律不得涉足自由软件的应用领域,否则,一定会收到自由软件开发者的(电子)警告,在60天之后,会招致法律侵权诉讼。

至此,自由软件的GPL新版本不能再当成“耳旁风”、视为无所谓的“说教”。真正的“开源经营”的模式,即将浮出水面,“开源经营”的假面具必须撕去。

开源大师:Richard Stallman 2007-01-10

导语:在Richard Stallman的理论下,用户彼此拷贝软件不但不是“盗版”,而是体现了人类天性的互助美德。对Richard Stallman来说,自由是根本,用户可自由共享软件成果,随便拷贝和修改代码。他说:“想想看,如果有人同你说:‘只要你保证不拷贝给其他人用的话,我就把这些宝贝拷贝给你。’其实,这样的人才是魔鬼;而诱人当魔鬼的,则是卖高价软件的人。”可以断定,进入世纪末,软件业发生的最大变革就是自由软件的全面复兴。在自由软件的浪潮下,软件业的商业模式将脱胎换骨,从卖程序代码为中心,转化为以服务为中心。

Richard Stallman白描:五短身材,不修边幅,过肩长发,连鬓胡子,时髦的半袖沙滩上装,一副披头士的打扮。看起来象现代都市里的野人。如果他将一件“麻布僧袍”穿在身上,又戴上一顶圆形宽边帽子,有如绘画作品中环绕圣像头上的光环。一眨眼的功夫,他又变成圣经中的耶稣基督的样子,散发着先知般的威严和力量。

五短身材,不修边幅,过肩长发,连鬓胡子,时髦的半袖沙滩上装,一副披头士的打扮。看起来象现代都市里的野人。如果他将一件“麻布僧袍”穿在身上,又戴上一顶圆形宽边帽子,有如绘画作品中环绕圣像头上的光环。一眨眼的功夫,他又变成圣经中的耶稣基督的样子,散发着先知般的威严和力量。野人与基督,恰恰就是自由软件的精神领袖理查德・Richard Stallman的双重属性:他既是当今专有(私有)商业软件领域野蛮的颠覆者,又是无数程序员和用户心目中神圣的自由之神。在他的理论下,用户彼此拷贝软件不但不是“盗版”,而是体现了人类天性的互助美德。对Richard Stallman来说,自由是根本,用户可自由共享软件成果,随便拷贝和修改代码。他说:“想想看,如果有人同你说:‘只要你保证不拷贝给其他人用的话,我就把这些宝贝拷贝给你。’其实,这样的人才是魔鬼;而诱人当魔鬼的,则是卖高价软件的人。”可以断定,进入世纪末,软件业发生的最大变革就是自由软件的全面复兴。在自由软件的浪潮下,软件业的商业模式将脱胎换骨,从卖程序代码为中心,转化为以服务为中心。有人说,Richard Stallman应该算是世界上最伟大,软件写得最多的程序设计师。但是,Richard Stallman真正的力量,还是他的思想。

自由软件是计算机业的传统

自由软件不是新生事物,而是计算机业与身俱来的传统。纵览计算机发展史,从1946年到60年代,从IBM蓝色巨人到ARPANET,从集成电路到PC机,从互联网到电信自由经营,每一个时期都留下了“自由”的影子。可以说自由拷贝和源代码开放是整个计算机业,包括个人电脑及互联网两大领域的天然的软件开发和传播模式。早在60年代,就有以大学为阵地,以年轻人为主题,自由地交流的风尚,并在软件开发与研究方面硕果累累:如Unix、TCP/IP、Fortran、Pascal、LISP等等。当70年代,AT&T被迫退出计算机业时,Ken Thompson和Dennis Ritche从贝尔实验室将Unix的源代码拿出来,结果吸引了成千上万名程序员,为其改进、修正、添加,诞生了多年来高端系统最核心的操作系统–Unix的繁荣。70年代中期,个人电脑革命还在酝酿之中,当时的软件是鼓励自由拷贝的(那时还没有发明盗版的名目),正是这种自由拷贝、信息共享的精神上点燃了个人电脑革命,促成了软件业的发展。甚至连盖茨起家的Basic也是依靠这种自由软件才流行起来,才为事实标准。其实,后来的许多软件都是依靠共享方式才取得成功。在互联网发展初期,程序员也是将源代码自由共享。当时基于UUCP的UUCPNet和基于TCP/P的ARPANet(互联网前身),都有Usenet社区,其目的就是共享源代码交流经验。进入90年代,奠定互联网爆炸的一些关键技术,如伯纳斯-李发明的WWW技术,浏览器以及Apache、BIND等等全部都不是诞生在专有软件世界里。可以说,是自由软件的精神和创新奠定了整个计算机业的核心。忽视自由软件的传统和作用是不科学的。70年代末,微软公司的创始人比尔・盖茨《致电脑业余爱好者的一封公开信》为标志,以世界知识产权组织《伯尔尼公约》为框架,软件步入了Copyright的时代。随着现代商业软件的发展,对利润的疯狂追逐不但割裂了传统,极大地偏离了计算机的基本精神。而且还在不断变本加厉。因此,自由软件的复兴首先是对现有版权体系的强力反叛。软件源代码是交流技术、交流思想的主要媒介,正象传统的科学是通过论文、著作进行交流一样。企业为了保护软件的知识产权而将源码秘而不宣,已经背离了知识产权保护创新的基本精神。Richard Stallman在《为什么软件不应有‘所有者’?》一文中指出,软件的编写者将软件“据为己有”看上去天经地义。但必须看到,一个软件并不是单纯的工具,一旦软件的编写者将其传播出去,就不简单地是在提供“工具”,而是在传播“思想”。在这一点上,现有的版权体系采用了所谓保护“表达(Expression)”,不保护“思想(Idea)”的两分法,为软件保护问题设置了无法解释的障碍,造成了软件的精神分裂。同时,自由和共享也是计算机发展的内在精神和永恒的追求目标。有人指出:在互联网被标榜为“资源共享”、“资源优化”的利器的时代,却不能对软件产品真正实现“共享”和“优化”,这不能不说是一个巨大的讽刺。

黑客传统

Steven Levy的名著《黑客:电脑时代的英雄》论述了个人计算机兴起的历史。该书最后一章讲述了理查德・Richard Stallman的故事。题目就是:“最后一个真正黑客”。这是对他最恰当的评价。连他的反对者也说:“如果不存在Richard Stallman,人类也应该把他创造出来。”1971年,年轻、聪明绝顶的程序员Richard Stallman进入MIT人工智能实验室工作,成为软件共享社区的重要成员。其实这个社区已存在多年。当然,软件共享也只不过局限于这个特定的社区中。它与计算机的历史一样悠久。就象配料共享与烹饪一样古老。计算机业的传统就是:一切为人人所共享。私有让人嘲笑,专用受人鄙视。当时,人工智能实验室使用一个ITS(不兼容分时系统)分时操作系统。黑客们(不是大众媒体所谈的安全破坏分子,而是指酷爱编程的人)是用汇编语言为Digital的PDP-10设计和编写的。PDP-10是当时最著名的计算机之一。作为社区成员和实验室的系统黑客,Richard Stallman的工作就是改进系统。当时没有人称它为自由软件,因为这个词还不存在。但实际上就是这么回事。无论是某个公司成员或另一所大学想获得它,大家都会非常高兴地把源程序给他。如果你看到别人使用一种你没见过且有意思的程序,你可以坦然地向他索要程序,这样你就可以读它、改它,或拆卸部分用于新的程序。进入80年代,这种自由发生急剧变化,DEC的PDP-10系列发生中断了。它的自由体系架构,在60年代显得强劲、先进。但到80年代就捉襟见肘,没有足够多的地址空间。这意味着几乎所有的为ITS编写的程序都作废了。黑客社区也崩溃了。然而,到80年代后,计算机的商业化和软件专有化席卷整个产业,黑客们的黄金时代结束了。一个又一个有才能的MIT编程员离开了校园,投入了市场的怀抱。尤其是Symbolics公司的成立,挖走了社区中的许多黑客,大大伤了MIT人工智能实验室的元气。Richard Stallman感到:一个时代结束了。Richard Stallman说:“那时,人工智能实验室已没法再支持下去,我是最后一个还想让它活起来的呆瓜。但后来我也没办法了,因为一个人根本发挥不了作用。”开始,他觉得这样与现实抗争没有什么意义。但他终于看出,他真正的敌人不是Symbolics,而是整个不开放源代码的商业软件业。1981年,当人工智能实验室购买了新的PDP-10时,领导决定用Digital专有的分时系统来代替ITS。当时的计算机,无论是VAX或68020都有他们自己的操作系统。但没有一个是自由软件:你要获得一份可执行的拷贝必须签署一份不准向外公开的协议。这就意味着使用计算机就得承诺:不能帮助你的邻居和朋友。这是软软件业迈出的可怕的第一步。一个相互协作、彼此交流的社区就这样被禁止了。由专有软件所有者所制订的规则:“如果你与你的邻居共享,你就是盗版者。如果你想作点改动,那你得乞求我们来做。”

究竟谁违背了道德

实际上,恰恰是专有软件的理念–不允许共享或改动软件–是反社会的,也是不道德的,而且也是完全错误的。但是长期以来,软件出版商使人们相信:软件天生就该如此。这种片面的认识禁锢了人们的思维。当他们在谈论如何加强版权或打击盗版时,他们也认定这是天经地义,人们也会毫无异议地接受。他们的第一个假设就是:软件公司对自己的软件拥有毫无疑问的天然权力,因而可以将权利施加到所有用户身上。(因为如果是天然权力,那不管对公众会造成多大的损害,我们也不能加以反对。)但有意思的是,美国宪法和美国法律惯例否定了这种看法,版权不是一项天然权力,只是一项人为由政府施加的独占,他限制了用户拷贝的天然权力。另一个潜在的假设是,软件唯一重要的事就是它允许你可以做什么。而我们的计算机用户不必考虑我们处在的社会状况,被动接受就行。第三个假设就是如果我们不允许软件公司给用户施加权力,我们就没有可用的软件。这个假设看起来似是而非。实际上当自由软件兴起后,我们无须戴上锁链就能获得大量优秀软件。如果我们拒绝接受上述假设,并从“用户第一”的基本道德常识上来考虑问题,那么我们将得出截然不同的结论。计算机用户应该有自由根据自己的需求修正程序;用户有自由共享软件,因为帮助别人是社会的基础。而软件厂商不可以对用户施加压力,剥夺用户的各种自由。Richard Stallman经历过沉痛的遭遇。70年代,激光打印机大得像吉普车一样,所以Xerox(施乐)送了一台图象激光打印机给人工智能实验室时,人们发现唯有人工智能实验室的九楼机房里,才找得到位置放它。在大楼里所有人只要在各自的电脑上打些指令,叫打印机帮你服务。它的打印速度令人满意,只是有时纸印光了或夹了纸,一大堆人的列印工作就全部停了下来。有时有的人要印上一大堆东西,而有些人只要印一两张时,不得不爬上九楼,把印表机的控制改一下,使它先印一两张。于是一天就这样爬上爬下,没有人受得了。幸好印表机送来时,Xerox把驱动程序的源代码也随机附上,实验室的人就把控制打印机驱动程序的功能作了些修改,大家都省了不少麻烦和汗水。Richard Stallman回忆地说:“你的打印工作做完后,它还会通知你;如果夹了纸或你想问些什么打印上的事情,它也会让你知道。”1978年,一切都变了。Xerox送了一台叫Dover的新打印机机给人工智能实验室,但不愿再附上源代码。Richard Stallman说:“因此我们没办法修改驱动程序,于是整个大楼的打印效率又回到从前,卡了纸或把纸印光了,你在下面也无法知道。”他和人工智能实验室为给打印机添加功能以便机器更好工作,希望获得打印机控制程序的源代码,结果被严正拒绝。“因此,我再无法说服自己不公开协议是纯洁清白的。当他们拒绝与我们共享时,我十分气愤。我不能更更弦改辙,对别人做出同样的事。”

赤裸裸的道德抉择

“随着社区的终结,我面临着一个道德上的抉择。最简单的就是投身于专有软件世界之中,签署不公开协议,并承诺不帮助同行、同事。而且自己也很可能编写软件,并在不公开协议的前提下发布软件,去同流合污,迫使更多的人背叛自己的原则。显然,走这条路,可以挣大钱,而且使编写代码的工作增添一份金钱上的快乐。但是我知道,等到自己职业生涯终结时,我再回首这些年为分离人类而砌造的‘墙壁’。我会感受到,我将自己的一生都用在使这个世界变得更加糟糕。”另一个选择,很直截了当,但令人不愉快,那就是从此离开计算机领域。“这样我的技能不会被滥用,但也将被浪费,我不会因为分化和限制计算机用户而感到有罪,但这些事情会继续发生。”“因此,我开始寻找一条出路,使程序员可以做真正的好事。我问自己,我能写什么软件,我能否让社区重焕生机。”答案很明白:首先需要的是一个操作系统,这是开始使用计算机的关键软件。有了操作系统,就能做许多事,没有操作系统,计算机都无法运行。有了自由操作系统,我们就能再次组建一个相互合作的黑客社区。而且任何人使用自由软件都不必剥夺他/她与朋友家人的共享权利。作为一名操作系统的开发人员,Richard Stallman无疑最胜任。“虽然我没有认为自己一定能成功,但我意识到自己就是命定做这项工作的。”Richard Stallman选择做一个与Unix兼容的操作系统。这样容易被移植,而且Unix用户可以方便地转移过来。GNU这个名字确定就是遵循黑客传统,是一个递归的缩略词:“GNU*S NOT Unix。”一个操作系统并不仅仅意味着一个内核,而且仅能运行其他程序也是不够的。一个完整的操作系统,要有指令处理器、汇编程序、编译器、解释程序、调试器、文本编辑器、邮件软件等等一个完整的系统。自由软件“free software”是一个被广泛误解的词,这个“free”完全与价格无关,它指“自由”。这就象“自由讲演(free Speech)”与“免费啤酒(free Beer)”的区别。其主要内涵就是用户可以自由运行软件,可以按自己的要求自由修改软件,用户也可以自己销售软件,不管是收费的还是免费的。自由软件与出售软件拷贝并不冲突。开发一个完整的系统是项庞大的工程。Richard Stallman决定尽可能采用已有的自由软件,比如一开始他将Tex作为主要的文本格式标识符,几年后他又用X Windows系统作为GUN的图口系统。思想比代码更闪光,但没有代码,思想是没有躯体的。

一个人的战争

1984年1月,Richard Stallman辞去了MIT的工作,他担心MIT会要求产品的所有权,会给产品强加入自己的销售条件,最终又会成为专有软件。一开始,GNU计划只有他一个人。他发现自己原来在人工智能实验室的办公室,还没有分给其他人用时,他就每天晚上溜进去工作。久而久之,白天他也跑去用实验室里的电脑。当时人工智能实验室主任Patrick H. Winston并不干涉。因为Winston始终不把Richard Stallman的辞职当真,只要Richard Stallman能创造些好东西给大家用,实在没有必要把这位共事13年的老同事打发走路。因此他爽快地邀请Richard Stallman可以继续使用实验室的设备。从此,Richard Stallman就成了特殊的一员。工程启动后,Richard Stallman听到有一个自由大学编译器套件(VUCK)。他去信询问能否用入GNU。答复是嘲弄式的,说对大学是自由的,但软件本身不行。于是,决定他为GUN编写的第一个软件就是一个多语言、多平台的编译器。他想利用Pastel编译器的源代码,但最终放弃。从头编写了新的编译器,名为GCC。1984年9月,Richard Stallman开始GUN Emacs,1985年初,它开始可以工作。这使它可以用Unix系统进行编辑。此时,人们开始想使用Emacs。因此一个现实的问题是:如何传播它?当然,他将其放到了MIT计算机的匿名服务器上。但那时互联网 还未普及,人们很难通过FTP获得拷贝。而失业的Richard Stallman也需要收入。于是,他宣布任何人都可以用150美元的价格获得程序。自由软件的分销商业模式就此诞生。如今,整个基于Linux的GUN系统都是如此。为防止不肖厂商利用自由软件,使其专有化。Richard Stallman别出心裁,创造了Copyleft的授权办法。所有的GNU程序遵循一种“Copyleft”原则,即可以拷贝,可以修改,可以出售,只是有一条:源代码所有的改进和修改必须向每个用户公开,所有用户都可以获得改动后的源码。它保证了自由软件传播的延续性。

市场里出政权

EMACS这样的程序最难的是开头。一旦第一版本推出之后,就有一大堆人去玩它,然后精益求精,越改越好。目前已有几百种EMACS的副程序,可用在50多种电脑上,从微电脑到Cray的超级电脑都可用EMACS。由于EMACS的成功,Richard Stallman设立了个新的基金会:自由软件基金会(Free Software Foundation(FSF));捐助FSF和GNU计划的厂商,也可享有减税的优待。单单1989年,FSF就收到267782美元的捐助,基金会也因出售GNU程序手册和电脑磁带,而赚了330377美元。此外,Richard Stallman也不再天天溜回人工智能实验室“借”用电脑,因为许多厂家已为FSF提供一大堆的高性能工作站等硬件设备,包括HP、Thinking Machine、Sony,甚至UNIX的娘家—贝尔实验室,也贡献了不少设备。也有一些厂商捐赠现金,并把技术人员送到FSF来向Richard Stallman学习,而且支付Richard Stallman的员工薪水。FSF就用这些钱来养起14位基金会成员: 9位程序设计师,3位负责技术资料撰写。虽然Richard Stallman自己不支薪,但他不能期望他的同仁也和他一样看得开,而饿着肚子为理想拼斗。FSF的程序设计师一年也只有2万5千美元的薪水,这是一般厂商的一半或三分之一。Richard Stallman之所以以低薪待人,原因就是可多请几位志同道合的黑客,为理想而工作。GNU在工作站和微机市场很风光,许多工作站/UNIX和微机厂家,都把GNU纳入他们操作系统,包括Convex Computer、DEC、Data General及以前的NeXT等。GNU工程激励了许许多多年轻的黑客,他们编写了大量自由软件。最后,是里奴斯・托瓦斯编写了系统内核,称为Linux,把所有软件和硬件连接起来。Linux内核为GNU工程画上了完满的句号。  Richard Stallman说,Linux并不能代表整个操作系统。Linux只是内核,整个系统还包含数以百计的软件工具和实用程序,大多是由GNU黑客们完成的。他认为,整个操作系统称为GNU/Linux比较合适。Richard Stallman认为,在Copyleft时代,软件公司可以靠服务和训练赚钱。如果你公司没有人会用源代码,你就得请位程序员,帮你修改由FSF得来的Copyleft程序;你不必怕你出钱所改的程序会流传到另一家公司,因为那家公司也许会为这软件改头换面,帮它抓虫,或修改,或添加些新功能。而在任意拷贝的情况下,你也因而受惠。所以程序员绝对饿不死,仍会像现在高价软件的时代一样,有许多“服务”的大钱可赚,只不过不可能象盖茨这样积聚起世界第一的巨额财富。而GNU的软件也能使写程序的人更具生产力,因为他不必凡事都从零做起,可根据已有的软件来改进。所以Richard Stallman希望,有一天软件业者不是靠目前的“Copyright”版权法,迫使客户花费巨额资金购买软件,而是依仗提供服务(如技术支援、训练)来获取应得的报酬,这种报酬可能会比一般人高,但是绝对不可能为一个小公司培养出几百个百万富翁。简而言之,未来软件业的基本准则就是“资源免费,服务收费”。近几年,随着Linux的迅速崛起,再也没有人对自由软件的全新商业模式表示怀疑。在 Richard Stallman思想的指导下,自由软件已经成功地步入市场主流,占据了市场实地。毕竟,在商业横流的今天,思想在贬值。自由软件也只有在夺取市场政权后,才能真正确立自己的实力地位,促使整个软件业模式发生巨变。

孤独是思想家的归宿

目前发展的势头表明,完全站在用户一边的自由软件不可抵挡。它面临的唯一敌人还是自由软件领域内部的分裂和争斗。除了市场原有垄断者外,这是任何人都不希望看到的。Richard Stallman总是风尘仆仆,行囊相随,四处布道。他带着一台笔记本电脑,但这不是他个人的,而是属于自由软件基金(FSF)。其实,Richard Stallman 从来就没有拥有过一台自己的计算机。也从来只用自由软件(当然他从来没有用过Windows)。而且,他也没有自己的汽车、电视和房产。这位46岁的单身汉节俭地居住在一间租来的房子里。已有15年了,没有领取过一个月的正式工资。因为他的工作就是使软件获得自由。在商欲横流的今天,人们更愿意追逐财富,而不是贫寒的Richard Stallman 的高尚思想。因此不足为怪,连自由软件团体内的许多人也开始离他而去。随着自由软件迅速崛起,影响力大增。Richard Stallman毫不妥协的个性和思想使其在自由软件内部也越来越成为争议人物。随着Apache Web服务器和GNU/Linux操作系统的日渐流行,新一代黑客们受到鼓舞,纷纷投入商业领域,越来越多的人加盟自由软件,他们是一类全新的黑客:一方面呼应自由软件的精神,一方面又积极拥抱商业世界。他们鼓吹自己能够创建比专有软件更稳定更灵活更少“臭虫”的软件产品,同时又积极捕捉每一个商机。于是,“持不同政见者”将自由软件的标签改成了“开源软件”。看起来好象两者兼容,但Richard Stallman认为,两者最大的区别就是后者将自由精神放在首位。但是对商人来说,自由(free)与免费(free)是同一个词。与Richard Stallman布道“自由精神”不同,他们更愿意谈论实际问题。为了避免纷涌而来的投资者被Richard Stallman“吓跑”,他们还得联起手来,将Richard Stallman屏蔽起来。Richard Stallman不喜欢实用主义的辩词,他宣称即使一个自由软件不是他最佳的解决方案,他也愿意作为首选。对Richard Stallman来说,自由是基本的道德美德:所有的计算机用户都应该享有相互协作、共享,以及拷贝和交换源代码的自由。他的态度使一些“开放源代码”社区派系的人感到不安。实际上,他们标出“开放源代码”新旗号的目的就是要与激进分子Richard Stallman划清界线。不可否认,正是Richard Stallman领导了自由软件运动,正是他自己开发的千万行程序代码使如今的“Linux”成为一个整体,并走向成功。但对于新一代的人,Richard Stallman是一种困窘,是一种障碍,更是一个捣乱分子。必须将他不惜代价地推入密室,以免吓跑投资者。

现实主义与理想主义之争

毫无疑问,无论是自由软件运动还是开放源代码,都来源他15年前开始的努力,这肯定是计算机历史上最脍炙人口的传奇故事。对于目前的成功,Richard Stallman感到非常高兴,但也有更多的焦虑。因为他感到自己明显被排斥在外。“有人极力想改变历史,否定我在这场运动中的地位”对于人们用Linux来指代整个操作系统,Richard Stallman十分痛心,他说正确的用词应是“GUN/Linux”。 Richard Stallman承认托瓦斯的贡献很关键,是他完成了GUN/ Linux的内核。但是Richard Stallman估算,内核只占整个系统的3%,相比之下,GUN项目贡献了30%的代码,其余67%的代码来源于其他方面。但令他欣慰的是,GNU的一些原则仍在起作用。他认为这种原则不仅使软件开发更显活力,更能生产出优质软件,还认识到这本身是一种行为准则。批评者认为,Richard Stallman极力维护GNU的遗产,是沉湎于这场运动的枝枝末末,对整个自由软件都是有害的。对大多数开放源代码倡导者来说,颠覆微软才是主要的斗争方向。“我关心的是精神,是GUN项目内在的哲学。这种哲学就是它存在的理由,那就是自由软件不仅仅是为了方便,也不仅仅是为了可靠。真正重要的是自由,协作的自由。我不关心某个人或公司。因此我认为单纯与微软作战偏离了这个运动的方向。”Richard Stallman的拥戴者还有,但是Richard Stallman的大多数主张还是被人们忽略了。如今只有“Linux”充斥着媒体的标题,而背后的思想开始逐渐隐去。Richard Stallman被邀请参加在硅谷湾区举办的“开放源代码开发者日”。这个1998年8月21日开幕的活动是程序员和自由软件热心家的大集会,由计算机图书出版公司O*Reilly联合公司组织的。而在4月份组织的“自由软件高峰会议”上,Richard Stallman没有被邀请。结果招致了广泛的批评,使得组织者再也不敢“忽视”他了。但是组织者告诫他,要他以“维护大局”为重,让他在有分歧的地方免开尊口。不足为奇,Richard Stallman让许多自由软件的同行们十分棘手。他这个人不可控制,不可预知也不可能被改变。是这些非同寻常的素质促成了自由软件的兴起。但是随着自由软件前景大开,江山指日可待,这些个性开始被视为障碍。Richard Stallman的狂热和信仰保证了自由软件的成长,但如今人们认为他是多余的。在他们眼里,现在剔除了Richard Stallman,自由软件不但不会受阻,反而会更顺畅。但不容置疑的是,正是Richard Stallman的思想成为自由软件运行的力量源泉。GNU-Linux系统的确比Windows系统问题少,Apache也是Web服务器的更好选择。但这只是问题的一个侧面,只有把实用和理想结合起来,自由软件运动才令人信服,才能激发人们的热情和献身精神。无论如何,Richard Stallman仍然是有名气的,仍然受到尊重,仍然被认为是自由软件运动的核心人物。Richard Stallman在计算机领域的重要地位不容动摇。为了使自由软件商业化而牺牲Richard Stallman,那就可能会失去这场重大革命的灵魂和方向。 后记Richard Stallman依旧没钱、没势,连原先的许多信徒都被分化而去。这场运动给他带来的唯一收获可能就是:无论Richard Stallman走到哪里,都会有人乐意借给他计算机,使他能及时查看电子邮件。他还是那样不修边幅,无所顾忌。但是与当年执着相比,他的精神状态开始呈现一种新的焦虑和紊乱,而这一切正是他创造的自由软件的成功,施加给他的。而且可以肯定,Richard Stallman必将越来越被自由软件成功的浪潮所淹没。未来难以预测,唯一可以肯定的是:Richard Stallman自己引燃的这场革命已经完全超越了他的驾驭范围。这也是许多思想家共同的命运。其实,人类导演的故事总是一模一样的。

 

理查德・马修・斯托曼 2006-10-13

理查德・马修・斯托曼(Richard Matthew Stallman,简称 RMS,生于1953年3月16日,美国籍),自由软件运动的精神领袖、GNU计划以及自由软件基金会(Free Software Foundation)的创立者。作为一个著名的黑客,他的主要成就包括Emacs及后来的GNU Emacs,GNU C 编译器及GNU 除错器。 他所写作的GNU通用公共许可证(GNU GPL)是世上最广为采用的自由软件许可证,为copyleft观念开拓出一条崭新的道路。

1990年代中期,斯托曼把他大部时间花在作为一个政治运动者,为自由软件辩护,对抗软件概念专利及版权法的扩张。他仍在程序设计方面奉献的心力都放在GNU Emacs。他的演讲当中大约半数有收入,这让他能够养活自己。

他最大的影响是为自由软件运动竖立了道德、政治以及法律框架。他被许多人誉为当今自由软件的斗士、伟大的理想主义者,但同时也有人批评他过于固执、观点落伍。

经历
斯托曼1953年出生于美国纽约曼哈顿地区,1971年进入哈佛大学学习,同年受聘于麻省理工学院人工智能实验室(AILaboratory),成为一名职业黑客。

在AI实验室工作期间,斯托曼开发了多种今后影响深远的软件,其中最著名的就是Emacs。斯托曼在AI是一名典型的黑客,是整个黑客文化的一份子。

然而进入八十年代后,黑客社群在软件工业商业化的强大压力下日渐土崩瓦解,甚至连AI实验室的许多黑客也组成了Symbolic公司,试图以专利软件来取代实验室中黑客文化的产物--可自由流通的软件。

斯托曼对此感到气愤与无奈。在对Symbolic进行了一段时间的抗争后,他于1985年发表了著名的GNU宣言(GNU Manifesto),正式宣布要开始进行一项宏伟的计划:创造一套完全自由,兼容于Unix的操作系统GNU(GNU’s Not Unix!)。之后他又建立了自由软件基金会来协助该计划。

他于1989年与一群律师起草了广为使用的GNU通用公共协议证书(GNU General Public License, GNU GPL),创造性地提出了“Copyleft”的概念。 同时,GNU计划中除了最关键的Hurd操作系统内核之外,其他绝大多数软件已经完成。

多项荣誉
1990年度麦克阿瑟奖(MacArthur Fellowship)
1991年度美国计算机协会颁发的Grace Hopper Award以表彰他所开发的的Emacs文字编辑器
1996年获颁瑞典皇家理工学院荣誉博士学位
1998年度电子前线基金会(Electronic Frontier Foundation)先锋奖
1999年Yuri Rubinsky纪念奖
2001年在苏格兰获颁格拉斯哥大学荣誉博士学位
2001年武田研究奖励赏(武田研究奖励赏)
2002年成为美国国家工程院院士
2003年在比利时获颁布鲁塞尔大学荣誉博士学位
2004年在阿根廷获颁国立沙尔塔大学荣誉博士学位
2004年获得秘鲁国立Ingeniería大学荣誉教授

ext4文件系统功能概览 2009-09-09

Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4。 Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已。Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能:
1. 与 Ext3 兼容。执行若干条命令,就能从 Ext3 在线迁移到 Ext4,而无须重新格式化磁盘或重新安装系统。原有 Ext3 数据结构照样保留,Ext4 作用于新数据,当然,整个文件系统因此也就获得了 Ext4 所支持的更大容量。
2. 更大的文件系统和更大的文件。较之 Ext3 目前所支持的最大 16TB 文件系统和最大 2TB 文件,Ext4 分别支持 1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的文件系统,以及 16TB 的文件。
3. 无限数量的子目录。Ext3 目前只支持 32,000 个子目录,而 Ext4 支持无限数量的子目录。
4. Extents。Ext3 采用间接块映射,当操作大文件时,效率极其低下。比如一个 100MB 大小的文件,在 Ext3 中要建立 25,600 个数据块(每个数据块大小为 4KB)的映射表。而 Ext4 引入了现代文件系统中流行的 extents 概念,每个 extent 为一组连续的数据块,上述文件则表示为”该文件数据保存在接下来的 25,600 个数据块中”,提高了不少效率。
5. 多块分配。当写入数据到 Ext3 文件系统中时,Ext3 的数据块分配器每次只能分配一个 4KB 的块,写一个 100MB 文件就要调用 25,600 次数据块分配器,而 Ext4 的多块分配器”multiblock allocator”(mballoc) 支持一次调用分配多个数据块。
6. 延迟分配。Ext3 的数据块分配策略是尽快分配,而 Ext4 和其它现代文件操作系统的策略是尽可能地延迟分配,直到文件在 cache 中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。
7. 快速 fsck。以前执行 fsck 第一步就会很慢,因为它要检查所有的 inode,现在 Ext4 给每个组的 inode 表中都添加了一份未使用 inode 的列表,今后 fsck Ext4 文件系统就可以跳过它们而只去检查那些在用的 inode 了。
8. 日志校验。日志是最常用的部分,也极易导致磁盘硬件故障,而从损坏的日志中恢复数据会导致更多的数据损坏。Ext4 的日志校验功能可以很方便地判断日志数据是否损坏,而且它将 Ext3 的两阶段日志机制合并成一个阶段,在增加安全性的同时提高了性能。
9. “无日志”(No Journaling)模式。日志总归有一些开销,Ext4 允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。
10. 在线碎片整理。尽管延迟分配、多块分配和 extents 能有效减少文件系统碎片,但碎片还是不可避免会产生。Ext4 支持在线碎片整理,并将提供 e4defrag 工具进行个别文件或整个文件系统的碎片整理。
11. inode 相关特性。Ext4 支持更大的 inode,较之 Ext3 默认的 inode 大小 128 字节,Ext4 为了在 inode 中容纳更多的扩展属性(如纳秒时间戳或 inode 版本),默认 inode 大小为 256 字节。Ext4 还支持快速扩展属性(fast extended attributes)和 inode 保留(inodes reservation)。
12. 持久预分配(Persistent preallocation)。P2P 软件为了保证下载文件有足够的空间存放,常常会预先创建一个与所下载文件大小相同的空文件,以免未来的数小时或数天之内磁盘空间不足导致下载失败。 Ext4 在文件系统层面实现了持久预分配并提供相应的 API(libc 中的 posix_fallocate()),比应用软件自己实现更有效率。
13. 默认启用 barrier。磁盘上配有内部缓存,以便重新调整批量数据的写操作顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写 commit 记录,若 commit 记录写入在先,而日志有可能损坏,那么就会影响数据完整性。Ext4 默认启用 barrier,只有当 barrier 之前的数据全部写入磁盘,才能写 barrier 之后的数据。(可通过 “mount -o barrier=0″ 命令禁用该特性。)

责任编辑: mayu8758

Linux发行版大全 2009-09-04

目录

  • 1 基于Debian
  • 2 基于RPM
  • 3 Slackware
  • 4 其它打包方式的包
  • 5 给老机器订制的小型包
  • 6 部分或全部的商业版
  • 7 专用包
  • 8 其它平台
  • 9 选择合适的Linux发行版
  • 10 外部连接

基于Debian

  • Adamantix:基于Debian,特别关注安全。
  • Amber Linux:基于Debian,针对拉脱维亚用户作了一些定制。
  • ASLinux Desktop:西班牙语,基于Debian与KDE,针对各种桌面用途,包括家用、办公、教育、游戏、科学、软件开发,最大的卖点在于其丰富的可用性。
  • B2D Linux:基于Debian,希望可以由“做中学”来产生一个小而美的中文Linux包的计划。
  • Debian GNU/Linux:由大批社区志愿者收集的包。Debian拥有庞大的软件包可供选择(15000个以上),支持大量的硬件平台。以前该包因为安装困难受到责难,但最新的版本具备了简单易用的文本式安装环境。非自由软件不会包含在Debian的主要软件包中。
  • Edubuntu:是Ubuntu的教育发行版。
  • Gnoppix:Knoppix的GNOME版,该包发行周期较长,未来会跟Ubuntu进行集成。
  • Guadalinex:由西班牙的安达卢西亚地方政府推动,基于Debian,针对西班牙语的家庭用户以及学校。
  • Hiweed:基于Ubuntu,使用Xfce桌面环境的轻量级中文发行版。0.x版基于Debian。
  • Kanotix:自启动运行光盘,基于Knoppix,也可以安装到硬盘上。有很好的硬件支持,桌面与笔记本电脑的集成也很出色。
  • Knoppix:第一张Debian的自启动运行光盘。包含的软件非常多,启动时会自动进行硬件监测。从4.0起,用DVD作光盘。
  • Kurumin:针对巴西用户的Knoppix。
  • LinEx:由西班牙的埃斯特雷马杜拉地方政府推动的包。
  • Loco Linux:基于Debian的阿根廷Linux。
  • MEPIS: 基于Debian的桌面和服务器。
  • PUD GNU/Linux:基于Ubuntu的小型Linux,可安装于光盘或256 MB以上的USB 闪存盘。
  • Rays Linux(华镭):基于Debian,针对亚洲市场,由新华技术(南京)系统软件有限公司开发。
  • Skolelinux:在挪威发起,旨在打造适合于学校的轻便包。
  • Symphony OS:基于Debian,与众不同地采用Mezzo桌面。
  • Ubuntu:由Canonical有限公司赞助,基于Debian,使用自己的软件包库,与Debian的有所不同,旨在开发出更加友好的桌面,已经取得了良好的声誉。
  • Kubuntu:使用KDE桌面环境的Ubuntu包。
  • Xubuntu:使用Xfce桌面环境的Ubuntu包。

基于RPM

  • aLinux:原名Peanut Linux,针对家庭用户。
  • ALT Linux:东欧版本。
  • Ark Linux:强调易学易用。
  • ASPLinux:提供俄语等东欧语言的支持。
  • Asianux Server:由中国红旗、日本Miracle、韩国Hannsoft三家联合开发,主要市场针对亚洲地区,对中文、日文、韩文的支持比较好
  • Blag Linux:体积小,但功能较多。
  • Caixa Mágica:葡萄牙语的Linux。
  • cAos Linux:由社群创建的包,功能通用、培植简单。
  • CentOS:由社群支持的包,旨在100%地与Red Hat Linux企业版兼容,但不包含Red Hat 的商业软件。
  • Cobind:桌面。
  • Conectiva:一个巴西包,曾经是United Linux的创建成员,现在该公司已经并入到Mandriva Linux。
  • EduLinux:用于教育的包。
  • Fedora:可用作工作站、桌面以及服务器,由红帽公司及其社群开发。
  • Linux Mobile System:基于Fedora Core的包,设计成从USB存储设备启动,比如U盘。
  • Linpus Linux:来自台湾厂商发行的Linux版本。是一套通过LSB 3.1认证、GB18030-2000编码检验测试及支 援CNS11643中文标准交换码全字库的Linux桌上型系统。在中文支持能力上较为完善。
  • Magic Linux:一个易用的中文包。
  • Mandriva Linux:对初学者而言最易用的Linux包。最初是红帽的一个变种,针对奔腾级CPU作了优化,后来在保持兼容性的同时,派生成为更友好的包。Mandriva中所有的软件仍然免费,还有活跃的社区支持,另外通过注册以及销售盒装产品,Mandriva还提供企业级的支持与服务,还有针对付费用户的俱乐部。
  • Novell Linux Desktop:由于Novell收购了SUSE,他们的Linux产品对原来的包有所继承。
  • PCLinuxOS:一个易用的自启动运行光盘,以良好的观感著称;硬盘安装也同样轻而易举。最初基于Mandrake 9.2,而后PCLinuxOS针对桌面用户,开始自己的开发道路。在保留基于RPM包的同时,PCLinuxOS别出心裁地使用自己的APT包管理工具(受Debian影响),但图形前端仍然用的是Synaptic。
  • PCQLinux2004:由印度的PCQuest杂志生产,基于Fedora Core。
  • PLD Linux:来自波兰的包,针对较高级别的用户,比Slackware、Gentoo更加易用。
  • QiLinux:意大利生产,包括桌面版、光盘自启动版,还有服务器版、高级服务器版。
  • 红旗Linux:由北京中科红旗软件技术有限公司开发,主要针对中国市场。
  • Red Hat Enterprise Linux:红帽Linux家族中唯一的商业分支。
  • Scientific Linux:由红帽Linux企业版,将遵循GPL的软件重新编译而成。
  • SUSE/openSUSE:来自德国,是欧洲最流行的包之一。跟红帽一样,也包括大量的软件,需要7张以上的CD,现在则用双DVD。这个包有独特的配置工具YaST。也是United Linux的创立者之一,已经被Novell公司收购。openSUSE是一个新的版本,基于社区,完全开源。
  • Tinfoil Hat Linux:对安全格外关注的包。
  • Trustix:专注于安全与稳定性的包。
  • Turbo Linux:在亚洲较流行的一个包,基于Red Hat,是United Linux的成员。
  • Vine Linux:基于Red Hat的一个日本包。
  • White Box Enterprise Linux:意在兼容Red Hat企业版第三版。
  • Yellow Dog:基于Red Hat,针对PowerPC平台。
  • YOPER:”Your Operating System”(你的操作系统),来自新西兰的桌面包。

Slackware

  • Kate OS:基于Slackware的设计理念,一个轻便的波兰语包。
  • Zenwalk Linux(以前是MiniSlack):基于Slackware作了优化,注重简便、快捷。
  • Plamo Linux:基于Slackware的日语包。
  • Slackware:一个老牌包,由Patrick Volkerding维护,特别注重简洁与安全。
  • Ultima Linux:基于Slackware,由Martin Ultima作了优化。
  • SLAX:一个基于Slackware的自启动运行光盘,由Tomas Matejicek维护。
  • Frugalware:通用Linux包,面向中级用户。

其它打包方式的包

  • ArchLinux:针对i686的CPU做了优化,以.tar.gz格式打包并由包管理器进行跟踪维护,特别适合动手能力强的linux用户。
  • Foresight Linux:采用Conary包管理系统,引入了GNOME中的许多最新技术,比如beagle、f-spot、howl以及最新的hal等,这个包在保持易用的同时,更注重革新。
  • Gentoo:这个包采用自己独特的Portage包管理系统,吸引了许多狂热爱好者以及专业人士,强调自己编译源码,而不是直接用二进制包,这样程序运行速度更快。
  • GoboLinux:构建了新的文件系统,比如GCC放在/Programs/GCC/这样的目录,为了让系统能找到这些文件,在[code]/System/Links/Executables[/code]这样的目录下归组,这样就包含了[code]/Programs[/code]目录下所有可执行文件的符号链接。
  • Heretix:以前叫做RubyX,包的管理,包括包管理,都是通过由Ruby写的脚本来完成,所有的包都安装在[code]/pkg[/code]目录下。
  • ImpiLinux,来自南非的包,主要针对非洲用户。
  • Jedi GNU/Linux:使用force-get包管理器,允许源码、二进制软件包共存。
  • Linux From Scratch:这是一份文档,介绍如何自己动手,如何白手起家编译打造自己独一无二的Linux系统。
  • Lunar Linux,基于源码,由Sorcerer GNU/Linux所派生。
  • MkLinux:”Microkernel Linux”的缩写,旨在将Linux移植到跑Mach微核的PowerPC机器上。
  • Onebase Linux:采用OLM包管理器,对二进制、源码进行管理。
  • Sabayon Linux:基于Gentoo,来自意大利。
  • Sorcerer GNU/Linux:基于源码。
  • Source Mage GNU/Linux:也是基于源码,由Sorcerer GNU/Linux所派生。
  • Ututo:基于Gentoo,来自阿根廷。
  • Open Client:基于Red Hat Enterprise Linux,来自IBM,提供有fedora,ubuntu,SLED的layer

给老机器订制的小型包

一般的迷你包,除了可以硬盘安装,也可以安装在U盘上。

  • Austrumi:拉脱维亚的自启动CD包,支持英语,功能比较丰富,基于Slackware。
  • cAos Linux:有社区维护,功能通用。
  • Damn Small Linux(DSL):这是小型包的老祖宗,放在迷你CD上,原先设计是想看看一张50M的CD可以放多少桌面程序,原来是作为个人玩具,但不久Damn Small Linux周围就聚成了一个社区,不少人加入进来,参与改进,包括一个远程、本地的程序安装系统,多功能的备份、还原系统,另外还加入了Knoppix的硬件检测,使用自己的*.dsl软件包系统,默认的窗口管理器是Fluxbox。可以在微软虚拟机软件里运行,无须关闭WINDOWS系统专门进入LINUX系统,特别适合初学者。
  • Feather Linux:类似于Damn Small Linux,但总容量是115MB,兼容Debian的软件包。
  • Flonix USB版:放在USB设备上的可移动桌面包,这是个商业版,只能给购买的U盘作预装。
  • Knopperdisk:为U盘设计的包,基于Gentoo。
  • Puppy Linux:启动特别地快,在配置较低的PC上(内存小于32M),也可以运行自如。包含的工具都是特别精简的,使用Fvwm95作为窗口管理器(现在是JWM)。
  • Kuppy Linux:基于Puppy发展的发行版,拥有启动特别地快,在配置较低的PC上等特点外,将桌面置换为XFCE4,更适合习惯windows操作的用户。
  • Stem桌面:一个混合产品,使用标准的Debian来编译桌面(Fvwm95)。针对老机器(CPU小于等于266Mhz,内存小于等于64M)设计,从Debian软件仓库种选择的包都是最轻巧的。与众不同的是,该包没有自己的安装光盘,用户得先安装Debian,然后运行文本界面的安装脚本,然后通过网络连接,编译剩余的软件。这个包100%跟Debian兼容。
  • SPBLinux:用于软盘、U盘的迷你版本。
  • Vector Linux:中小型包,针对新老机器,采用小而快的应用程序,以及简化的安装程序。该包有多个版本,包括大小为2G的SOHO(Small Office, Home Office)版,以及800M的”Dynamite”版。SOHO版提供KDE/IceWM窗口管理器,外观很专业;Dynamite版只采用IceWM,以及部分工具。该包包括了简单的升级包管理程序,基于Slackware。
  • eMoviX:小型包,专门用作媒体播放用途。

部分或全部的商业版

  • BlueCat Linux:Linux嵌入式系统,可用于小型客户定制的设备,乃至大规模多CPU的系统。
  • Libranet:基于Debian的桌面包,与Debian保持100%的兼容。安装过程有硬件自动检测,桌面有一个管理员菜单(文字模式与图形模式),这样简化了硬件与软件的配置。
  • Linspire:另一个桌面包,以前叫Lindows,基于Debian。可以通过Linspire或者Debian的apt命令,添加额外的软件,但不保证跟Debian的兼容性。该包包含不少的专属软件。
  • Mandriva Linux:Mandrakesoft跟Conectiva合并以后,更名为Mandriva Linux。对于菜鸟来说,该包的各种产品,包括服务器、工作站、小型商用以及个人版,是最容易维护的Linux包之一。原来是Red Hat的一个变种,针对奔腾级CPU作了优化,进而发展出了更加方便的包。在保留完全自由软件的同时,Mandriva商业模式,通过捐献,以及对非会员延迟发布政策,增加了企业级的支持与服务。
  • MEPIS:一个基于Debian的包,也可以作为自启动光盘来运行,这样可以在决定硬盘安装前,尝尝鲜。
  • Mobilinux:针对手机,由Montavista出品。
  • Nitix:第一个基于Linux服务器的自治操作系统,具有自管理、自恢复、自配置和自优化的能力。
  • Novell Linux 桌面:Novell收购SUSE后,两家的包就互相融合了。
  • Progeny Debian:由Progeny开发,基于Debian,使用从Red Hat移植过来的Anaconda安装器,该包又称为Progeny Componentized Linux。
  • Red Hat Enterprise Linux:从Red Hat Linux派生出的纯商业版。
  • SUSE:基于德国的纽伦堡,以前叫SuSE,是欧洲最流行的Linux包,由自己独特的配置工具YaST,用户可以下载到体验版(跟专业版类似)。该公司是United Linux的创建者,最近被Novell收购。
  • Xandros:来自加拿大,基于过去的Corel Linux,专注于桌面市场,以及跟Windows的兼容性。该包包含一些专属软件,跟Debian的dpkg包管理系统兼容。
  • YES Linux:针对小型公司,提供建议的网络环境。

专用包

  • Android:来自Google,以apk格式打包,采用Dalvik虚拟机提供类似Java (编程语言)的应用程序接口,目前专用于HTC Dream和HTC Magic等少数手机型号。
  • Maemo:来自诺基亚,基于Debian,目前专用于诺基亚的N770、N800等少数网络终端。
  • Moblin:来自因特尔,现已捐给Linux基金会,用于Eee PC或其他上网本,支持快速启动。

其它平台

iPodLinux基于修改版uClinux内核,并编写有所谓的“podzilla”简单用户界面。但是安装据说将失去苹果公司保修资格,可以在高于不包含2G以上的任何有屏幕苹果iPod上面运行。

选择合适的Linux发行版

Linux 发行版众多已是不争的事实了,如何在多如牛毛的发行版中选择合适自己的操作系统呢?Zegenie Studios提供了Linux发行版选择器,通过完成一个不超过十六题的问卷测试,你就可以知道哪个发行版最适合你了。

责任编辑: mayu8758

流行的错误观点:为什么频繁读写会损坏硬盘呢?

流行的错误观点:为什么频繁读写会损坏硬盘呢?
磁头寿命是有限的,频繁的读写会加快磁头臂及磁头电机的磨损,频繁的读写磁盘某个区域更会使该区温度升高,将影响该区磁介质的稳定性还会导至读写错误,高温还会使该区因热膨涨而使磁头和碟面更近了(正常情况下磁头和碟面只有几个微米,更近还得了?),而且也会影响薄膜式磁头的数据读取灵敏度,会使晶体振荡器的时钟主频发生改变,还会造成硬盘电路元件失灵。

任务繁多也会导至ide硬盘过早损坏,由于ide硬盘自身的不足,,过多任务请求是会使寻道失败率上升导至磁头频繁复位(复位就是磁头回复到 0
磁道,以便重新寻道)加速磁头臂及磁头电机磨损。

现在的硬盘,无论是ide还是scsi,采用的都是”温彻思特“技术,都有以下特点:1。磁头,盘片及运动机构密封。2。固定并高速旋转的镀磁盘片表面平整光滑。3。磁头沿盘片径向移动。4。磁头对盘片接触式启停,但工作时呈飞行状态不与盘片直接接触。

盘片:硬盘盘片是将磁粉附着在铝合金(新材料也有用玻璃)圆盘片的表面上.这些磁粉被划分成称为磁道的若干个同心圆,在每个同心圆的磁道上就好像有无数的任意排列的小磁铁,它们分别代表着0和1的状态。当这些小磁铁受到来自磁头的磁力影响时,其排列的方向会随之改变。利用磁头的磁力控制指定的一些小磁铁方向,使每个小磁铁都可以用来储存信息。

盘体:硬盘的盘体由多个盘片组成,这些盘片重叠在一起放在一个密封的盒中,它们在主轴电机的带动下以很高的速度旋转,其每分钟转速达3600,4500,5400,7200甚至以上。

磁头:硬盘的磁头用来读取或者修改盘片上磁性物质的状态,一般说来,每一个磁面都会有一个磁头,从最上面开始,从0开始编号。磁头在停止工作时,与磁盘是接触的,但是在工作时呈飞行状态。磁头采取在盘片的着陆区接触式启停的方式,着陆区不存放任何数据,磁头在此区域启停,不存在损伤任何数据的问题。读取数据时,盘片高速旋转,由于对磁头运动采取了精巧的空气动力学设计,此时磁头处于离盘面数据区0.2—0.5微米高度的”飞行状态“。既不与盘面接触造成磨损,又能可靠的读取数据。

电机:硬盘内的电机都为无刷电机,在高速轴承支撑下机械磨损很小,可以长时间连续工作。高速旋转的盘体产生了明显的陀螺效应,所以工作中的硬盘不宜运动,否则将加重轴承的工作负荷。硬盘磁头的寻道饲服电机多采用音圈式旋转或者直线运动步进电机,在饲服跟踪的调节下精确地跟踪盘片的磁道,所以在硬盘工作时不要有冲击碰撞,搬动时要小心轻放。
首先,磁头和数据区是不会有接触的,所以不存在磨损的问题。
其次,一开机硬盘就处于旋转状态,主轴电机的旋转可以达到4500或者7200转每分钟,只要一通电,它们就在转.它们的磨损也和软件无关。

再次,寻道电机控制下的磁头的运动,是左右来回移动的,而且幅度很小,从盘片的最内层(着陆区)启动,慢慢移动到最外层,再慢慢移动回来,一个磁道再到另一个磁道来寻找数据。不会有什么大规模跳跃的(又不是青蛙)。所以它的磨损也是可以忽略不记的。

那么,热量是怎么来的呢?
首先是主轴电机和寻道饲服电机的旋转,硬盘的温度主要是因为这个。
其次,高速旋转的盘体和空气之间的摩擦。这个也是主要因素。
而硬盘的读写???
很遗憾,它的发热量可以忽略不记!!!!!!!!!!
硬盘的读操作,是盘片上磁场的变化影响到磁头的电阻值,这个过程中盘片不会发热,磁头倒是因为电流发生变化,所以会有一点热量产生。写操作呢?正好反过来,通过磁头的电流强度不断发生变化,影响到盘片上的磁场,这一过程因为用到电磁感应,所以磁头发热量较大。但是盘片本身是不会发热的,因为盘片上的永磁体是冷性的,不会因为磁场变化而发热。

但是总的来说,磁头的发热量和前面两个比起来,是小巫见大巫了。
热量是可以辐射传导的,那么高热量对盘片上的永磁体会不会有伤害呢?其实伤害是很小的,永磁体消磁的温度,远远高于硬盘正常情况下产生的温度。当然,要是你的机箱散热不好,那可就怪不了别人了。

错误点在哪:
一。高温是影响到磁头的电阻感应灵敏度,所以才会产生读写错误,和永磁体没有关系。
二。所谓的热膨胀,不会拉近盘体和磁头的距离,因为磁头的飞行是空气动力学原理,在正常情况下始终和盘片保持一定距离。当然要是你大力打击硬盘,那么这个震动。。。。。

三。所谓寻道是指硬盘从初使位置移动到指定磁道。所谓的复位动作,并不是经常发生的。因为磁道的物理位置是存放在cmos里面,硬盘并不需要移动回0磁道再重新出发。只要磁头一启动,所谓的复位动作就完成了,除非你重新启动电脑,不然复位动作就不会再发生。

四。ide硬盘和scsi硬盘的盘体结构是差不多的。只是scsi硬盘的接口带宽比同时代的ide硬盘要大,而且往往scsi卡往往都会有一个类似cpu的东西来减缓主cpu的占用率。仅此而已,所以希捷才会把它的scsi硬盘的技术用在ide硬盘上。

五。硬盘的读写是以柱面的扇区为单位的。柱面也就是整个盘体中所有磁面的半径相同的同心磁道,而把每个磁道划分为若干个区就是所谓的扇区了。硬盘的写操作,是先写满一个扇区,再写同一柱面的下一个扇区的,在一个柱面完全写满前,磁头是不会移动到别的磁道上的。所以文件在硬盘上的存储,并不是像一般人的认为,是连续存放在一起的(从使用者来看是一起,但是从操作系统底层来看,其存放不是连续的)。所以flashget或者ed开了再多的线程,磁头的寻道一般都不会比你一边玩游戏一边听歌大。当然,这种情况只是单纯的下载或者上传而已,但是其实在这个过程中,谁能保证自己不会启动其它需要读写硬盘的软件?可能很多人都喜欢一边下载一边玩游戏或者听歌吧?更不用说windows本身就需要频繁读写虚拟内存文件了。所以,用fg下载也好,ed也好,对硬盘的折磨和平时相比不会太厉害的。

六。为什么开太多线程会不好。首先,线程一多,cpu的占用率就高,换页动作也就频繁,从而虚拟内存读写频繁,至于为什么,学过操作系统原理的应该都知道,我这里就不说了。同时从几个人那里下载一个文件,还有几个人同时在下载你的文件,所以硬盘灯猛闪。但是,现在的硬盘是有缓存的,数据不是马上就写到硬盘上,而是先存放在缓存里面,,然后到一定量了再一次性写入硬盘。其实是先写到缓存里面的。但是这个过程也是需要cpu干预的,cpu占用率也高,所以硬盘灯也还是猛闪的,因为虚拟文件在读写。

七。硬盘读写频繁,磁头臂在寻道伺服电机的驱动下移动频繁,但是对机械来说这点耗损虽有,其实不大。除非你的硬盘本身就有机械故障比如力臂变形之类的(水货最常见的故障)。真正耗损在于磁头,不断变化的电流会造成它的老化,但是和它的寿命相比。。。。。应该也是在合理范围内的。除非因为震动,磁头撞击到了盘体。

八。受高温影响的最严重的是机械的电路,特别是硬盘外面的那块电路板,上面的集成块在高温下会加速老化的。所以ibm的某款玻璃硬盘,虽然有坏道,但是一用某个软件,马上就不见了。再严重点的,换块线路板,也就正常了。就是这个原因.
总之,硬盘会因为环境不好和保养不当而影响寿命,但是这绝对不是软件的错。
flashget也好,电驴也好,BT也好,它们虽然对硬盘的读写频繁,但是还不至于比你一般玩游戏一般听歌对硬盘伤害大.说得更加明白的话,它们对硬盘的所谓耗损,其实可以忽略不记.不要因为看见硬盘灯猛闪,就在那里瞎担心

责任编辑: mayu8758

开源文摘

C语言的发展历史(大雾)

1972 – C语言的先驱——B语言,被贝尔实验室开发。B语言是一个很快速的,容易维护的,而且对于从系统到应用开发是很好用的。设计这门语言的整个团队被马上解雇 了,因为他们干了一件和电话通讯不相干的事情。最后这个项目转给了 Dennis Ritchie。他把这个语言变得不容易理解,很难维护,而且,只能用于系统方面的编程。而且,他还设计了一个指针系统,保让每一个程序都超过500行, 并可以使用操作系统的指针。

1982 – 大家发现有97% 的C程序调用产生了“缓冲区溢出”问题。于是,C 程序员们开始意识到,就算是不必要也必需要初始化变量。然而,强制性的变量初始化这个明智的决定,很难影响了当时已经写成了的97%的C程序,所以结果什么也没有发生。

1984 – 操作系统出现了“错误指针”的问题数量开始戏剧性地增涨。

1985 – 一系列的让C语言有面向对象能力的解决方法出现了,一个叫“C With Classes”正准备商业化。然而,大家觉得名字“C With Classes”太清楚和容易被理解了,所以,最终的商业版本叫做—— C++。

1986 – C语言成为最流行的语句,其被很多业界分析师推荐于业务应用。他们向全世界宣称——由C语言写成的应用将可以运行在很多不同的平台上的,是跨平台的。目前看来,这些众多的分析者在当时有可能是因为某种迷幻而导致其大脑被所蛊惑了。

1988 – 业界的这些分析家们因为“**”吃完了。所以,在他们的幻觉过去以后,他们注意到,使用C语言来开发业务应用会增加5倍以上的开发时间,并且程序也不具备 可移植性。他们开始停止向大众推荐使用C语言来开发业务应用了,只能很少一部服用可卡因的人开始转向推荐大众使用C++语言写业务应用程序,他们说,“那 是面向对象的,所以,代码是很容易重用的”。

1990 – 在这个时候,所有的C编译器都转到了C++编译器上。但是,因为大多数的C++程序员并没有使用C++中那些面向对象的语言特性。也就是说,在实际上来说,那种浮肿的代码结构加上操作系统指针的代码被一种叫面向对象的编译器编译。

1990 – 在雇佣了一些转向“吸胶毒”的分析师后,Sun决定要创造一种叫Oak的语言,这种语言主要用于电视的机顶盒。因为当时几乎所有的程序员的DNA中都有C 语的基因,所以,这个语言向C和C++中大量地借鉴了很多它们的语法和编程思路。然而,机顶盒上没有操作系统,也就不存在指针,所以,他们把指针从这门语 言里给去掉了。

1994 – Sun公司里的某个人意识到为一个机顶盒开发一个语言是多么愚蠢的事情。于是,这个语言更名为Java,并且为其注入了“Internet”的特征,从而 让其成为一个真正可以被移植的语言。其市场营销上相当成功,而那时有3%的业内人士开始明白什么是Internet,同时,那些精神不正常的分析师们还在 不停地嗑药并向大众鼓吹他们的神话——“跨平台移植性”。

1995 – Sun 向业界的分析师们提供了免费蘑菇迷魂汤,导致那些分析师在喝下汤后,马上开始写下“Java是一门未来的可移植的和Ineternet高度可集成的语言”。

1996 中 – 17,468,972 篇文章出现,描述了Java是怎么一门未来的语言。这也是Java Applet开始进入Web页的时代。

1996 末– 程序员开始使用Java applet创建他们的Web页面,然后他们开始因为挫折和沮丧开始集体自杀。此时,那些分析师开始增大蘑菇迷魂汤的剂量。

1997 – 因为接受了产生幻觉分析师的建议,Corel 决定重写他们的应用,包括 WordPerfect,当然,是用Java写的。最终的结果是,这是迄今为止比“打字机”还慢的字处理软件。

1998 –  在意识到applet已在快速枯萎,Sun又一次的重新配置了Java,这次,他们叫Severlet,这是一个服务器的程序语言。这个设计在抄袭了 Microsoft Transaction Server ,并且,他们说服所有人这个设计是他们创造的。

1999 – 业内那些喝多了的分析师们用一种咆哮的方式向大众介绍了Java 2 Enterprise Edition 。 21,499,512 文章被写出来。但是,实际上并没有人使用,因为J2EE太不成熟,而又太贵了。

2000 – J2EE 最终还是运转起来了(一点点)。而且,所有的Java卖主们开始准备向其砸钱,与此同时,Microsoft 宣布了.NET,这是一个包括了所有的J2EE功能但没那么贵的产品。实际上来说, Microsoft 决定让Windows的用户免费使用.NET 。 Scott McNealy 很愤怒,其对Microsoft开展了相关的法律诉讼。

.NET 包括了最新的C家族语言,叫C#,发音是“C-pound”,继承最家族的传统,使用着一个愚蠢的名字。

2001 – Microsoft 的市场部意识到,在市面上没有人谈论他们的产品,他们找了其中一个程序员一起吃中饭,才发现,他们把C#叫做 “C sharp”。

2002 – C# 成为 Microsoft .NET的一部分。 C++ 的开发者在 Microsoft 平台上为 “managed code”而欢呼雀跃,也就是说,他们最终得到了一个内存自动管理的功能,这一功能正是1991年的Visual Basic 及1995年的Java所创建的 。

copyright (C) 1996-2006 by Billy S. Hollis, originally posted on dotnetmasters.com 13 January 2006