GNU & 自由软件基金会
Richard Stallman 著2004年6月11日在谷歌的工程技术演讲
目录
- 1. 简介
- 2. 怎么开始的
- 3. GNU 操作系统
- 4. GNU Emacs
- 5. 奢侈的习惯
- 6. 自由软件的定义
- 7. 自由之二——道德困境
- 8. 自由之二——美好愿望
- 9. 自由之零——运行程序,自由之一——修改程序
- 10. DRM、后门、缺陷
- 11. 自由之三——无需主人
- 12. Copyleft:禁止限制
- 13. 通用公共许可证
- 13a. 开发 GNU
- 14. 通过自由软件赚钱
- 15. 为什么撰写自由软件
- 16. Linux 内核
- 17. GNU 与 Linux 让自由有所混淆
- 18. 自由软件的敌人
- 19. 背叛的计算
- 20. 帮助 GNU
- 21. Emacs 之圣(Saint Ignucius)
- 22.关于匿名、信用卡、手机
- 23. 自由格式、版权、微软
- 24. 网络邮箱有失去自由的危险
- 25. 艺术版权与软件版权
- 26. 有害的自由软件
- 27. 专利文件格式
- 28. 作为自由软件的游戏
- 29. GPL 带给汽车的自由,保存种子
- 30. 没有软件也比非自由软件强
- 31. 自由软件的可移植性
- 32. 某些自由软件故意做了代码混淆吗?
- 33. 专有具有优势
- 34. 禁止就是禁止,如何变成自由?
- 35. 谷歌可否帮助自由软件
- 36. windows 下的自由软件,好事还是坏事
- 37. SCO 诉讼案
- 38. Stallman 的打字问题
- 39. 开源,好的还是坏的策略
- 40. 结尾
1. 简介
ED:感谢大家。我是 Ed Falk,而我旁边的这位先生无需多做介绍;如果你不知道 RMS 三个字母代表的含义,也许我得说你可能来错了会议室。
Richard 是自由软件基金会的创始人,我记得该基金会创立于1984年,所以他可以看作是自由软件之父。当然,谷歌的设施基于自由软件,所以我们得非常感谢自由软件运动。[我的麦克风就要不行了,所以我不能说太多。]这位是 Richard Stallman,我们非常感谢他能在短时间内接受邀请来到这里,感谢我们共同的朋友 Lile Elam 对此的安排。闲言少叙,有请 Richard!
[Richard 鞠躬致意]
2. 怎么开始的
RICHARD:如果你听不见我说话,请举手。[笑声]是的,有人举手。
今天的话题是自由软件。并不是我开始的自由软件;在计算机的早期就有了自由软件。一旦有了几个同样的计算机后,人们大概就可以共享软件。人们就是这么做的。
{这不行……这有问题。如何消除回声?有人可以处理吗?我愿意接受反馈,不是来自话筒,而是来自听众。
听众:[听不清]
RICHARD:没关系;我不提倡开源,过去没有,将来也不会。}
所以自由软件早在我开始编程之前就已经有了,而我有幸在1970年代参与到一个分享软件的程序员社区。因此,分享软件是我身处其中学到的一种生活方式。我欣赏有自由与人分享的意义,而不是因敌意和为保守秘密而与世界分裂的生活。
但是该社区在1980年代早期消亡了,而我发现自己将面对在一个专有软件世界里度过余生的前程。最惨的是,要面对一个需签署保密协议的前程 {这个我}。我早已认定为软件这样的通用技术信息签署保密协议是不道德的,而发誓不和同伴分享违反人类团结。因此,当我看到楼下的机器让我签署保密协议时,我直接说,“我不能签。”幸运的是,还有一个选项:他们让我过来演讲而不签保密协议。否则,你们就得到别的地方听我的演讲了。[笑声]
(他们还问了一些有趣的问题。他们问我公司的事,我说我今晚就可以。[看着名牌][笑声]他们又问我的接待人,我给了 fencepost.gnu.org。但这就是黑客精神。)
我发现我的处境是如果我要使用一个现代计算机,我就得签署一个专有操作系统的保密协议。因为在1983年所有现代计算机的操作系统都是专有的,不签署保密协议,人们就无法得到这些操作系统的合法拷贝,这是不道德的。因此,我决定做点什么来改变这种处境。我能想到的唯一方法就是撰写另一个操作系统,然后以作者的身份说,“这个系统是自由的;你可以不签署保密协议就获得拷贝,而且欢迎你把它分享给其他人,欢迎你学习它的工作原理,欢迎你改变它。” 因此,不用变得分裂和无助,使用该系统的用户将生活在自由之中。专有软件的常用策略就是故意让用户分裂和无助。这些程序的许可证说,禁止分享,而且大多数情况下,你得不到源代码,所以你无法学习和改变它。它可能还带有你无法识别的恶意功能。而自由软件尊重用户的自由,这才是重点。自由软件运动的原因就是让数字世界的人们获得自由,这样他们就能够自由生活并使用计算机,避免被分裂和变得无助。
3. GNU 操作系统
没有操作系统你就无法使用计算机,所以自由操作系统绝对重要。在1983年,我宣布了开发一个自由操作系统的计划:一个叫做 GNU 的操作系统。.
我决定让这个操作系统类似 UNIX,这样它就可移植。我们在人工智能实验室用了多年的系统是不兼容分时系统,ITS。它是在 PDP-10 上用汇编写的,因此当 Digital 公司不再生产 PDP-10 后,我们多年的工作就付之东流了。我不想再写一个操作系统而又重蹈覆辙,所以我决定让这个系统最好是可移植的。但是我所知的成功的可移植操作系统只有一个,就是 UNIX。所以我决定按照 UNIX 的设计来开发,认为这样我就很可能成功开发出一个既有用又可移植的系统。然后,我又决定让这个系统的接口和 UNIX 兼容,理由就是这样用户就可以直接使用而没有兼容性的更改。
我有想过把我使用过和开发过的各种操作系统的优点以及我的一些点子加在一起,开发出我心中理想的操作系统。但是那样就会不兼容,而用户大概不太能接受,会说 “切换太费劲了,所以还是不用了。”因此,让系统和 UNIX 兼容,我就能减少用户的困难而更有机会让用户用这个系统。
如果用户拒绝了该系统,我也许还有不错的借口。我会说 “我给过他们自由,他们拒绝了;这是他们的问题。”但是我不想只有借口,我要创立一个社区。在这个社区,人们可以自由生活,就是说我开发的系统真的有人用。所以我决定让这个系统兼容 UNIX。
UNIX 由许多部件构成,它们通过多少有些文档的接口互相通信。用户会使用这些接口,所以和 UNIX 兼容就要求使用同样的接口,这就意味着初始设计已经定好了,除了一件事:我要支持哪些硬件。UNIX 支持16位的机器,因为程序要尽量小,所以有很多额外的工作量;所以我决定不支持32位以下的机器来省去这部分额外的工作。我考虑开发系统要花很多年,系统完成时,人们一般都在使用32位的机器了,而后来真的是这样。
此时,开始工作前的事情就只剩下起一个名字。作为一名黑客,就是要享受带幽默感的机智——无论编程,无论生活的其他方面,乃至生活的各个方面都可以机智应对。当时有一个黑客传统,你要写一个类似已有程序的新程序时,你可以给新程序起一个递归缩写的名字,表达这个程序不是原来的程序。
比如,在60、70年代有很多 TECO 文本编辑器,大家类似;一般来说每个系统都会有一个 TECO,它们也可以叫做某某 TECO。但是一个聪明的黑客把他的程序叫做 TINT,意思是 “TINT Is Not TECO(TINI 不是 TECO)”——第一个递归缩写。我们觉得这个很有趣。因此,我在1975年开发了第一个 Emacs 可扩展文本编辑器后,有很多模仿程序,有些就叫做某某 Emacs。但是有一个叫做 FINE,意思是 “FINE Is Not Emacs(FINE 不是 Emacs)”,另一个叫做 SINE,意思是 “SINE Is Not Emacs(SINE 不是 Emacs)”,还有一个是 EINE,意思是 “EINE Is Not Emacs”,再有就是 MINCE,意思是 “MINCE Is Not Complete Emacs(MINCE 不全是 Emacs)”。后来 EINE 又重写,第二版叫做 ZWEI,意思是 “ZWEI Was EINE Initially(ZWEI 原来是 EINE)”。[笑声]
所以我就在找一个递归缩写,类似 “某某 is not UNIX”,但是通常的四个字母不是太好找,因为它们本身都不是单词。如果名字没有其他的意思,就不那么好玩了。然后我就在想,“还有什么办法?”毫无头绪,所以我又想,“我可以缩短一点,这样我就可以用三个字母的递归缩写”。我开始按照26个字母一个一个替换:ANU、BNU、CNU、DNU、ENU、FNU、GNU!好了,“gnu” 是英语里最好玩的一个单词,所以就选了它。如果你可以叫它 “GNU”,那么其他的就不用选了。
当然,“gnu” 一词常常被用来做词语游戏的原因是,根据辞典。它的发音是 “牛(new)”。因此,人们开始互相询问,“嗨,g-nu 是什么”,就像在讲一个笑话,最后才得到答案 “GNU's Not UNIX(GNU 不是 UNIX)”。你可以给出答案,最有趣的部分是,看起来你不是在告诉答案,而是在告诉问的人 GNU 不是什么。但是事实上,你就是在给出 GNU 的确切含义;因此,你在认真回答问题,但看起来你在拒绝回答。
不过,当它指的是操作系统的名字的时候,请发出 G 的音;不要用字典的发音。如果你说 “牛(new)” 操作系统,人们会很迷惑。我们已经为此工作了20年,它不再是一个新(new) 操作系统了。但它还是 GNU,也一直会是 GNU,无论多少人错误地称之为 Linux。
{[观众: 听不清] [RICHARD: 谢谢!]}
有了名字之后,我可以开始工作了。我辞去了在 MIT 的工作,开始编写 GNU 操作系统的各个部分。我必须辞去工作,因为如果我还是 MIT 的员工,那么 MIT 有资格宣称拥有我写的代码,并且 MIT 可以把它变成专有软件。因为 MIT 曾经做过这样的事情,所以我当然不能相信他们不会再做。我也不想和 MIT 的管理部门争论我要使用的许可证的各种细节。辞去工作之后,我就摆脱了这些问题,自那以后我都没有再找过工作。不过,人工智能实验室的领导很不错,他们让我继续使用实验室的设施,我开始使用实验室的一台 UNIX 机器启动我的 GNU 系统。
此前,我并未使用过 UNIX。我也不是 UNIX 高手,而我采用 UNIX 设计的原因就象我告诉你们的那样,而不是因为 UNIX 是我最喜欢的系统。有时,人们会写文章说因为 UNIX 改变了许可证而激发了 GNU。不是那样的;实际上,UNIX 从来也不是自由软件。它们的限制或多或少,强制性要求也有多有少,但从它们来不是自由软件,所以许可证的改变实际上没有什么区别;而且,这些更改早在我看到第一台实际的 UNIX 机器前就发生了。
4. GNU Emacs
那时侯,我曾想我和我招募的伙伴会开发所有的模块并完成整个系统,然后我们会说,“来吧,拿去用。”但是事情并不是那样发展的。1984年夏天,我开始开发 GNU Emacs,这是我第二次实现这个可扩展编程的文字编辑器。到1985年初,它已经可以让我做所有的编辑任务了。我感到特别释然。你们知道,我毫无学习使用 Vi(另一个文字编辑器) 的愿望。[笑声,鼓掌]直到那一刻,我一直都在其他有 Emacs 的机器上编辑,然后通过网络复制文件。当 GNU Emacs 运行起来之后,我就可以直接在 UNIX 机器上编辑了。
可是还有其他人想要得到 GNU Emacs 的拷贝并在他们的 UNIX 系统上编辑文本。当时还没有 GNU 系统,只有那么几个模块。不过 GNU Emacs 本身引起了大家的兴趣。人们开始向我要拷贝,所以我不得不考虑如何发布的问题。当然,我在匿名 FTP 服务器上放了拷贝,这对有网络的人是好的,但是在1985年,大多数程序员还没有互联网。所以,他们还是问我要拷贝;我该怎么说呢?我也许会说,“我还要花时间为 GNU 系统写更多的模块,而不是写磁带,所以你可以找一个有网络的朋友帮你下载然后复制在磁带上给你”,人们迟早会找到人,因为程序员一般认识其他程序员。
5. 奢侈的习惯
但是当时我没有工作,而且在寻找通过自由软件挣钱的方法。所以我宣告,“给我 $150,我就会寄给你 GNU Emacs 的磁带。”订单开始一点点进来。到了年中,订单多起来,每个月有八到十单,这个让我有了必要时的生活来源。
因为我努力抵制了奢侈的习惯。奢侈的习惯就像一个陷阱:很危险。大多数美国人和我有相反的态度:他们挣多少钱,就会打算花多少钱,[做了一个富足的手势]这非常不明智。他们开始购买房子、汽车、游艇、飞机、稀有邮票、艺术品、探险旅游以及生孩子,[笑声]这些是消耗很多资源的奢侈活动,特别是生孩子。 然后,下面的事情就是他们不顾一切地每日奋斗来挣钱支付这些奢侈活动,以至于他们根本没有时间来享受这一切,对小孩来说尤其悲哀。因为其他的东西,我觉得,应该可以被收回。所以,他们成了金钱的玩偶,无法决定如何度过自己的生命。如果你不想成为金钱的玩偶,那么请抵制奢侈的习惯。这样,你的生活成本越低,你的灵活度就越高,你就越不用强迫自己去挣那份钱。
因此,我基本上还是过着学生式的生活,而且知足常乐。
6. 自由软件的定义
但是人们过去常对我说,“你什么意思,这是 free 软件,为什么要花 $150?”在英语中,“free” 有好几个意思,是人们搞混了。我也是花了几年的时间才意识到我应该澄清一下。free 的一个意思指的是价格,另一个意思是自由。当我们说 free 软件时,我们指的是自由,不是价格。此时,请想象一下 “言论自由”,而不是 “免费午餐”。
有些用户从网络上获取我提供的 GNU Emacs 副本,没有花钱。有些用户从我寄的磁带获得了副本,花了钱。还有用户从其他人那里而不是我这里获得了副本,因为有副本的人都有自由再分发给别人。那么这些用户付钱了吗?我不知道;这是他们之间的事。他们没必要告诉我。所以,GNU Emacs 对有些人是免费的,对有些人则是花钱的,但是对他们都是自由软件,因为他们都获得了一些重要的自由,这就是自由软件的定义。
现在让我来告诉你自由软件的定义。你知道,说 “我支持自由” 非常容易。我是说,布什总统也可以这么说。[笑声]我觉得他不知道那意味着什么。但是关键在于,除非你让人了解到具体的意义,否则只是空谈。因此,让我来——具体一些,给出自由软件的定义。
一个程序对作为用户的你而言是自由软件,如果你有以下四个自由:
自由之零是你有自由按自己的意愿运行该程序;自由之一是你有自由通过学习程序的源代码了解它究竟做了什么,然后按照自己的意愿修改它,让它按照自己的意愿运行;自由之二是你有自由通过把该程序分发给友邻而帮助他们;自由之三是你有自由帮助社区的建立,就是说你有自由发布你修改的版本,让大家从中获益。
所有这四个自由都很重要。它们不分层级,它们是四个自由,你必须全部拥有,程序才能称为自由软件。计算机用户永远也不能被剥夺这些自由。
[gnu.org/philosophy/free-sw.html]
7. 自由之二——道德困境
为什么是这些自由?我们为什么这么定义自由软件?
要作为一个有道德的社会成员堂堂正正地生活,自由之二就是必须的。如果你使用的程序没有给你自由之二——让你可以帮助友邻的自由、让你可以分发程序给他人的自由,那么你将随时面临一个道德困境:当有人对你说,“我可否获得那个程序的副本?”此时,你要如何去做?你将被迫在两个恶魔之间做选择。一个恶魔是违反许可证、复制一份软件。另一个恶魔是遵守许可证、做个不友好的社区成员。因此,你可能会选择那个不太恶的恶魔——违反许可证,复制一份软件给那个人。[笑声、掌声]
你知道,此时这个恶魔不太恶,因为它针对的是故意要把你从社区分裂的人,而这非常错误;因此它咎由自取。不过,做一个不诚实的人并不好受。当有人 {让你承诺} 说,“我给你一份副本,但是你必须承诺不给其他人。”正确的事情是说不。一旦你想明白这个道德困境,你就知道当你开始使用那个程序时,你就要在两个恶魔之间做选择,所以你应该拒绝使用那个程序。你应该说 “不,谢谢”,这就是我坚信的原则。如果有人给我一个程序,而我没有分享给其他人的自由,那么我会根据原则说不。
事实上,有一次 John Perry Barlow 做演讲时,我也是一名观众。他说,“如果你没有未授权的软件副本,请举手。”他看到有人举手时非常意外,直到他认出那个举手的人是我。然后他说,“奥,当然,是你。”因为他知道我没有未授权的软件副本;因为我的软件都是自由软件,所有人都有权拥有副本。这就是重点。
8. 自由之二——美好愿望
任何社会的最重要资源就是友善精神,你愿意帮助友邻;不必是每次都帮忙,不过也应该是相当经常地帮忙。这构成宜居社会和野蛮丛林的不同。这种精神不会是100%,但也不会是零,它介于两者之间——文化活动会影响它,使之升高或减少。让它升高很关键,因为这样大家就更安居乐业。所以,世界上主要的宗教几千年来都在鼓励友善精神也就不意外了。
那么,当有社会权力的机构声称分享不对时,意味着什么呢?他们是在毒害重要的资源,任何社会都不能容忍此事。当他们说你和友邻分享就是海盗,又意味着什么?他们断言你帮助友邻等同于攻击船只。这是弥天大谎。攻击船只非常恶劣;而帮助友邻善莫大焉。
当他们为分享之人设立严苛的惩罚时,又是什么意思呢?人们要多害怕才会停止帮助友邻?而你是否想让那种恐怖气氛在社会上弥漫荡漾?我希望的答案是不。我们需要废止强加到我们社会的复制之战。我们要大声而清晰地说,“复制并与友邻分享是好事,是正当的事,禁止这件事的法律是错误的法律。”
9. 自由之零——运行程序,自由之一——修改程序
这就是自由之二的缘由;主要是因为道德。如果没有自由之二,我们无法过有道德的生活。
自由之零的缘由完全不同:你需要控制自己的计算机。如果你运行程序的时间或方式受到限制,那么很显然你无法自由使用自己的计算机。因此,自由之零显而易见,但是只有自由之零并不充分,因为自由之零只是让你按照程序既定的方式使用它。你有自由用[做手势]或者不用。要想有真的自由,你理应可以控制程序做什么,所以你需要自由之一,就是你可以自助,你有自由学习程序的源代码,然后可以改变它,让它按照你的意愿运行。
如果没有自由之一,你无法知道程序做究竟做了什么。开发者会说,“相信我” 而你只能盲目地相信。你确实瞎了眼,因为专有程序带有恶意功能并不罕见,这些功能并不是为用户服务,而是强加对用户的伤害和限制。比如,间谍软件就相当普遍。
[有51秒的音频丢失,RMS 在2010年8月做了如下补充]
微软的 Windows 就在监视用户;人们发现了它有许多监控功能。Windows 媒体播放器也在监视;它会向微软汇报用户在看什么。
[丢失音频的51秒结束]
又如,RealPlayer 也在监视你。TiVo 在监视你。有些人很热衷 TiVo,对它特别喜爱,因为它使用了一些自由软件。但是它也使用了非自由软件,它也在监视你。这说明它做得还不够。我们不能因为有人使用了一些自由软件而欢呼雀跃;我们应该为有人尊重用户的自由而鼓掌赞叹。
10. DRM、后门、缺陷
但是间谍软件还只是坏在偷听。有些非自由程序甚至是故意不工作。DRM 就是一例,DRM 是数字限制管理,它会说,“我不许你看那个文件;我不许你复制这个档案;我不许你编辑这个资料。”这个软件为什么要阻止你?有时非自由软件还会重新配置你的机器,比如让它显示广告,它觉得你不知道这是怎么回事,也不知道应该怎么改回去。
有时它们还会有实实在在的后门。例如,Windows XP 就有一个后门:当它要求升级的时候,它会告诉微软你是谁,微软因而会专门定制针对你的升级。而且这个升级可能会有秘密的账号、特别的间谍功能,也许会拒绝工作。你基本上什么也做不了。微软知道这个后门,我们也知道。
[于2010添加:我们后来了解到微软可以强制 “升级”——这是更加恶劣的后门。]
可能还有我们不知道的后门,也许有些后门微软也不知道。我一月份在印度的时候,我听说有些印度工程师被抓了,他们被控为 Al-Qaeda 工作,试图给 Windows XP 导入后门。因此,他们的努力显然没有成功。但是有没有其他人做到了?我们无法知晓。
我不是说所有非自由软件的开发者都设计了恶意的功能。有些开发者仅仅开发方便用户的功能,但是他们也是人,也会犯错误。他们怀着美好愿望设计的功能可能你并不喜欢,或者他们的代码有缺陷。此时,你也很无助;你只是他们做出决定后无助的用户。无论是恶意还是好心,如果你不想要,你都没办法。
我们作为自由软件的开发者,也是人,也会出错。我曾经设计过用户不喜欢的功能,也曾写过有缺陷的代码。不同的是,{用我们的软件}你不是我们决定之后的被限制的用户,因为我们并未让你无助。如果你不喜欢我们的决定,你可以改变它们,因为你有改变的自由。我不是要批评挟制用户的非自由软件的开发者犯了是人都会犯的错误;我要批评他们剥夺用户改正这些错误的自由,批评他们因这些错误让用户无助。
11. 自由之三——无需主人
但是自由之一不够。它是个人学习和修改代码的自由。因为还有数百万不懂编程的计算机用户不能从自由之一中获利,所以自由之一不够。即使对程序员,自由之一也不够,因为软件很多,自由软件也很多,没人有时间学习并掌握所有的软件并按照自己的想法做所有的修改。
因此,我们能够真正、完全地控制我们软件的唯一方法就是我们是否可以一起控制。这就是自由之三的缘由。它是发布修改版本的自由,这样其他人就也可以使用修改版的软件。这正是让我们一起工作,一起控制软件的自由。因为我可以修改一个程序,并公开修改版,而后你也可以做修改并发布修改版,其他人也可以这么做。现在,我们就有了一个带有以上三个修改的版本,如果大家喜欢这些修改,大家都可以用。
有了自由之三,用户作为集体可以一起控制软件,让软件做他们想要的事。假设有一百万用户想要某个改变,可能他们中有人是程序员;假设其中有一万个人了解如何编程。他们中有人迟早会对程序做出改变并发布修改版,那么这一百万用户都可以用上修改版。你看,大多数人并不知道如何编程,但是他们还是用上了新版本。他们都获益了。
现在,我们假设只有一千人想要某些改动,而他们中没人会编程。他们还是可以从自由中获益。他们可以成立一个组织,每人投入一些钱,比如每人100元,就有了十万元。此时,他们可以找到一个软件公司,说,“你愿意用十万元做这个改动吗?什么时候可以改好?”如果答复不令人满意,可以再找另一家,继续说,“你们可以做这个改动吗?什么时候可以做好?”我们看到,首先,这一千个不懂编程的人可以利用四个自由获得他们想要的改变。其次,我们看到自由软件意味着技术支持市场的自由竞争。
专有软件通常意味着技术支持的垄断。大多数情况下,只有其开发者拥有源代码,所以只有他们可以提供技术支持。如果你想改,那么你得去求助于这些开发者。如果你是非常重要的大客户,那么这些开发者也许会重视。如果不是,他们会说,“一边去,别来烦我。”也许还会说,“付钱吧,我们让你们提一个问题。”如果你提了问题,他们又会说,“谢谢你。六个月后会有一次升级。购买升级版,看看你的问题是否得到解决,也看看我们又给你什么新问题。”
但是有了自由软件,你面对的是自由市场,所以那些真正在乎技术服务的公司通常会用合理的价格获得使用自由软件的更好技术服务。这里有个矛盾的后果,当你在几个非自由软件公司之间选择,你实际上是在垄断之间做选择。如果你选择了其中一个,那么后面的技术服务也就被垄断了。如果你选了另一个[手势指向另一个方向],那么技术支持是另一家垄断。因此,你是在垄断之间做选择。
这就是说你只是在不同的非自由之间做选择。自由是你可以在远超以上选择的范围外有更深入、更广泛的选择。许多人把自由等同于有几个选项,他们完全错失了重点。自由意味着你能决定如何过自己的生活。{它不是说,}我可以选择这个主子、或者那个主子、或者第三个主子,选择主子不是自由。自由是选择没有主子。
12. Copyleft:禁止限制
现在,我已经解释了四个自由的缘由,所以我也就向你解释了自由软件的含义。如果一个程序能够给作为用户的你这四个自由,那么它是自由软件。为什么我要这么定义呢?理由是有时同一个代码对有些人是自由软件,而对其他人则是非自由软件。这听起来有点奇怪,所以我来举个例子,看看这究竟是怎么回事。
据我所知的最大的例子就是 X 窗口系统。它由 MIT 在80年代后期开发,发布所用的许可证给予其用户四个自由。对你而言,它是自由软件。有些拿到这个软件的是发行 UNIX 系统的计算机制造商。他们拿到了 X 系统的代码,他们做了可以让 X 在其系统上运行的必要改动,他们做了编译,然后把二进制文件放到他们的 UNIX 系统上,并且只向其用户发行二进制,使用和 UNIX 系统其他部分一样的许可证——一样的保密协议。 那么对这许多用户,X 窗口系统和 UNIX 的其他部分一样不再是自由软件。在这种矛盾的情况下,对问题 “X 是不是自由软件?” 的回答取决于你在哪里使用它。如果你是开发者,你会说,“我有四个自由;它是自由软件。”如果你是用户,你会说,“大多数人没有四个自由;它不是自由软件。”
X 的开发者未曾考虑这个问题,因为他们的目标并不是给用户自由,他们的目标是获得成功,获得他们自己的成功。那些没有自由的 X 用户只是他们成功的一部分。但是,GNU 项目的目标就是要给予用户自由。如果 GNU 像 X 那样,那么 GNU 是个失败。
所以,我曾在寻找不让 GNU 变成那样的方法。我找到的方法叫做 copyleft。Copyleft 的合法基础是版权法,你可以认为 Copyleft 是使用版权并反过来用。
其工作原理:我们用一个版权声明开始,这没有法律意义上的不同,但是它提醒人们程序是有版权的,就是说,在默认情况下,该程序被禁止复制、分发或修改。 但是然后我们说,“你被授权复制、分发和修改此程序以及它的修改版或扩展版。”但是有一个条件,就是你分发的程序如果显著地包括此程序的一部分,那么整个程序必须也按照同样的条件分发,不多也不少。这就意味着,无论多少人修改了此程序,也无论修改了多少,只要其中包含了相当一部分此程序的代码,那么那个程序也必须一样是自由软件。效果就是,我们保证没有人可以站在你我之间,除去某些自由,然后再把没有自由的程序给你。换句话说,就是禁止限制。
13. GNU 通用公共许可证
Copyleft 让四个自由成为所有用户不可剥夺的权利,无论代码传播到哪里,自由都跟到哪里。我们实现 copyleft 这一普遍理念的具体方法叫做 GNU 通用公共许可证,简称 GNU GPL。大概有三分之二或四分之三的自由软件包使用该许可证。不过,仍然有不少软件使用其他许可证。这些许可证有些是 copyleft 许可证,有些不是。所以,有些自由软件是 copyleft 的,有些不是。 无论是哪种情况,这些开发者尊重你的自由;他们没有要侵害你的自由。不同之处在于,copyleft 让我们走得更远——我们积极地保卫你的自由,不让中间人拿走你的自由;而非 copyleft 的自由软件没有这么做——他们没有拿走你的自由,但是也没有积极保护你的自由不被其他人拿走。所以,我认为这些开发者为了自由可以再进一步。但是他们并没有做坏事;他们做的事情都是好事。所以,我不会说他们错了,我会说他们可以做得更多。我认为他们犯了错。
不过,他们的作品是自由软件,所以他们对社区做出了贡献,事实上,这些软件可以是诸如 GNU 这样的自由操作系统的一部分。
13a. 开发 GNU
在1980年代,我们在 GNU 工程的工作就是开发或找到所有 GNU 软件包来构成完整的 GNU 系统。有时,其他人写了一个程序并把它发布为自由软件,我们就可以用,这是好事,因为减少了我们的工作量。例如,X 窗口系统就是其他人为了他们自己的目的开发的程序,但是他们让它变成自由软件,所以我们可以用。
当时,人们说这个工作量很大,我们永远也不能完工。我觉得我们最终会有一个自由的操作系统,但是我同意这个工作量很大;我要找捷径。所以,比如,我一直要 GNU 有一个窗口系统。甚至在开始 GNU 之前,我在人工智能实验室就写过几个窗口系统,所以我当然希望 GNU 有窗口系统。但是我们从来也没有开发一个 GNU 窗口系统,因为有人已经首先开发了 X 窗口系统。我查看了 X 并说,“它不是 copyleft,但它是自由软件,它很受欢迎,它很强大,那么我们就用它吧。”因此,我们省去了很多工作。我们直接拿了 X,把它放到 GNU 系统中,我们让其他 GNU 模块能够和 X 一起工作。因为我们的目标是一个自由的操作系统,而不是一个每个模块都由我们自己专门撰写的自由操作系统。
14. 通过自由软件赚钱
不过,其他人发布的自由软件 GNU 恰巧能用只是偶尔之事,是巧合,因为他们写这个软件不是为了要有一个自由的操作系统。有之,是好事,但是我们还要开发很多 GNU 软件包。有些软件包是由自由软件基金会的员工开发的。GNU Emacs 的受欢迎让我们看到人们可能真的会开始给 GNU 工程捐款,自由软件基金会就是我们在1985年10月成立的一个免税慈善组织,用来推动自由软件。 我们创立了自由软件基金会,它请求捐助,但是也接管了销售 GNU Emacs 磁带的工作。结果自由软件基金会开头许多年的收入正是来自于此,来自销售物品,来自销售人人都可以自由复制的软件副本和手册。这很有意思,因为人们觉得这不可行;但是我们做到了。
这也意味着我要找到其他谋生的手段。作为自由软件基金会的主席,我不想和它竞争;我觉得那样不公平,是不正确的做法。所以,我开始以收费修改和教授我写的软件来谋生。人们有时想要修改 Emacs 或 GCC,他们想到雇佣我,因为他们知道我是软件的作者,所以我能做得又快又好。因此我开始按照每小时250美元收费,我计算过,这样我一年干七周的活就够生活了——有足够的钱花,一部分缴税,一部分储蓄。[当我达到]我计算的这个工作量,“我当年就不再接活了,我还有其他、更好的事情要做。”
在我为 GNU 工作期间,我实际上从事了三种不同的自由软件生意。我已经讲了两个;第三个是,有人为我的演讲支付报酬。此次演讲是否会有报酬,我还不知道。[笑声]我说了,“请你们力所能及地支付报酬。”我认为谷歌应该可以付得起一个不错的报酬,但是是不是会有,我不知道。不管怎样,我觉得仅仅是为了自由软件运动的利益,做这个演讲也是值得的。
15. 为什么撰写自由软件
这里提出了一个问题:人们为什么会开发自由软件?你们知道,有人认为除非有报酬,没有人会撰写自由软件,赚钱是撰写软件的唯一动机。这种非常愚蠢、非常简单的理论,居然会有人因为它是流行的观点就相信了,太让我惊奇了。
人性非常复杂。无论人们做什么,理由都可能五花八门。事实上,一个人的一个活动常常同时有多个动机。尽管有人说,“如果软件免费,那么就意味着没人因为写软件获得报酬,所以就没有人写软件。”他们显然混淆了 “free,” 一词的两个意思,所以他们的理论建立在混淆之上。不管怎样,我们可以把他们的理论和实际情况做比较,我们看到至少有几百人、或许几千人由于自由软件的工作而获得报酬,包括现场的一些人。我相信,大约有一百万左右的人因为多种原因在开发自由软件。{说没有人}这种关于动机的简单化理论很可笑。
那么我们来看看驱使人们撰写自由软件的动机有哪些;有哪些真正的动机?我不必全部知道。总会有人的动机我不知道,或者记不起来。我只能告诉你我还记得的一些动机。
一个动机是政治理想:让世界变成一个我们可以自由生活的好地方。这是我的一个重要动机,但不是我的唯一动机。有些撰写自由软件的人完全不同意这个动机。
另一个重要的动机是有趣。编程非常有趣。当然不是所有人这么看,但是有很多最好的程序员这么看。我们最希望这些人来做贡献。事实上,没人来告诉你做什么时,那就更有趣、特别有趣,这也是为什么这么多做编程工作的人喜欢在业余时间撰写自由软件。
但是这并不是唯一的动机;另一个动机是被欣赏。如果社区有1%的人使用你的程序,那么你就有成千上万的用户。这么多人在崇拜你。
另外一个有关联、但又不同的动机是职业声望。如果社区有1%的人使用你的程序,那么你可以把它写在简历中,它证明你是一个优秀的程序员。你甚至不必有学历。
还有一个动机是感恩。如果你多年来一直在使用并感谢社区的自由软件,那么当你写程序时就是你回馈社区的机会。
憎恨微软也是一个动机。[笑声]这不是一个聪明的动机,因为微软只是众多开发非自由软件公司中的一员,他们都在做同样的恶事。[只]关注微软是错的,而错误会有不良后果。当人们过多关注微软时,他们可能会忘记同样作恶的其他人。他们可能会认为只要和微软对着干就是好的——即使是非自由软件这样原本就是作恶的事也在所不惜。 其他公司没有像微软那样挟持了如此多的用户,这是事实,但是那不是说他们就不想;他们只是还没有达到象微软那样成功对付那么多用户而已,这并不是一个道义上的借口。不管怎样,{当这个特别的动机起作用时}这个动机确实会驱使人们开发自由软件,所以我们应当把它计算在动机之列。
金钱是一个动机。当人们通过开发自由软件获得报酬时,这个工作就是他们的一部分动机。实际上,当我通过改进我的多个程序获得报酬时,金钱也是我做这些工作的一部分驱动。
[RMS,2010年:还有一个动机我忘了说,就是改进一个自由程序,因为你要自己使用这个改进。]
因此,撰写自由软件有很多动机。幸运的是,自由软件的开发者很多,而我们也已经开发了很多自由软件。
16. Linux 内核
在1980年代,我们一直在填补 GNU 操作系统的空缺模块。到90代初,我们差不多完成了所有必须的东西。只剩下一个重要的组件,一个启动系统的必要组件,它就是内核。我们从1990年起就开始开发一个内核。{我一直在寻找方法}我在找一些捷径,找一些我们可以从已有模块上开始的方法。我认为调试内核会很麻烦,因为你不能使用当前的符号调试器,而当内核崩溃时,情况会比较讨厌。
所以我想找一个绕过去的方法,我最后找到了,卡内基梅隆大学开发过一个叫做 Mach 的微内核。现在,Mach 还没有 UNIX 的所有功能;我们的想法是,这个内核提供某种通用的低层功能,然后你在用户程序中实现其他功能。这样,我觉得就容易调试了,因为调试的是用户程序;它们崩溃时,系统还没有死。因此,人们开始开发这些用户程序,它们叫做 GNU Hurd,因为它是 GNU 服务程序的放牧者(是的,牛(gnus)生活在牛群当中)。
不管怎么说,我认为这样的设计可以使我们能够更快地完工,但是事与愿违;实际上让 Hurd 跑起来花了很多年,一方面是因为 Mach 不稳定,另一方面是因为调试环境不是特别好,还有一方面是因为调试多线程、异步的程序非常困难,再有就是因为这个项目某种度上是一个研究性质的项目。至少这是我所能告诉大家的情况;我并未参与 Hurd 的具体开发。
所幸的是,我们没有被迫等待,因为在1991年,一个叫 Linus Torvalds 的芬兰大学生开发了自己的内核,他用的是传统的单内核设计,他在一年之内就让这个内核跑了起来。一开始,Linux——这个内核的名字——并不是自由软件,但是在1992年,他把这个内核按照 GNU 通用公共许可证再发布,此时它就变成了自由软件。因此,我们有可能把 Linux 和 GNU 系统组合起来,构成一个完整的自由操作系统。这样,我在1983年宣布的目标,我们一直努力的目标,就达成了:第一次,我们有了现代计算机的一个完全自由的现代操作系统,我们可以在一台现代计算机上运行这个操作系统,同时不背叛我们的人性、不被控制。通过安装 GNU + Linux 操作系统,我们就做到了。
17. GNU 与 Linux 让自由有所混淆
但是把 GNU 和 Linux 组合在一起的人变得有点晕,他们开始把整个系统叫做 Linux,但这其实是一个模块的名字。不知怎的,这个混淆比我们做改正要传播得更快。所以我相信你听到很多人在说 Linux 操作系统,这个操作系统{的大部分}基本上是以 GNU 工程这个名字在1984年就开始开发的。
这显然有问题。这个系统不是 Linux;它包含 Linux,Linux 是内核,但是整个系统就是 GNU。所以我请求你们:请不要称之为 Linux。如果你叫它 Linux,那么你就把我们的工作贡献给予了 Linus Torvalds。他贡献了系统的一个重要部件,但他并没有贡献最大的部分,而且整个愿景也早在他介入之前就已经确立。在他还在读高中时,我们就已经开始开发这个系统。所以,请给予我们公平的声誉;我们的确值得至少被提及。要做到这一点,你只需把它叫做 GNU/Linux 系统,或者 GNU+Linux 系统,或者 GNU&Linux 系统,无论你觉得哪个更好。
[gnu.org/gnu/gnu-linux-faq.html]
当然,我请求大家这样做的部分原因是我们应得的荣誉,但这真的不是非常重要的事情。如果只是荣誉的问题,那就不值得我们大费周折了。但是其中更有利害。当人们认为这个系统是 Linux 时,他们就会错误地假定它主要是由 Linus Torvalds 发起并开发的,然后他们还会错误地假定整个愿景也来自他,所以人们就会参照他的愿景并跟随之。他的愿景是去政治化。他不愿为自由而战。他不相信计算机用户应该有自由分享和修改软件。他从未支持过我们的哲学。当然,他可以有自己的看法,他不同意我们的看法并不减少他的贡献。
我们现在有 GNU+Linux 系统的原因是多年为自由奋斗的结果。GNU 工程没有开发 Linux,正如我们没有开发 X,没有开发 TeX,也没有开发诸多现在是系统重要组件的其他自由软件。但是不曾和我们有一样价值观的人、没有下定决心要自由生活的人,不会有理由以开发整个系统为目标,也从未这么做过,如果不是有我们,更不会做出这样的系统。
但是这一点现在正在被忘却。如果你观察周围,你会看到,大多数对 GNU 系统的讨论称之为 Linux,并且一般会把它说成 “开源” 而不是 “自由软件”,也不再提及自由的问题。而这个问题,恰恰是这个系统存在的理由,它正在被大多数人忘却。你明白,许多喜欢在狭隘的技术框架下考虑技术问题的技术人员不会从社会影响的角度审视他们的技术决定。软件是侵害你的自由,还是尊重你的自由,这就是社会影响。而这正是技术人员宁愿忘却或轻视的问题。 我们一直在提醒人们要注意自由,不幸的是,与此同时,我们系统的用户却常常不能注意到,因为他们不知道这是我们的系统。他们不知道这是 GNU 系统,他们以为它是 Linux。这就是为什么如果你提醒人们这个系统的起源会让情况真的变得不同。
人们会对我说,争荣誉看起来不那么好看。不过,我不是为我自己争这个名誉;我是为 GNU 工程争这个名誉,这里有数千个开发者。但是他们做得也对,正如:以小人之心度君子之腹。他们还会继续说,“你就看开一点,当人们称之为 Linux 时,你可以笑对自我并为自己干得不错而自豪。”如果干得不错这个假设是对的,那么他们的建议是非常明智的建议。
我们的开局不错,但仅此而已。我们并没有做完。当每一台电脑都运行着而且只运行着自由的操作系统和自由的应用程序时,我们会说我们完成了工作。我们的工作是解放数字空间的居民。我们有了很棒的开局;我们开发了自由操作系统、自由图形桌面和自由办公套件,有几千万的用户在使用。但是有上亿的用户在使用专有系统,所以要走的路还很漫长。而且,尽管自由软件覆盖面很广,还是有很多应用没有自由软件;所以我们还有很多工作要做。
我们已经可以看到完成的景象。或许只有一步之遥,我们已经跨过了千山万水。但是这并不意味着剩下的工作就是轻而易举的。今天,我们有了以前没有的东西:我们有敌人;有势力、有财力的敌人,他们的实力足以收买政府。
18. 自由软件的敌人
开始时,GNU 和自由软件运动并没有敌人。有人、有很多人对此不感兴趣,但是没有人主动地要阻止我们开发和发布一个自由操作系统。现在,人们要阻止我们,而且这是我们面临的主要阻碍,超过工作本身。
在美国,有两个不同的法律禁止多种自由软件。
其中一个是 DMCA,它禁止开发播放 DVD 的自由软件。如果你买了 DVD,那么你用电脑看是合法的,但是在 GNU/Linux 系统下的播放自由软件在美国是被禁止的。它只影响非常少的一部分软件:播放加密媒体的软件。但是有很多用户想要播放 DVD,如果他们不能使用自由软件播放,他们就会借此使用非自由软件,如果人们不珍视自己的自由的话。
但是更大的危险来自专利法,因为美国允许软件专利。现在,撰写一个不那么简单的程序就意味着要组合数百个想法。如果其中一个想法被人垄断着,那么完成一个程序就非常困难。它让软件开发像是在穿越雷区,因为每个技术决定,也许对你没什么,但是你会有一定的概率踩到一个专利,而它会摧毁你的项目。考虑到你有那么多步要走,它们加起来是一个严重的问题。我们有一个长长的功能清单,自由软件还没有这些功能,因为我们不敢开发它们。
现在,FCC 正在考虑对软件实施广播标识措施。FCC 采纳了一个措施{禁止数字电视系统,除非}:要求数字电视系统有一个拦截复制的机制,而且这个机制必须能够抗破解,这就是说你不能用自由软件实现它。他们还没有决定是否将此措施应用到软件,但是如果应用到软件,他们就会禁止 GNU Radio——这是可以解码数字电视广播的自由软件。
然后,还有秘密规格的或用来干扰用户控制的硬件带来的威胁。如今,电脑上有很多硬件,你无法获得它们的规格书,它们是秘密。他们卖给你硬件,但是不告诉你怎么运行它。那么我们如何编写自由软件来运行它呢?要么我们得通过反向工程来搞清楚它的规格,要么我们得给予这些公司市场的压力。无论哪种情况,如此多 GNU/Linux 用户不知道为什么会开发这个系统,如此多用户从未听说过我今天告诉你们的这些道理,如此多的用户只听说这个系统叫 Linux 并且关联着 Linus Torvalds 去政治化的哲学,这些都会让我们变得弱小。 Linus Torvalds 还在为开发 Linux 而工作。{你知道}开发内核对社区是一个重要的贡献。与此同时,他也树立了一个非常公开的坏典型——使用非自由软件做这个工作。如果他私下使用非自由软件,那么我不会知道,也不会小题大作。但是他邀请进行 Linux 开发的其他人一起使用非自由软件,他就是在树立一个非常公开的典型说使用非自由软件是合理的。当人们看到他这么做时,你知道,如果人们觉得这也可以,那么他们就不可能相信非自由软件是坏事。然后,当这些公司说,“是的,{我们支持}我们的硬件支持 Linux,给你这个可以安装的二进制驱动,然后系统就可以运行了”,人们不会看到这有什么不对,所以他们就不会给予这些公司市场压力,他们也没有动力去做反向工程。
所以,我们必须面对多种危险,如果缺乏决心,我们就变得弱小。虽然拥有强大的动力为自由而战并不能保证取得所有的胜利,但是它肯定会有所帮助。它会让我们更加努力,如果我们更加努力,那么我们就会取得更多的胜利。
19. 背叛的计算
我们必须以政治的形式组织起来才能避免被完全禁止开发自由软件。
今天,对自由软件的未来最隐蔽的威胁来自背叛的计算,它是众多大企业的秘密策划。他们称之为 “可信计算”,但是这是什么意思呢?他们的意思是应用开发者可以相信你的计算机会服从他的命令而不是你的。因此,从你的角度来看,它是 _背叛的计算_,因为你的电脑不再服从你的命令。这个计划的目的就是你不能控制你自己的电脑。
[gnu.org/philosophy/can-you-trust.html]
背叛的计算可以用来做各种不同的事,比如禁止你运行未经系统开发者认证的程序。他们可以这么做,但是他们还没有大胆到这个程度。但是他们计划做的另一件事就是让数据只对特定程序可用。其想法是应用以加密的形式输出数据,使得只有同一应用才能解密,这样别人就无法独立编写一个程序来访问这些数据。当然,他们会使用这个来限制对公开作品的访问,比如用来替代 DVD,这样访问不但是非法的,甚至我们也无法编写一个自由软件来播放。
但是他们不必仅限于已发布的数据。他们也能针对你的数据这么做。想象一下,10年后背叛的计算已经普及,微软决定发布一个新的 Word 格式,它使用背叛的计算来加密你的数据。那么,人们就无法编写自由软件来读取此 word 文件。微软一直在绞尽脑汁防止自由软件来读取 Word 文件。首先,他们使用了秘密的 Word 格式,让人们为理解格式费尽周折。不过,我们还是大致搞明白了。自由软件可以打开大部分(不是全部) Word 文件。 但是他们又有了新的点子。他们说,“我们使用 XML”。现在来看看,当微软说使用 XML 是什么意思。在文件的开头有一个简单格式说,“这是 XML 和二进制的 Word 格式数据”,然后就是二进制的 Word 格式数据,之后又在末尾说,“上面是二进制的 Word 格式数据”。他们还就此申请了专利。{就是这样……我不是太确定}我不知道那个专利的范围,但是我们如果做某些事,不管是读文件,还是写文件,他们可能会起诉我们。我确信的是,如果他们有了背叛的计算,他们也会使用。
这就是我们为什么有一个拒绝打开 Word 文件的运动。你有许多理由应该拒绝打开 Word 文件。其中一个是它们可能带有病毒。如果有人发给你一个 Word 文件,那么你不应该打开它。重点是,你甚至不应该想要打开它。现在,自由软件可以打开大部分 Word 文件。但是比打开文件好得多得多的方式是回复消息说,“请用一个不是秘密的文件格式发我。发送 Word 文件不是一个好主意。”原因是,我们要克服社会上要使用这些秘密格式来沟通的倾向。 我们要说服人们坚持使用所有人都可以自由实现的公开文档标准格式。Word 格式是最恶劣的攻击者,所以我们最好从它开始。如果有人发给你一个 Word 文件,不要打开。回复说,“你真的不该发它。”在 www.gnu.org/philosophy 有一个不错的参考页面。它解释了为什么这是一个重要的问题。
[gnu.org/philosophy/no-word-attachments.html]
20. 帮助 GNU
GNU 工程的网站是 www.gnu.org。你可以到那里获得更多信息。在 /gnu 目录你可以找到历史,在 /philosophy 目录你可以找到关于自由软件哲学的文章,而在 /directory 目录你可以找到自由软件目录,其中列出了超过 3,000 个可用在 GNU/Linux 系统下的自由软件包。
[现在软件包超过 6000 个,目录的位置改到 directory.fsf.org]
现在我要结束这次演讲,但是结束之前,我要提一下,我有一些贴纸赠送。这些贴纸画有一个飞行的牛(GNU)和一个飞行的企鹅,都是超现实的,但是他们都是英雄。{我还有一些物品}如果大家不介意,我有些物品是以自由软件基金会的名义出售的,如果你购买,那么你就是在支持我们。我有写着 “请问我自由软件——这一切都和自由有关” 的按钮,我还有一些 GNU 钥匙环和 GNU 徽章,看起来很不错。你们可以购买。你也可以加入成为会员来支持我们,现在,你可以直接到网站加入,不过如果你要[马上]加入的话,我也有一些卡片。
21. Emacs 之圣(Saint Ignucius)
现在我要展示我的第二形象并结束演讲。人们有时会指责我有 “高人一等” 的态度。我不希望那样。我不会因为有人不象我这样坚定就贬低他们。我会鼓励他们变得更坚定,但这和贬低有所不同。所以,我不觉得我真的有 “高人一等” 的态度,但是我有变成圣人的态度;我的工作就是要变得神圣。
[穿上黑色长袍,戴上光环]
[笑声,掌声]
[Richard 手持一个笔记本电脑,就像拿着圣书在挥舞]
我是 Emacs 之圣。我会保佑你的电脑,我的孩子。
Emacs 开始是一个文本编辑器,后来变成很多计算机用户的生活方式,后来成了一种信仰。有没有人知道 alt.religion.emacs 新闻组的用途?我知道有这么个组,但是由于我从不看网络新闻,所以我不知道组里说了什么。
不管怎样,我们有了两个互为对手的伟大 Emacs 版本分支,我们也有圣人;但不是上帝。
要成为 Emacs 教堂的一员,你必须背诵忏悔的誓言:你要说,“这个系统就是 GNU,Linux 是它的一个内核。”
Emacs 教堂比起其他我知道的教堂更有优势。这里的圣徒无需禁欲。因此,如果你在找一个神圣的教堂,请考虑我们的教堂。
不过,我们的教堂要求你承诺道德纯净的生活。你必须去除专有操作系统的恶魔,让所有的计算机由你掌控或指挥,你也必须安装一个完全[也即,神圣]的自由操作系统,“完全” 可以有多种拼法1,并在其上只安装自由软件。如果你做出这个承诺并身体力行,那么你也就会成为一个圣者,也会最终带有光环——如果你还可以找到的话,因为它已经停产了。
有时,人们会问我,在 Emacs 教堂使用 Vi 是不是罪恶。VI-VI-VI 确实是野兽的编辑器,[笑声]但是自由版本的 Vi 不是罪恶,而是忏悔。
有时,人们还会问我,我的光环是不是真的是一张旧光盘。[指了指光环]这不是光盘,这是我的光环。但是它的前世是一个光盘。
谢谢诸位。
[掌声]
22.关于匿名、信用卡、手机
现在我可以回答一些提问。
听众:你是否知道,或者你是否可以讲一讲 Linus Torvalds 既然有和你非常不同的态度,又为什么把 Linux 按照你的[听不清]发布?他的动机是什么?
RICHARD:我不知道为什么 Linus Torvalds 把 Linux 的许可证切换成 GNU GPL。你要问他本人。我想不起来,甚至也没有想到任何理由。我不知道
听众:你是否可以说一说目前在网络本身增加安全的工作?
RICHARD:我不知道……他说,“在网络中加入安全。”我知道这是什么意思。
听众:[听不清]在网络本身移除匿名。
RICHARD:移除匿名?我不知道这方面的工作,但是我认为这很恐怖。我不进行电子商务因为我不喜欢用信用卡购物。我想匿名购物,并通过实体店现金支付实现匿名。我不愿意给政府任何我的个人记录。同样的道理,我也没有手机。我不想带着一个个人追踪器。我们需要和监控系统做斗争以争取保留我们的隐私。因此,虽然我不熟悉你所说的具体工作,但是我觉得那很危险,远比不安全的电脑更危险。可能因为我不是 Windows 用户,所以我在这方面并没有那么多问题。
23. 自由格式、版权、微软
听众:[听不清]
RICHARD:不,我们不能。实际上,他在问我们是否可以垄断文件格式。回答是,我们不能使用我们以版权为基础的许可证这么做,因为操作(或)系统的想法、原理和方法不能作为版权;它只涉及作品详细表达著作权。所以,我们不能使用诸如 GNU GPL 许可证来禁止人们编写处理同一文件格式的代码。
我们可以假想取得专利;不过,又发现专利和版权非常、非常不同。获得专利要花很多钱,维持专利还要花更多。另外,{微软无需获得}你不必设想微软获得专利是因为做出了巨大改进。其实只需不同即可。微软可以为一个不同的文件格式取得专利,然后强制大多数用户切换到新的格式。微软能这么做是因为它的市场能力和控制力。
我们无法做到。自由软件的理念就是,开发者没有权力;用户有控制。我们不能强制用户切换,即使是为了他们自己的安全也不行。
你要知道,我们从1992年就努力让用户不要使用 GIF 格式,因为该格式是专利,用户可能会因此吃官司。我们说,“为了有人不因为大家使用 GIF 格式而被起诉,请所有人停止使用这个格式。”人们不听。所以,微软可以做的,我们没法做,因为他们有那样的势力去那样做,而由于我们选择了尊重用户的自由,我们对公众没有强制力。
24. 网络邮箱有失去自由的危险
听众:当有人使用谷歌时,他们没有源代码,所以他们无法[听不清]我们所做,这侵犯了人们的自由。
RICHARD:当一个人访问谷歌的服务器时,他们既没有谷歌的二进制,也没有源代码,因为那是谷歌在使用的程序;而那个人没有使用那个程序。所以,我不会想象我有修改你电脑里的程序的权力,你应该有自由修改你电脑里的程序,但是我不认为我该有进入你的电脑并修改软件的自由。你为什么会让我那么做呢?这就是我对一个人使用谷歌服务器进行搜索的看法。
这里有一个可能的风险。风险来自谷歌。风险也来自 Hotmail。当人们使用网络服务器来保存数据和完成工作时,而这些本来可以在他们自己的电脑上进行,这就带来了风险。我不理解说瘦客户端是未来的那些人,因为我无法想象我怎么会那样做事。我有个人电脑,它有能力运行邮件阅读器;我就让邮件在我的电脑上,我不会把它留在别人的服务器上,尤其是一个我不能相信的服务器。当然,现如今,如果你把个人数据放在别人的服务器上,那么你可能就是把数据直接交给了盖世太保2。
[RMS,2010年:在此问题上,Gmail 和 Hotmail 是类似的。又见 gnu.org/philosophy/who-does-that-server-really-serve.html对一部分服务器而言,网络服务的另一个问题。]
听众:[听不清]
RICHARD:他在问,“是否人们使用瘦客户端,所有的计算都在远端的服务器上进行。”是的,这意味着人们失去自由,因为你无法改变别人设置在服务器上的软件,所以如果你使用的是别人服务器上的软件,而不是你自己电脑的软件,你失去控制权。我不认为这是好事,所以我不建议人们这么做。人们会一直开发在自己的电脑上完成这些工作的软件。
{这么早就走了?[笑声]我希望不是因为我的演讲。哎,我不能见到她了。不管怎样。}
25. 艺术版权与软件版权
听众:知识共享(和自由软件相比)是同一宗教的另一种形式,还是另外一种宗教?
RICHARD:{知识共享}首先,它不是一个宗教,除非你在搞笑。Emacs 大教堂是一个玩笑。请记住,对待教堂过于认真的话,即便是 Emacs 大教堂,可能对你的身体健康有伤害。所以,这一切和宗教无关。
它事关道德。它事关什么造就优良的社会和我们愿意在怎样的社会生活。这些不是教义的问题,这是哲学和政治的问题。
知识共享协议为艺术作品而设计,而且我觉得它们对艺术作品是好事。艺术作品的问题和软件的问题不完全一样。
软件是一个实用、有功用作品的实例。你用软件完成工作。一个程序的主要目的不是让人阅读代码和思考,“你看,多么了不起,他们做得真不错。”软件的主要目的是,你运行它,它做事。是的,对软件感兴趣的人也会读代码和学习代码,但是这不是主要目的。软件有趣是因为它做的事,而不只是因为它读起来多么爽。而对于艺术,艺术的主要用途是你的视觉或听觉感受。他们的用途非常不同,因此,复制和修改它们的涉及道德问题也不同。
对实用、功能性作品,人们必须有四个自由,包括自由发布修改版本。但是对于艺术,我不这样认为。我认为这里有一个自由的底线,就是我们必须有自由使用已经公开的作品,就是有自由非商业地原样分发作品的副本。但是我觉得我们不一定有必要超越这个底线。因此,我认为知识共享许可证非常有用,对艺术是好事。
26. 有害的自由软件
听众:由于人人都有修改代码并发布的自由,如何避免破坏分子?
RICHARD:不能避免。重点是,你怎么也不能避免。所以你检查这些不同的版本,选择一个你喜欢的。你也不能在非自由软件上避免破坏分子;实际上,开发者就可能是破坏分子。就象我说的,开发者经常加入有害的功能。你却毫无办法。使用自由软件,你至少可以阅读源代码,可以比较两个版本。如果你要从一个版本切换到另一个版本,你可以做比较,看看哪里不同,看看是不是有害的代码。
27. 专利文件格式
听众:你是否知道哪个流行的文件格式是秘密,哪个又是公开?
RICHARD:关于流行的文件格式,我知道的只有一个,就是微软的。但是,另一方面,有一些格式有专利的问题。例如,仍然有一个关于 LZW 压缩的专利,它用于 GIF 格式。有个人声称他的专利涉及 JPEG 格式,并且已经在起诉一批公司。还有一个专利是关于 MP3 音频的,所以解码 MP3 的自由软件在美国已经被迫转为地下[1]。这也是为什么人们应该转到 Ogg Vorbis 格式。然后,你再看,例如 MPEG-2 视频,有39个不同的美国专利涉及 MPEG-2。所以,这种问题非常多。
28. 作为自由软件的游戏
听众:有没有软件介于知识共享和功能软件之间?类似游戏……
RICHARD:{你可以说游戏}在很多情况下,游戏可以看成是程序和场景的结合。这样,把程序当程序、把场景当科幻作品就顺理成章。另一方面,你可以看出用户对场景的修改和再发布非常有用。因此,虽然它类似科幻和艺术,而不象软件,但是用户有自由修改它实际上是有好处的。
29. GPL 带给汽车的自由,保存种子
听众:你认为自由软件的哲学会超越产品、商品……的界限吗?
RICHARD:你说的 “产品、商品” 能具体点吗?
听众:[听不清]汽车
RICHARD:自由软件的哲学是否应该使用在汽车上?好的,自由软件的哲学是你有自由复制和修改软件。所以,如果你有复制汽车的复印机,那么我认为你有自由复制汽车。但是这样的机器不存在,因此这个问题没有意义。然后是修改,我认为如果你有一辆车,那么你有自由修改它,事实上,许多人就是在改车。修改车也许有一些限制,但是修改的自由在很大程度上是有的。因此,当你想探讨物理实体时,你会看到这样的问题没有实际意义,一般来说,没有物理实体的复印机。
如果我们想象将来有一天有了这种复印机,情况就变得不同,这种变化就会有道德和政治的后果。如果我们有了食物的复制机,那么我确信农业行业会极力禁止人们拥有和使用食物复制机。那会是一个影响非常巨大的政治问题。我相信农民有保留种子的基本权利,剥夺这个权利是暴君干的事。民主政府绝不会那么做。
30. 没有软件也比非自由软件强
听众:[大概意思]你是否认为由于没人投资[听不清]所以自由软件的生产力不行?
RICHARD:我不理解你说的 “生产力不行。”我们知道有人会开发自由软件,有人不开发。我们可以想象有更多的人开发自由软件,那么我们就会有更多的自由软件。但是,你知道,公地悲剧3实际上是因为过度使用。土地也许会有过度使用的问题,但是软件没有。所以,这里真的没法类比。
听众:你给的例子是,假设一个好用的程序有一千人想要一个修改。你说这些人可以把钱凑起来雇佣一个程序员来修改。但是,每个人都会说,“不如先让其他999个来付费。”
RICHARD:他们可以那样做,但是那样一点也不聪明,因为当他们等到结果时,结果不是他们想要的;如果这个事情很重要,那么选择加入并付钱更好,因为结果会是他们想要的。无论他们是否付钱,我都不认为这是一个悲剧。如果他们付钱得到了结果,很好;如果没有,也没什么。我觉得他们不是那么想要那个改变。这也正常。
非自由软件是在作恶,没有软件比有非自由软件对我们更有利。公地悲剧既可以是因为过度使用,也可以是因为贡献不够,但是软件不会使用过度。当软件是专有时,会有贡献不够。那是对公地贡献的失败。因此,我希望停止开发非自由软件。非自由软件比没有软件更糟糕,因为他们都不能在自由中完成任务,但是非自由软件可能会诱使人们放弃自由,而这非常糟糕。
31. 自由软件的可移植性
听众:自由软件的哲学是否会和可移植性[听不清]有潜在的冲突?
RICHARD:不,{我没看到}这个对我完全没有意义。我没看到自由软件的哲学和可移植性有任何冲突。在自由软件的世界中,我们非常努力使软件能够全方位具有兼容性。我们使我们的软件非常兼容,我们使我们的软件非常标准,其他人可以轻松拥有兼容性,我们从各个方面帮助软件实现兼容。同时,你看到微软蓄意引入不兼容性并蓄意阻止互操作。微软因其势力大而这样做。我们不能。如果我们的程序不够兼容,而用户不喜欢,他们可以更改之。他们能把它改得更兼容。因此,我们的地位并不足以强加不兼容,因为我们没有选择追求凌驾于用户之上的权力。
32. 某些自由软件故意做了代码混淆吗?
听众:有些东西[听不清]做了混淆[听不清]理解。
RICHARD:我不同意你的说法。这很可笑。如果你说某个程序很难理解,那和人们要限制你不一样。这并不是说,“禁止你看它。”如果你觉得它不够简明,那么你可以把它变得更简明。实际上,开发者可能在努力使之简明,但是它很难;除非你要把我们的程序和专有软件做比较,来看看哪个更简明,你的说法没有根据。就我所知,非自由软件通常更糟搞,原因就是开发者知道没人会看到代码,所以他们从来不会因为代码一塌糊涂而尴尬。
33. 专有具有优势
听众:你知道,许多来自设备制造商或[听不清]硬件商的人在讨论,他们需要专有软件来获得优势,因为如果他们免费分发软件,那么竞争对手就也能制造这些设备[听不清]。
RICHARD:我不信。我认为这是谬论,因为他们在互相竞争,所以每个人都会说,“我们要让软件专有以获得优势。”如果他们都不这么做,那么他们就都失去优势了吗?我的意思是,这又如何呢?我们不应该购买他们的东西。我们不应该相信他们的自吹自擂,也不要买他们的产品。
34. 禁止就是禁止,如何变成自由?
听众:我会说[听不清]
RICHARD:请不要那样。你的问题可能是个好问题,但是请尽量用中立而不是攻击性的方式提出来。
听众:我想到什么,就直接说了出来。我的问题是,注册[听不清]一个事情并说,“你可以再发布这个软件,但是你必须遵守四个自由,”这难道不也是限制我的自由?
RICHARD:不,它是要限制你的权力。阻止甲主宰乙并不是剥夺甲的自由,因为主宰别人不是一种自由,那是权力。
有人想拥有权力,我们要阻止他们,但是我们是在做好事,并不是在剥夺自由。
比如,你也可以直接说如果你要推翻一个独裁者,独裁者说,“你在剥夺我独裁的自由!”但那不是自由,那是权力。
所以,我区分了控制自己生活的自由和控制别人生活的权力。我们必须区分它们;如果忽略了自由和权力的区别,那么我们就失去了判断一个社会是否自由的能力。你知道,如果你不区分它们,那么你看斯大林的俄罗斯时,你会说,“那里的自由也一样多,只不过是斯大林拿到了所有的自由。”不。在斯大林的俄罗斯,斯大林拥有权力,而人民没有自由;那里没有自由,因为只有你能控制自己的生活时,才有自由。控制别人的生活绝不是自由,对双方都不是。
35. 谷歌可否帮助自由软件
听众:在你看来,谷歌公司在自由软件方面如何做得更好?
RICHARD:我不太了解谷歌做的事情,所以没有太多发言权。但是如果谷歌愿意捐钱给自由软件基金会,那么我们很高兴接受。{我是说,我可以接受}我在这里遇到一些为某个自由软件工作的人,就是 Linux 内核。我不曾问他们是否发布了他们的改进。[听众:他们发布了]那很好,那就是贡献。我的意思是,如果你们想要为其他自由软件做贡献,也很好。但是我不知道你们是否有需要那么做。当然,如果你们有机会发布一些好用的通用自由软件,那也是好事。
[RMS,2010年:谷歌现在发布一些大型的非自由程序。有些是用 Javascript 写的,服务器会在你不知情时安装这些程序。]
36. windows 下的自由软件,好事还是坏事
RICHARD:我再回答3个问题。
听众:如果我为象 Windows 这样的专有操作系统开发自由软件,我实际上是在支持专有系统。那么我是在做好事,还是坏事?
RICHARD:这既有好的一面,也有坏的一面。从使用你的代码来看,你尊重了其他人的自由,这是好的一面。不过,你真的不该在 Windows 上开发。你不该使用 Windows。使用 Windows 是坏事。{就其本身来说}并不象作为 Windows 的开发者那么坏,但是它还是坏事,你不该那么做。
听众:因此你是说,完全不要那么做。
RICHARD:是的,不要使用 Windows,而是用 GNU/Linux 开发 GNU/Linux 的自由软件。这样就在两方面都是好事。
听众:但是那样就不能向 Windows 用户展示这个理念了吧?
RICHARD:有可能,但是已经有了足够多的 Windows 自由软件来达到那个效果了。而且,为 Windows 开发软件实际上刺激大家使用 Windows,而不是 GNU/Linux。因此,不要那么做。
[RMS,2010年:说得更清楚一些,让自由软件也在 Windows 上运行会向他说得那样有用;不过,编写只在 Windows 上运行的自由软件是浪费。
37. SCO 诉讼案
听众:SCO 如果打赢了和 Linux 的官司有什么影响?影响会……
RICHARD:我不知道,要分开来看。它对 GPL 没有影响。但是{可能会有一些影响}Linux 可能需要移除一些代码。根据代码的不同,这个可能是大问题,也可能是小问题,还无法判断。但是我不认为 SCO 是一个真正的问题。我认为软件专利和背叛的计算以及秘密的硬件规格才是真正的问题。那才是我们应该与之斗争的问题。
38. Stallman 的打字问题
听众:我有一个非理念性的问题。我个人对你和反复压力伤病的斗争以及它对 GNU Hurd 开发的影响非常感兴趣。
RICHARD:没有影响,因为我从未在 GNU Hurd 项目上工作。{我没有}我们雇了一个人来开发 GNU Hurd。我没有写过 GNU Hurd 的代码。有几年我没法打太多的字,然后我们雇人来为我打字。后来我发现,使用带光触的键盘,我又能打字了。
39. 开源,好的还是坏的策略4
听众:你可以说说你对开源的看法吗?
RICHARD:开源运动有点象自由软件运动,除了它把我们的哲学基础放弃了。他们不谈论对错,也不谈论自由,也不说不可剥夺的权利,他们就是不提道德词语。他们会说他们有一套开发方法,他们会说这套方法会产生技术上更优秀的软件。所以他们只诉求实用的、技术的价值。
他们说得也许是对的,如果它能够说服人们来写自由软件,那么也是很好的贡献。但是我认为他们不说自由是错失了重点,因为不说也不想那么多自由会使社区变弱。不思考自由的人不会珍视自由,也不会保卫自由,他们会失去自由。你看看美国爱国者法案,你就明白,不珍视自由的人会失去自由。
40. 结尾
谢谢你们,如果有人要购买 FSF 的物品或者……
[掌声]
脚注
- 所有关于 MP3 的专利将于 2018 到期失效。