自由软件运动和GNU
理察法?斯德尔曼
一个正常的社会只有在良好的心态下才能发挥作用,这也是许多宗教信仰鼓励乐于助人的原因,因为这对于人类社会来说非常重要。
理察法?斯德尔曼是著名的自由软件运动领袖、GNU(自由软件协会)组织的创始人,是自由软件的精神领袖,是无数程序员和用户心中的“最后一个真正的黑客”、自由软件的奠基人。
大家好!很高兴能够来到中国。看到在座的有这么多自由软件的爱好者和追随者,我感到自由软件在中国有很大的潜力,你们将是中国自由软件未来的希望。今天,我要给大家介绍一下
自由软件和GNU的发展。
使用软件的规则
当人们要问:这个社会使用软件的规则是什么?考虑这个问题的通常是软件公司的人,他们完全是出于自私的角度来考虑这个问题的。他们为了管制住别人不从他们身上拿走钱而制订这
个规则。
早在20世纪70年代,我就关注这个问题。当时我们这些程序员们是在一起合作共同分享这些软件成果。正因为如此,我得出了完全不同的结论。我们的社团是这样工作的:我们会从斯坦
福获取得新的程序软件,或者一些源代码去写一些更好的程序,来解决一些原有的问题。或者你可以用那些源代码去实现你的想法,写一段更好的程序,甚至你可以切下一段程序用于你工作
的另一段程序上。人们把这个称为软件的再利用。这样你可以把一段程序用于很多方面,这是我们这个社团致力的方向,也可以称之为对人类知识宝库的贡献。
我们并不针对任何人,相反我们是为所有人工作的。我们这个社团包括MIT的实验室人员,还有像斯坦福和康尼伯格大学的人员,甚至一些计算机公司的人员也加入我们的行列。但我们这
个社团与计算机使用者不同,我发现了一些计算机使用者最关心的问题。
打印机的启示
举一个例子,施乐公司当时送给MIT一台激光打印机,这是一件非常珍贵的礼物,因为在当时是很先进的,MIT成为除施乐公司以外的惟一一家拥有激光打印机的单位。这台机器性能非常
好,打印清晰度高,不像以往的打印机那样竖线会发生扭曲,线条打印得笔直、漂亮,它是由计算机控制的。
但它也有很多问题:如经常卡纸。这种情况下,我们知道怎么办,以往的打印机也会出现经常卡纸、清晰度低的问题,我们无法改变打印速度慢、卡纸的问题,但我们是软件工程师,我
们可以用软件来弥补硬件的不足。比如打印作业完成后,我们可以用程序提示:“您的打印作业已完成”,这样打印者不用再等多余的时间。另外我本人也专门写了一段关于卡纸的提示。一
旦卡纸便会通过屏幕告知打印者卡纸了。或者打印机出问题了,系统会显示:“机器故障,需要修理”。一旦出现这种情况,你必须马上去修理,也许不会马上有修理工来帮助你,但是有时
会有两三个同事同时来到你的办公室,你们之间可以互相帮助,共同修理。
事实上,我们把打印机当成整个系统的一部分,保证系统整体稳定运行。所以当新的打印机出现类似问题的时候,我们也想做类似的软件修改。可是问题出现了:新的施乐打印机是用施
乐专有软件控制的,我们没有源代码,连最基本的修改都做不成。我们都是当时全世界最优秀的软件工程师,可我们却一点办法都没有。所以人们对这台打印机感到很头疼。也许你打印后半
个小时去看,却一张纸也没打印出来。又过了半个小时你去看,却发现一直在卡纸。于是你修理好了卡纸,回去又等了半个小时,心想这回成了,却发现打印了200页别人的东西,这是没有任
何意义的。然而最令我们感到头疼的是有人故意不让我们把这台机器做得更好。
他在背叛全世界。当时我听说康尼伯格大学的一位同事有这台机器源代码的拷贝件,所以我去了他在匹兹堡的办公室,想向他索要一份源代码拷贝件,他拒绝了,他说:“我已经承诺不
会向任何人提供拷贝件”。我非常气愤,但是没有办法,只能扭头走了。这对于MIT的员工来说是一种悲哀,于是我们一直解决不了这个问题,机器也一直这样坏下去。相反这件事对我是个不
小的触动。康尼伯格的那位工程师拒绝与我合作,也拒绝与你们合作,他是在背叛我们全体。
这是发生在1981年的事。只是因为他签署了一项不对外泄露协议,他在背叛全世界。这是我第一次接触到不对外泄露协议,我是受害者,我的实验室也是受害者。很多软件工程师都会遇
到被要求签署不对外泄露的协议,而且会有很多诱惑和好处会诱使他们这样做。人们会对自己做过的错事找各种借口,很多人都这么做,为什么我不能呢?但是我不会签署这样的协议,因为
我清楚地记得我和我的实验室是受害者。尤其是你并不知道你会伤害谁,也许会是你最好的朋友。如果有人送给我一个很好的软件,但要求我不对外泄露,我会感谢他,但告诉他良知不让我
这样做,我宁愿不要这个软件。到现在为止,我从未在已知的情况下签署过任何不泄露协议。
70年代AI实验室的成立可以说是计算机领域的悲剧,AI实验室开始编写专有的程序,使得我们原有的共享的源代码变得一点用处也没有了。除非你签署了不对外泄露协议,否则根本无法
在一台先进的计算机上工作,因为他们编写了ISS(不兼容软件系统)。我原有的社团环境已经不存在了。我将如何做?或许可以随历史潮流,也签署不对外泄露协议,并编写专有软件,我也
可以此为生。但是将来回顾这一段历史,我是在用一生建筑分割人们交流的高墙。我不能这样做。另一个选择是离开计算机行业,但很多程序员认为离开计算机会挨饿。但今天的美国仍有几
百万人与软件无关。我的专长就是编程,我相信我会做一名很好的服务生。这也是谋生的一种方式,但我在浪费我的技能。
寻找另一种可能
我在寻找另一种可能,做一名程序员并能为这个社会作出更大的贡献。我认为当时最需要的是开发出一套操作系统来改变这种窘境。由于当时的操作系统是专有的,而这是问题的起因,
所以我决定从零开始,开发出一套操作系统,向所有人开放。
这个任务很艰巨,我不敢肯定我能完成它,但创立一个自由操作系统却是我的目标。问题是如何来设计这样一个操作系统。我知道有些程序写出来后是无用的,因为它只适用于某种类型
的计算机,我不希望这样的事情发生。我想到了便携式软件,这在1983年是非常领先的。我想做一个与Unix兼容的系统,让大家觉得用起来非常容易和方便。
下一步,就是起个名字。六七十年代曾经流行工程师愿意给自己的软件起一个别出心裁的名字。经过多种选择,我选择了GNU这个名字。这是我认为我在所有英语语言中最好的词汇了。再
下一步就是找那些热衷于程序设计的人来开发它。我找到很多计算机厂商,问他们:你们每年使用Unix需要向Unix交几百万美金的许可费,为什么不拿出5万让我们开发新的自由操作系统呢?
如果很多计算机厂家都能这样做,我们就有足够的经费完成开发工作,一旦成功了,将收效巨大,达到100:1的回报,那岂不更好吗?
尽管有人对此表示出兴趣,但没有人愿意提供赞助。于是,我决定自己开始写作。我的目标是编写自由操作系统。
1984年1月份,我辞去了我的工作,我必须这样做,因为在MIT和美国其他大学你的成果是归学校所有的,而我的目标是编写自由操作系统,让大家共享。从此以后,我再没有过正式的工
作。幸运的是通过编写自由操作系统,我到现在还没有挨过饿。
假若每一个程序都有其所有者,所有者都有这么一个规则:使用程序的人要么付钱,要么就不准使用这个程序。那么有些人会说:“好吧,我付钱使用这个软件。”有些人说:“我不买
它,这太贵了,我不用这个程序了。”每次都会有人不使用它,这样一来,这个程序就得不到很好的利用,部分就被浪费了。因为设计、测试、发展程序到一定程度所需花费的精力是一样的
。如果我们的用户量得到了限制,那么我们做的工作就有部分会白白浪费。
但是社会上还有一部分是乐于去帮助别人的人。一个正常的社会只有在良好的心态下才能发挥作用,这也是许多宗教信仰鼓励乐于助人的原因,因为这对于人类社会来说非常重要。当我
还是小孩子时,在学校里,教师会教育我们要“分享”,他们说你不能把带来的糖果一个人全吃了,要分给别的孩子,在中国也是这样吧?对此我并不奇怪。因为显而易见,乐于同你周围的
人分享是非常重要的,孩子们都必须被教育。现在在美国,政府所做的正好相反,要求学校里教师教育孩子们把东西“存着”,以前我们被告诉要同别人分享,现在孩子们却被告知“不要与
别人分享”。分给别人是错误的,分给别人意味着你是一个傻瓜。如果我们都不愿意帮助周围的人的话,这个世界将会怎样?我们难道愿意生活在那样一个人人自我,不愿帮助他人的社会里
吗?
过去有人问我是不是没有人愿意为自由软件工作,因为他们认为这是免费软件,人们要无偿为它工作,因此造成了没有人愿意做和来做这件事情。15年之后的今天,我想已经有了答案,
有些人是编软件拿报酬,但还有许多人却是即便没有报酬也在编写软件。我们编写出有用的软件,并让更多的人可以使用它,这就是自由软件的价值。自由软件的一大优势就是,在大家的共
同努力下,这些程序总是不间断地更新。
当我写Emacs时,大家都在想如何改进它,例如有人会说我在这里有一个设想,另外就有人会说这个新的设想我能实现它,接下来就会有一个接一个的程序出现,它们的出现是如此之快,
我都赶不上了……我想在微软就不会有这个问题。人们改进软件是为了使它更有用,软件有用了,人们就开始使用它,开始改进它,这样的结果使自由软件更加具有可用性和可靠性。以往人
们觉得自由软件不会起什么作用,但从今日事实看来,自由软件具有很高的可靠性,在日常工作、教育等方面都起着重要的作用。在医院医治病人、美国警局记录时都采用了自由软件配置的
系统,因为他们知道这个系统永远不会瘫痪。这也是人们选择使用自由软件的一个极重要的原因。
从实用角度而言,开放源代码的程序也为商业提供支持。
当我们与商人谈的时候,自由软件支持商务也许是一个好的卖点,但是当我们与公众,与我们的系统用户谈的时候,或与我们的社团谈的时候,我们却没必要告诉他们这些,因为社会里
自由的天性是最重要的,我们也要给他们选择的自由。
历史告诉我们,人们若想自由,惟一的方法是为自由奋斗,总有一些让你放弃自由的机会,人们总能听到“如果你放弃了这个自由,你就能得到某些好处”,总有一些人为了这些利益而
放弃自由,所以假若我们要维护自由,就必须有珍视自由的人们。
在世界任何一个地方,如果你想要自由,就必须不懈地奋斗。在自由软件协会中工作的人说:“我坚持为自由软件工作,因为我想要‘自由’。”在某种程度上,我赞成他们所说的,但
我认为有些他们并未提到。在这里我必须阐明,自由软件工作与开放性源代码工作并不完全一样,两种运动有着很相似的目标,但其原因和其对公众所宣扬的主旨并不尽相同。后者无法达到
一个和谐的工作环境,而没有其他人的帮助,软件将无法实现强大的功能和可靠性;另外,这种状况造成的结果将影响科学家们的相互合作精神,而正是这种合作精神使他们一起工作来提高
人类的知识水平。这种精神曾经盛极一时,甚至当科学家们的国家处于战争时期的时候这种合作精神也普遍存在。
我曾读到一个故事,说第二次世界大战的时候,美军士兵在太平洋中的一个小岛登陆,发现了一所房子,上面钉着一块写给美军士兵的牌子,上面说:“美军士兵,这里是一个海洋生物
实验室,我们想把这里的标本学交给一位美国科学家,让他继续我们的研究,而不想由于这场战争使这里的东西被破坏。”每当我想到这些,我都会非常感动。而与这种合作精神相反,现在
每一个公司的研究人员都以其他公司的研究人员为敌,这是一种科学的对立局限,使得每个地方都持续着内战,而这种状况在严重阻碍着技术的沟通和发展。我想这样的情形不能再继续了。
以上是自由软件有别于其他的原因,也是自由软件之所以重要的原因。
我不同意这种看法
目前对自由软件有这样一种看法,如果某些使用者可以自由地获得一个程序,则这个程序对你而言就是自由软件。我不同意这种看法,因为通常一些软件对一些使用者是自由的,但并不
是对其他使用者而言。这看上去有些奇怪,我举个例子来说明:
最典型的一个例子是X-Windows,它是MIT的实验人员开发的基于Unix的Windows操作系统,如果你从开发者手中购到X-Windows,则它对你来说是自由软件。但对于其他拿到X-Windows拷贝
件的计算机厂商来说,他们使用的是Unix系统,他们将X系统加以改编并融合到自己的Unix上,再分售给购买者,它就受限于这个Unix系统。
那么出现了一种似是而非的情况,如果要问X-Windows是否是一种自由软件,答案则取决于你从哪方面考虑。如果你从研发者处购得,你刚享有自由,答案便是肯定的;但如果你从大多数
普通的软件使用者角度考虑,答案则是否定的,他们没有享有这种自由,因而X-Windows就不是个自由软件。研发X-Windows的人员的目标是成功的,他们希望X系统被广泛使用,而结果正如所
料,X-Windows成为Unix系统下最标准的Wndows操作系统。
他们认为这很好,但我不那样认为,我们希望的是给予使用者自由。同时我意识到我的软件也有可能出现这样的情况,因此我决定找出一种办法,避免此种情形发生。
我的办法是自由拷贝
我把这种办法称为CopyLeft办,它是与版权(CopyRight)相对应的说法。我予以你拷贝的自由,并可以制作复本,但你如果发售复本,就要遵守没有再次限制的规则,使任何人可以从你
处得到复件,也同时得到许可去做同样的事。软件到何处,自由就随之到何处,并且每个复本的使用者也得到自由。如同在美国的一项法律――不可让予的权力,意思是你无法彻底失去的权
力,你不能放弃。自由是很重要的,如果你失去它,就会变成奴隶,你是不能放弃这种权力的,除非你犯了罪…… 这就是说X-Windows应是所有人能使用的自由软件,每个人都应享有这种
不能让与的自由。
我虽不能让所有的软件都成为自由的,但我可以运用CopyLeft来编我的软件,以给予你们这种自由。CopyLeft与编译程序差不多,要使用CopyLeft必须有一些给定的供给工具。在GNU系统
中则是GNU一般公认许可,这是一种特定的法定语言编成的许可,目的是推广自由拷贝(C0pM)。我们还有一些在特定情形下适用特定软件的“自由拷贝”版本,并编写了“自由拷贝”软件操
作手册。自由软件分为自由拷贝和不自由拷贝,支持不自由拷贝的人只是不积极,但他们仍很尊重他人的自由。我鼓励你们使用那些不自由拷贝的自由软件或与之合作,而以自由拷贝的策略
来编写程序。
前途是光明的
我来到中国以后,知道有一些中国公司,他们在分售GNU软件,但没有执行其在GNU公认许可下的责任,对此我表示反对。我鼓励公司出售GNU软件的复本,但他们必须尊重你们的自由。在
国际上,许多团体和个人都在分发自由软件,但他们都严格执行GNU公认许可,不遵守这个许可的人是不受欢迎的,将被驱出我们的队伍。中国的自由软件公司中,有一些在遵守GNU则公认许
可,他们遵守公认的准则,我就支持他们。而对这些不遵守GNU公认许可,不执行GNU许可下应尽责任的公司,我会认为他们是不受欢迎的。我希望你们也和我一样,不要以任何形式与这些公
司合作,帮助我完善中国的版权法,并关闭那些公司。
我们销售X-Windows时,有些人说我赚不到钱,因为别人买了你的软件拷贝,他会再制造拷贝,他将以更低的价格卖给别人,所以你是赚不到钱的。但现在,我很高兴地看到,尽管我们“
违反”了公认的经济规律,但我们却赚到了钱。现在仍然有人购买我的软件,我也从未曾因缺钱而饥饿。现在,自由软件正在显示出良好的发展势头,许多自由软件公司专门从事GNU系统上软
件的研发工作。还有许多全职或兼职的志愿人员为我们服务。也许自由软件还有很长的路要走,但我们有充分的理由促使人们支持自由软件,为自由软件服务。自由软件的前途是光明的。