GNU & 自由软件基金会
作者:理查德·斯托曼2004 年 6 月 11 日在谷歌的工程技术讲座
目录
- 1. 引言
- 2. 如何开始的
- 3. GNU 操作系统
- 4. GNU Emacs
- 5. 昂贵的习惯
- 6. 自由软件的定义
- 7. 自由 2 的道德困境
- 8. 自由 2 的良好意愿
- 9. 自由 0 运行程序,自由 1 修改程序
- 10. DRM、后门、漏洞
- 11. 自由 3 没有主人
- 12. Copyleft 禁止被禁止
- 13. 通用公共许可证
- 13a. 开发 GNU
- 14. 从自由软件中赚钱
- 15. 为什么要编写自由软件
- 16. Linux 内核
- 17. GNU 与 Linux 的混淆问题:自由
- 18. 自由软件的敌人
- 19. 危险的计算
- 20. 帮助 GNU
- 21. 圣伊格纳修斯
- 22. 关于匿名、信用卡、手机
- 23. 自由格式、版权、微软
- 24. 网络邮件失去自由的危险
- 25. 版权:艺术与软件
- 26. 恶意的自由软件
- 27. 获得专利的文件格式
- 28. 作为自由软件的游戏
- 29. GPL 对汽车的自由,保存种子
- 30. 没有软件比非自由软件更好
- 31. 自由软件的可移植性
- 32. 是否有一些自由软件是故意混淆的?
- 33. 专有保持优势
- 34. 禁止被禁止,这如何是自由?
- 35. 谷歌可以帮助自由软件吗?
- 36. Windows 上的自由软件,好还是坏
- 37. SCO 的诉讼
- 38. 斯托曼的打字问题
- 39. 开源,好还是坏,《爱国者法案》
- 40. 结束
1. 引言
ED: 好的,谢谢大家的光临。我是 Ed Falk,这个人不需要太多介绍;如果你不知道 RMS 这几个字母代表什么,你可能不应该出现在这个房间里。
理查德是自由软件基金会的创始人,我想是 1984 年,因此可以被认为是自由软件之父,当然,谷歌的基础设施是基于自由软件的。所以我们非常感谢自由软件运动。[我的麦克风快没电了,所以我不会说太久。] 这是理查德·斯托曼,我们感谢他在短时间内来到这里,并感谢我们的共同朋友 Lile Elam 安排了这一切,我想不再赘述,我把时间交给理查德!
[理查德鞠躬]
2. 如何开始的
理查德:如果你们听不到我的声音,请举手。[笑声] 是的,有人举手了。
所以,我演讲的主题是自由软件。我不是自由软件的创始人;早在计算的早期就有了自由软件。一旦有几台相同型号的计算机,人们就可以尝试共享软件。他们确实这样做了。
{这不是…… 这有问题。我们如何阻止反馈?有人能做些什么吗?我愿意接受一些反馈,但只来自你们,而不是来自 PA 系统。
观众:[听不清]
理查德:好吧,这没关系;我不是开源的倡导者,从来都不是,也永远不会是。}
因此,自由软件在我开始编程之前就存在了,我很幸运,在 20 世纪 70 年代,我是一个分享软件的程序员社区的一员。所以我通过亲身实践了解了自由软件作为一种生活方式,我开始欣赏与他人分享的自由,而不是因秘密和敌意的态度而与世界其他地方隔绝。
但那个社区在 80 年代初消失了,我发现自己面临着在专有软件的世界中度过余生的前景。最糟糕的是,我面临着签署保密协议 {我} 的前景。我得出的结论是,为通常有用的技术信息(如软件)签署保密协议是不道德的。承诺不与同伴分享是对人类团结的侵犯。所以当我看到楼下的机器要求我签署保密协议时,我只是说,“我不能签署保密协议。” 好吧,幸运的是,有一个选择;他们让我进来演讲,而无需签署它,否则你们就必须出去听。[笑声]
(他们问了一些其他有趣的问题;他们问到公司,所以我说我今晚有空。[看着名牌][笑声] 他们问我的主持人是谁,所以我写了 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 不是 TECO”——第一个递归首字母缩写。我们觉得这很有趣。因此,在我 1975 年开发了第一个 Emacs 可扩展文本编辑器之后,出现了许多模仿者,其中一些被称为这个或那个 Emacs。但其中一个被称为 FINE,代表“FINE 不是 Emacs”,还有一个是 SINE,代表“SINE 不是 Emacs”,还有 EINE,代表“EINE 不是 Emacs”,还有 MINCE,代表“MINCE 不是完整的 Emacs”。然后 EINE 被大部分重写,第二个版本被称为 ZWEI,代表“ZWEI 最初是 EINE”。[笑声]
因此,我寻找“某种东西不是 UNIX”的递归首字母缩写,但是通常的四个字母方法不起作用,因为这些都不是单词。如果它没有其他意义,那就不好笑了。所以我想到,“我还能做什么,嗯?” 没有什么想到,所以我想到,“我要做一个缩写,然后我可以得到一个三个字母的递归首字母缩写。” 我开始替换所有 26 个字母:ANU、BNU、CNU、DNU、ENU、FNU、GNU!好吧,“gnu”是英语中最有趣的词,所以这必须是选择。如果你可以称之为“GNU”,那么选择其他任何东西都没有意义。
所以,当然,“gnu”这个词之所以被如此广泛地用于文字游戏,是因为根据词典,它的发音是“new”。所以人们开始互相问,“嘿,g-nu是什么”,这只是个玩笑,早在你可以回答“GNU's Not UNIX”之前。但现在你可以给出这个答案,最棒的是,听起来你好像是在令人讨厌地告诉对方它不是什么,而不是回答他的问题。但事实是,你给出了GNU的确切含义;所以,你实际上是以最精确的方式回答了这个问题,但它给人的感觉是你拒绝回答。
无论如何,当它作为我们操作系统的名称时,请发硬G的音;不要按照词典的发音。如果你谈论“new”操作系统,你会让人们非常困惑。我们已经为此工作了20年了,所以它不再是新的了。但它仍然是,并且将永远是GNU,无论有多少人错误地称之为Linux。
{[听众: 听不清] [理查德: 谢谢!]}
所以,有了名字我就可以开始工作了。我在1984年1月辞去了在麻省理工学院的工作,开始编写GNU操作系统的各个部分。我必须辞职,因为如果我仍然是麻省理工学院的雇员,这将使麻省理工学院能够声称拥有我正在编写的所有代码,而麻省理工学院本可以将它变成专有软件产品。而且由于麻省理工学院已经做过这种事情,我当然不能相信他们不会在这里也这样做。我也不想与麻省理工学院的管理部门争论我将要使用的许可证的所有细节。所以,通过辞去工作,我把他们从等式中去掉了,而且我从那以后就再也没有工作过。然而,人工智能实验室的主管很好,允许我继续使用设施,所以我开始使用人工智能实验室的一台UNIX机器来启动GNU系统的各个部分。
在那之前我从未用过UNIX。我从来不是UNIX高手,我选择遵循UNIX的设计正是因为我告诉过你们的原因,而不是因为UNIX是我最喜欢的系统或任何其他原因。有时人们写道,是UNIX许可政策的变化启发了GNU。好吧,这不是真的;事实上,UNIX从来都不是自由软件。他们在执行要求方面或多或少地有约束性并且令人讨厌,但它从来都不是自由软件,所以那些变化实际上没有任何影响,而且,无论如何,它们发生在我看到真正的UNIX机器之前很久。
4. GNU Emacs
所以,当时,我认为我和我正在招募来尝试帮忙的其他人会开发所有这些部分,并创建一个完整的系统,然后我们会说,“来拿吧”。但事情并不是这样发生的。在84年9月,我开始开发GNU Emacs,这是我的第二个可扩展可编程文本编辑器的实现。到85年初,它适合我用它来完成我所有的编辑工作。现在,这让我松了一口气。你看,我绝对没有打算学习使用Vi。[笑声,掌声] 所以,在那之前,我是在其他装有Emacs的机器上进行编辑,并通过网络复制文件,以便在UNIX机器上测试它们。一旦GNU Emacs运行起来,我就可以在UNIX机器上进行编辑了。
但其他人想获得GNU Emacs的副本,以便在他们的UNIX系统上使用它进行编辑。当时还没有GNU系统,只有几个部分。但是这一部分本身就被证明很有趣。人们向我索要副本,所以我必须研究如何分发的细节。当然,我把副本放在了匿名FTP服务器上,这对网络上的人来说很好,但是在1985年,大多数程序员都不在互联网上。所以他们向我要副本;我该怎么说?我本可以说,“我想把我的时间花在编写GNU系统的更多部分上,而不是写磁带,所以请找一个可以下载它并为你把它放到磁带上的朋友”,他们迟早会找到人,因为程序员通常认识其他程序员。
5. 昂贵的习惯
但我没有工作,我正在寻找通过我的自由软件工作赚钱的方法。所以我宣布,“给我寄150美元,我就给你邮寄一份GNU Emacs的磁带。” 订单开始慢慢地涌入。到年中,它们正逐渐涌入,每月八到十个订单,如果有必要,我本来可以靠这个生活。
那是因为我努力抵制昂贵的习惯。昂贵的习惯就像一个陷阱;很危险。现在大多数美国人的态度正好相反:如果他们赚了这么多钱,他们就会寻找如何花这么多钱的方法,[做了个夸张的手势] 这完全是不明智的。所以他们开始购买房屋、汽车、船只、飞机、稀有邮票、艺术品、冒险旅行和孩子,[笑声] 各种各样的昂贵奢侈品,消耗了世界上大量的资源,尤其是孩子。然后,他们很快就会发现,他们不得不整天拼命挣钱来支付这些东西,所以他们甚至没有时间去享受它们,当涉及到孩子的问题时,这尤其令人难过。我想,其他东西可以被收回。所以他们变成了金钱的傀儡,无法决定他们将如何度过他们的一生。如果你不想成为金钱的傀儡,那就抵制昂贵的习惯,这样你生活所需的支出越少,你就越灵活,你被迫用来挣钱的时间就越少。
所以我基本上仍然过着学生般的生活,我希望一直这样。
6. 自由软件的定义
但人们有时会对我这样说,“如果你要收150美元,那它怎么能是自由软件呢?” 嗯,英文单词“free”有多种含义,他们对此感到困惑。我甚至花了几年的时间才意识到我需要澄清这一点。你看,一个含义是指价格,另一个含义是指自由。当我们谈论自由软件时,我们谈论的是自由,而不是价格。所以想想“言论自由”,而不是“免费啤酒”。
一些用户通过网络从我这里获得了GNU Emacs的副本,并且没有付费。一些用户从我这里获得了磁带上的副本,并且付费了。还有一些用户从其他人那里获得了副本,而不是从我这里获得,因为每个拥有副本的人都可以自由地重新分发它。他们付钱给其他人了吗?嗯,我不知道;那是他们之间的事。他们不必告诉我。所以GNU Emacs对某些用户是免费的,而对另一些用户是付费的,但对他们所有人来说,它都是自由软件,因为他们所有人都拥有某些基本的自由,这些自由是自由软件的定义。
所以现在让我来给你们自由软件的定义。你看,很容易说“我赞成自由”。我的意思是,即使是布什也可以这么说。[笑声] 我不认为他知道它是什么意思。但关键是,除非你让人更具体地说明,否则这只是空谈。所以让我给你们——现在让我更具体地说明,并给你们自由软件的定义。
如果一个特定的用户拥有以下四项自由,那么对你来说,一个程序就是自由软件
自由0是随心所欲地运行程序的自由;自由1是通过研究源代码来了解程序真正做什么,然后修改它以满足你需求的自由;自由2是通过分发副本给他人来帮助你的邻居的自由;自由3是帮助你构建社区的自由,也就是发布修改版本以便他人可以从你的更改中获益的自由;
所有这四项自由都是必不可少的。它们不是自由的层次,它们是四项自由,你必须拥有所有这些自由,程序才能被视为自由软件。所有这些都是任何计算机用户都不应该被剥夺的自由。
[gnu.org/philosophy/free-sw.html]
7. 自由 2 的道德困境
为什么是这些特定的自由?我们为什么要这样定义它?
自由2是必要的,这样你才能过上正直的生活,才能符合道德,成为社会的好成员。如果你使用的程序没有给你自由2,即帮助你的邻居的自由,将副本分发给其他人的自由,那么你将面临一个潜在的道德困境,这可能随时发生,当有人走过来问,“我可以要一份那个程序的副本吗?”这时,你打算做什么?你被迫在两种罪恶之间做出选择。一种罪恶是为那个人制作程序的副本并违反许可证。另一种罪恶是遵守许可证,但做一个不好的邻居。所以你必须选择较小的罪恶,那就是为那个人制作副本并违反许可证。[笑声,掌声]
你看,在这种情况下,这种罪恶较小,因为它针对的是一个故意试图将你与社会其他成员分开的人,因此对你做了非常错误的事情;因此,他罪有应得。但是,靠欺骗他人来生活是不好的。当有人{要求你承诺}说,“我会让你获得一份副本,但你必须承诺不与任何人分享它”,正确的做法是说不。一旦你考虑过这个道德困境,你就应该预料到,当你开始使用该程序时,它会让你在两种罪恶之间做出选择,因此你应该拒绝使用该程序。你应该对它说“不,谢谢”,这是我信奉的原则。如果有人给我一个我不能自由与你分享的程序,我会出于原则而说不。
事实上,我曾经在约翰·佩里·巴洛演讲时在听众席中,他说,“如果你没有未经授权的软件副本,请举手。”他很惊讶地看到有人举手,直到他看到是我。然后他说,“哦,当然,是你,”因为他知道我为什么没有未经授权的副本;那是因为我所有的软件副本都是自由软件,每个人都有权复制。这就是重点。
8. 自由 2 的良好意愿
任何社会最重要的资源是善意精神,是帮助邻居的意愿;不一定每次被要求时都这样,但要经常这样做。这是可居住的社会和弱肉强食的丛林之间的区别。这种精神不会是100%,也不会是零,但会在两者之间——而文化行为可以影响它,可以提高或降低它。并且努力提高它是一些必要的,因为这会让每个人的生活更轻松。所以,世界主要宗教几千年来一直鼓励这种善意精神并非偶然。
那么,当强大的社会机构说分享是错误的时候,这意味着什么?他们正在毒害这种至关重要的资源,这是任何社会都无法承受的。当他们说如果你和你的邻居分享,你就是海盗时,这意味着什么?他们是在说帮助你的邻居在道德上等同于攻击一艘船。这绝对是错的。攻击船只非常非常糟糕;帮助你的邻居是好的。
当他们对任何被发现分享的人处以严厉的惩罚时,这意味着什么?你认为要让每个人都害怕到不敢帮助他的邻居需要多少恐惧?你希望这种恐怖活动在我们的社会中继续下去吗?我希望答案是否定的。我们需要废除强加在我们社会上的这场针对复制的战争。我们需要大声而清晰地说:“复制并与你的邻居分享是好的,是合法的,禁止这样做的法律是错误的。”
9. 自由 0 运行程序,自由 1 修改程序
这就是自由2的理由;它本质上是一个伦理上的理由。如果你没有自由2,你就无法过上道德的生活。
自由0的需要有一个完全不同的理由:这样你就可以控制你自己的计算机。如果你在何时、多少或如何运行程序方面受到限制,显然你没有在自由地使用你的计算机。所以自由0是显而易见的,但自由0是不够的,因为有了自由0,你所能做的就是按照开发者编程的方式使用程序。你可以自由地做这个[做手势],或者什么都不做。要真正自由,你必须控制程序的功能,所以你需要自由1,即帮助自己的自由,研究源代码并将其更改为做你想做的事情的自由。
如果你没有自由1,你就不知道程序在做什么。开发者会说,“相信我”,而盲目信任是你唯一能做的方式。而且你必须真的盲目,因为专有程序有恶意功能并不罕见,这些功能的加入不是为了服务用户,而是为了施加、伤害或限制用户。例如,间谍软件很常见。
[51秒的缺失音频由 RMS 在 2010 年 8 月补齐]
微软的 Windows 会监视用户;已经发现特定的间谍功能。Windows Media Player 也会监视;它会向微软报告用户查看的内容。
[结束对 51 秒缺失音频的替换]
当然可以。例如,RealPlayer 会监视你。TiVo 也会监视你。有些人对 TiVo 感到兴奋,对它充满热情,因为它内部使用了一些自由软件。但它也包含非自由软件,并且会监视你。这表明这还不够。当某些东西使用一些自由软件时,我们不应该欢呼;当它尊重用户的自由时,我们才应该欢呼。
10. DRM、后门、漏洞
但间谍软件还不是最糟糕的。有些非自由软件包被故意设计为拒绝工作。这被称为 DRM,即数字限制管理,程序会说,“我不让你看那个文件;我不让你复制这个;我不让你编辑这个。”这个程序凭什么阻止你?有时非自由程序会重新配置你的机器,例如使其显示广告,认为你不会知道将会发生什么,也不会知道事后如何撤消它。
有时它们还有实际的后门。例如,Windows XP 有一个后门:当它请求升级时,它会告诉微软你是谁,因此微软可以为你提供专门为你设计的升级。而这个升级可能包含秘密帐户、特殊的间谍功能,或者干脆拒绝工作。而且你基本上无能为力。这就是微软知道而我们知道的后门。
[2010 年添加:我们后来得知微软可以强制“升级”——一个更恶劣的后门。]
可能还有其他我们不知道甚至微软都不知道的后门。今年一月我在印度时,有人告诉我,印度的一些程序员被逮捕并被指控为基地组织工作,试图在 Windows XP 中引入后门。所以,显然,那个努力失败了。但其他一些是否成功了?我们无法知道。
现在,我不会声称所有非自由软件的开发者都加入了恶意功能。有些人试图加入一些功能,使其方便用户,并且仅此而已。但他们是人,所以他们会犯错。他们可能会怀着最好的意愿设计出你不喜欢的功能,或者他们可能会在代码中编写错误。当这种情况发生时,你也无能为力;你是他们所做任何决定的无助囚徒。无论它是恶意的还是出于好意,如果你不喜欢它,你都会被困住。
现在,我们这些自由软件的开发者也是人,我们也会犯错。我设计过用户不喜欢的功能。我编写过包含错误的代码。不同之处在于,{对于我们的},你不是我们决定的囚徒,因为我们不会让你无助。如果你不喜欢我的决定,你可以改变它们,因为你有改变它们的自由。我不会责怪非自由的、奴役用户的软件的开发者是人,犯了错误;我会责怪他们剥夺你纠正那些错误自由,让你成为他们错误的无助囚徒。
11. 自由 3 没有主人
但自由1是不够的。自由1是亲自研究和更改源代码的自由。自由1是不够的,因为有数百万用户使用计算机,但不知道如何编程,所以他们不能利用自由1,不是亲自利用。即使对于我们这些程序员来说,自由1也是不够的,因为有太多的软件,甚至是太多的自由软件,没有人有时间去研究、掌握和做出她想要的所有更改。
所以,我们真正、完全控制我们自己软件的唯一方法是我们一起这样做。这就是自由3的目的。自由3是发布修改版本的自由,这样其他人也可以使用它。这使我们能够一起工作,控制我们的软件。因为我可以在程序中做出这个更改并发布修改后的版本,然后你可以做出那个更改并发布修改后的版本,而其他人可以做出那个更改并发布修改后的版本。现在我们有了一个包含所有三个更改的版本,如果每个人都喜欢它,每个人都可以切换到该版本。
有了这种自由,任何用户集体都可以一起控制并使软件执行他们共同想要的功能。假设有 1,000,000 个用户想要某个特定的更改。好吧,幸运的是,他们中的一些人会是程序员;假设其中有 10,000 个知道如何编程。那么,迟早,他们中的一些人会做出更改并发布修改后的版本,然后所有这一百万用户都可以切换到它。你知道,他们中的大多数人不知道如何编程,但他们仍然可以切换到它。所以他们都得到了他们想要的东西。
现在,假设只有 1,000 人想要其他更改,而且他们中没有人知道如何编程。他们仍然可以利用这些自由。他们可以组成一个组织,每个人都投入资金,因此如果每个人都投入 100 美元,那就变成了 100,000 美元。到那时,他们可以去找一家编程公司说,“你愿意花 100,000 美元进行此项更改吗?什么时候可以完成?”如果他们不喜欢那里的答案,他们可以去找另一家编程公司说,“你愿意进行此项更改吗?什么时候可以完成?”这首先向我们表明,这些 1,000 名不知道如何编程的用户可以通过使用这四个自由来获得他们想要的更改。其次,它表明自由软件意味着一个自由的支持市场。
专有软件通常意味着对支持的垄断。在大多数情况下,只有开发者拥有源代码,因此只有开发者可以提供任何支持。如果你想要更改,你必须去找开发者乞求。现在,如果你非常庞大且重要,也许开发者会注意。如果你不是,开发者会说,“走开,别打扰我。”或者,开发者可能会说,“付钱给我们,我们会让你报告一个错误。”如果你这样做,开发者会说,“谢谢。六个月后会有升级。购买升级,看看这个错误是否已修复,你将会看到我们为你准备了哪些新错误。”
但是使用自由软件,你是在与一个自由市场打交道,因此那些真正重视支持的人通常可以通过使用自由软件获得更好的支持。现在,一个自相矛盾的结果是,当你在几个非自由程序之间选择来完成一项工作时,这实际上是在几个垄断之间选择。如果你选择这个程序,那么之后对它的支持将是垄断的。如果你选择这个程序,[将手指向不同的方向] 对它的支持将是不同的垄断,如果你选择这个程序,[将手指向不同的方向] 对它的支持将是另一个垄断。所以你是在这三个垄断中选择一个。
现在,这表明仅仅在几个离散的选项之间进行选择并不是自由。自由比你所能做出的少数选择要深刻得多、广泛得多。许多人试图将自由等同于拥有一些选择,他们完全没有抓住要点。自由意味着你可以决定如何生活。{这不是说,你知道} 在能够选择这个主人、这个主人或这个主人之间有三种选择,这只是选择主人,而选择主人不是自由。自由是没有主人。
12. Copyleft 禁止被禁止
所以我解释了这四项自由的理由。因此,我向你解释了自由软件的含义。如果一个特定的用户拥有所有这四项自由,那么对该用户来说,该程序就是自由软件。我为什么要这样定义它?原因是,有时相同的代码对于某些用户来说是自由软件,而对于其余用户来说则是非自由软件。这可能看起来很奇怪,所以让我给你一个例子来展示它是如何发生的。
我所知道的最大例子是 X Window System。它是在 80 年代末在麻省理工学院开发的,并以一种赋予用户所有四项自由的许可证发布,因此,如果你以该许可证获得 X 的源代码,那么对你来说,它就是自由软件。获得它的人中包括各种分销 UNIX 系统的计算机制造商。他们获得了 X 的源代码,根据需要在他们的平台上进行了更改,编译了它,并将二进制文件放入了他们的 UNIX 系统中,并且仅在与 UNIX 的其余部分相同的许可证(相同的保密协议)下向其所有客户分发了二进制文件。因此,对于那些众多用户而言,X Window System 与其余的 UNIX 系统相比,并没有更自由。在这种矛盾的情况下,“X 是不是自由软件?”这个问题的答案取决于你在哪里进行衡量。如果你在开发人员小组中进行衡量,你会说:“我观察到所有四项自由;它是自由软件。”如果你在用户中进行衡量,你会说:“他们中的大多数人没有这些自由;它不是自由软件。”
X 的开发人员并不认为这是一个问题,因为他们的目标不是给予用户自由,而是取得巨大的成功,就他们而言,那些在使用 X Window System 时没有自由的众多用户只是他们巨大成功的一部分。但是,在 GNU 项目中,我们的目标明确是为了给予用户自由。如果 X 的情况发生在 GNU 身上,那么 GNU 将会是一个失败。
所以我寻找一种方法来阻止这种情况发生。我提出的方法叫做“反版权”(copyleft)。反版权在法律上基于版权法,你可以把它看作是利用版权并将其翻转过来得到反版权。
它是这样工作的:我们从版权声明开始,这个声明在法律上实际上不再起作用,但它提醒人们该程序是受版权保护的,这意味着,默认情况下,禁止复制、分发或修改此程序。但是,我们会说,“你被授权制作副本,你被授权分发它们,你被授权修改此程序,并且你被授权发布修改或扩展的版本。”但有一个条件,这个条件说,你分发的任何包含此程序的任何实质部分的程序,必须作为一个整体,在这些条件下分发,不多也不少。这意味着,无论有多少人修改了程序或修改了多少,只要有任何大量的我们的代码在里面,该程序都必须以相同的方式成为自由软件。实际上,我们保证没有人可以把自己放在你和我之间,剥夺自由并将代码传递给你时失去自由。换句话说,禁止是被禁止的。
13. GNU 通用公共许可证
反版权使所有用户的四项自由成为不可剥夺的权利,因此无论代码在哪里,自由都随之而去。我们用来实现反版权这一通用概念的特定许可证称为 GNU 通用公共许可证,或简称 GNU GPL。此许可证用于大约三分之二或四分之三的所有自由软件包。但这仍然剩下相当数量的软件包使用其他许可证。其中一些许可证是反版权许可证,一些则不是。因此,我们有反版权自由软件,也有非反版权自由软件。在这两种情况下,开发人员都尊重了你的自由;他们没有试图践踏你的自由。区别在于,通过反版权,我们会更进一步,积极保护你的自由,防止任何试图成为中间人并剥夺你自由的人,而非反版权自由软件的开发者不会这样做。他们没有试图剥夺你的自由,但他们不会积极保护你的自由免受其他任何人的侵害。所以我认为他们为了自由可以做得更多。但他们没有做任何坏事;就他们所做的事情而言,那些事情都是好的。所以我不会说他们是错的,我只会说他们可以做得更多。我认为他们正在犯一个错误。
但他们的工作是自由软件,因此它为我们的社区做出了贡献,事实上,该软件可以成为 GNU 等自由操作系统的一部分。
13a. 开发 GNU
在 20 世纪 80 年代,我们在 GNU 项目上的工作是开发或找到 GNU 的所有这些组件,以便我们拥有一个完整的 GNU 系统。在某些情况下,其他人编写了一个程序并使其成为自由软件,我们能够使用它,这很好,因为它缩短了我们必须做的工作。例如,X Window System 是由其他人出于自身原因开发的程序之一,但他们确实使其成为自由软件,因此我们可以使用它。
现在,人们说这项工作太大了,我们永远无法完成它。好吧,我认为我们最终会得到一个自由操作系统,但我同意这项工作很大;我们必须寻找捷径。例如,我一直想在 GNU 中拥有窗口功能。我甚至在开始 GNU 之前就在 AI 实验室编写了几个窗口系统,所以我当然希望在系统中拥有它。但是我们从未开发过 GNU 窗口系统,因为其他人先开发了 X。我看了看它,然后说,“好吧,它不是反版权的,但它是自由的,它很流行,它很强大,所以我们用它吧。” 因此,我们节省了一大块工作。所以我们拿了它,X,并将其放入 GNU 系统中,我们开始让 GNU 的其他部分与 X 一起工作。因为目标是拥有一个自由操作系统,而不是拥有一个自由操作系统,其中的每个部分都是我们特意为之编写的。
14. 从自由软件中赚钱
但是,偶尔会发生其他人发布一些对 GNU 有用的自由软件的情况,当这种情况发生时,这是一种巧合,因为他们编写此软件的目的不是为了拥有一个自由操作系统。所以当它发生时,那很好,但我们必须开发许多其他部分。其中一些是由自由软件基金会的员工开发的。自由软件基金会是一个免税慈善机构,旨在推广自由软件,我们在 85 年 10 月成立了该机构,当时 GNU Emacs 的受欢迎程度表明人们实际上可能会开始向 GNU 项目捐款。因此,我们成立了自由软件基金会,它要求捐款,但也接管了销售 GNU Emacs 的磁带的工作。事实证明,自由软件基金会最初几年的大部分收入都来自销售,来自销售每个人都可以自由复制的软件和手册。这很有趣,因为这被认为是“不可能的”;但我们还是这样做了。
现在,这意味着我必须找到其他谋生方式。作为自由软件基金会的主席,我不想与它竞争;我认为这不公平,也不是正确的行为。因此,我开始通过修改我编写的软件以及教授相关课程来谋生。因此,人们希望对 Emacs 或 GCC 进行一些更改,他们会考虑聘请我,因为他们认为我是作者,因此我可以更快更好地完成工作。所以我开始收取每小时高达 250 美元的费用,我计算出我每年只需 7 周的带薪工作就能维持生计——这意味着有足够的钱可以花,有相等的钱可以存,还有相等的钱可以用来交税。而且[当我达到]那个点时,我想,“今年我不会再接受任何带薪工作了,我还有其他更好的事情要做。”
因此,在从事 GNU 工作期间,我实际上经营过三种不同的自由软件业务。我已经描述了其中两种;第三种是,我的一些演讲会获得报酬。我是否会为这次演讲获得报酬,我还不确定。[笑声]我说,“请尽力支付我。”现在,我认为 Google 应该有能力支付我一笔可观的金额,但它是否会这样做,我不知道。无论如何,我认为仅仅为了它将为该运动带来的好处而做这个演讲是值得的。
15. 为什么要编写自由软件
这就提出了一个问题,即人们为什么开发自由软件。你看,有些人认为,除了获得报酬之外,没有人会编写软件,这是任何人编写代码的唯一动机。令人惊讶的是,人们有时会相信这种完全愚蠢、简单化的理论,因为它是一种主流意识形态的一部分。
现在,人性非常复杂。无论人们在做什么,他们都可能出于各种原因去做。事实上,一个人往往会同时拥有多种动机来做一件事情。尽管如此,还是有人说,“如果软件是自由的,那就意味着没有人付钱编写它,所以没有人会编写它。”现在,很明显,他们混淆了“自由”这个词的两种含义,因此他们的理论是基于混淆的。无论如何,我们可以将他们的理论与经验事实进行比较,我们可以看到,至少有数百人,甚至可能有数千人受雇于从事自由软件工作,包括我相信在这里的一些人,并且大约有 100 万人或更多人出于各种不同的原因而开发自由软件。{所以说没有人}这种关于动机的简单化理论是荒谬的。
那么,让我们看看是什么激励人们编写自由软件;真正的动机是什么?好吧,我不一定了解它们。总有可能有人拥有我不知道或我忘记的动机。我只能告诉你我记得遇到的动机。
一个动机是政治理想主义:让世界变得更美好,我们可以自由地生活在一起。现在,这对我来说是一个非常重要的动机,但这并不是我唯一的动机。还有其他人编写自由软件,但根本不同意这个动机。
另一个非常重要的动机是乐趣。编程是非常有趣的。当然,不是对所有人来说,但对许多最优秀的程序员来说是这样。而这些是我们最希望他们做出贡献的人。事实上,它非常有趣,当没有人可以告诉你该做什么时尤其有趣,这就是为什么许多从事编程工作的人喜欢在业余时间编写自由软件的原因。
但这并不是唯一的动机;另一个动机是获得认可。如果我们的社区中有 1% 的人正在使用你的程序,那就有数十万用户。这有很多人在钦佩你。
另一个相关但不同的动机是专业声誉。如果我们的社区中有 1% 的人正在使用你的程序,你可以将其写在你的简历上,它证明你是一个优秀的程序员。你甚至不必去上学。
另一个动机是感激。如果你多年来一直在使用社区的自由软件并欣赏它,那么当你编写一个程序时,这就是你回报社区给你如此多的机会。
另一个动机是对微软的憎恨。[笑声] 现在,这其实是一个相当愚蠢的动机,因为微软实际上只是众多非自由软件开发商之一,而且他们都在做着同样的邪恶事情。将注意力[仅仅]集中在微软身上是错误的,而且这个错误可能会带来不好的后果。当人们过度关注微软时,他们会开始忘记所有其他公司也在做着同样糟糕的事情。他们最终可能会认为任何与微软竞争的东西都是好的,即使它也是非自由软件,因此本质上也是一样邪恶的。现在,确实,这些其他公司没有像微软那样征服那么多用户,但这并非因为他们没有尝试;他们只是没有像微软那样成功地虐待那么多人,从道德上讲,这几乎不能成为借口。尽管如此,{当这种特定动机激励时} 这种动机确实激励人们开发自由软件,所以我们必须将其视为产生这种结果的动机之一。
另一个动机是金钱。当人们因开发自由软件而获得报酬时,那是他们从事这项工作的部分动机。事实上,当我因改进我编写的各种程序而获得报酬时,那笔钱也是我完成那些特定工作的部分动机。
[RMS,2010年:我忘记提及的一个动机是改进一个自由程序,因为你想自己使用这个改进。]
因此,编写自由软件的动机有很多种。幸运的是,有许多自由软件开发者,并且正在开发大量的自由软件。
16. 内核,Linux
因此,在 20 世纪 80 年代,我们一直在填补 GNU 操作系统的这些缺失部分。到 90 年代初,我们几乎拥有了一切必要的组件。只缺少一个重要的组件,一个初始系统的基本组件,那就是内核。我们在 1990 年开始开发内核。{我当时在寻找某种方法}我当时在寻找某种捷径,某种可以从现有事物开始的方法。我认为调试内核会很痛苦,因为你不能使用符号调试器进行调试,而且当它崩溃时,会有点烦人。
所以我当时在寻找一种可以绕过这项工作的方法,我最终找到了一种,一种名为 Mach 的微内核,它是在卡内基梅隆大学的一个资助项目下开发的。现在,Mach 并没有 UNIX 的所有功能;它的想法是,它提供某些通用的底层功能,而你在用户程序中实现其余的功能。嗯,我想,这将很容易调试,因为它们是用户程序;当它们崩溃时,系统不会死机。因此,人们开始着手开发这些用户程序,我们称之为 GNU Hurd,因为它是一群 GNU 服务器(你看,gnu 生活在群里)。
无论如何,我认为这种设计可以让我们更快地完成工作,但结果并非如此;实际上花了多年才让 Hurd 运行起来,部分原因是 Mach 不可靠,部分原因是调试环境不是很好,部分原因是调试这些多线程、异步程序很困难,还有部分原因是这在某种程度上是一个研究项目。至少就我所知是这样;我从未参与 Hurd 的实际开发。
幸运的是,我们不必等待它,因为在 1991 年,一位芬兰大学生 Linus Torvalds 开发了自己的内核,使用了传统的单内核设计,并且他在不到一年的时间内就使其勉强运行起来。最初,Linux——这是这个内核的名称——不是自由的,但在 1992 年,他根据 GNU 通用公共许可证重新发布了它,那时它成为了自由软件。因此,通过结合 Linux 和 GNU 系统,就可以创建一个完整的自由操作系统。这样,我们为之设定的目标,我在 1983 年宣布的目标就实现了:第一次有了一个用于现代计算机的完整现代操作系统,并且可以拥有一台现代计算机并在不背叛人类其他成员,不被征服的情况下运行它。你可以通过安装 GNU + Linux 操作系统来实现这一点。
17. GNU 与 Linux 的混淆问题:自由
但是,那些将 GNU 和 Linux 结合起来的人们感到困惑,他们开始将整个东西都命名为 Linux,而这实际上只是其中一个组件的名称。而且不知何故,这种困惑传播的速度比我们能够纠正它的速度更快。所以我相信你已经听很多人将 Linux 说成是一个操作系统,一个 {大部分} 基本上在 1984 年以 GNU 项目的名称开始的操作系统。
现在,这显然是不对的。这个系统不是 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 时,你可以对自己微笑,并为自己完成的出色工作感到自豪。”如果这个假设是正确的,那将是非常明智的建议:即假设工作已经完成。
我们已经开了一个好头,但这仅仅是开始。我们还没有完成这项工作。当每台计算机都只运行自由操作系统和自由应用程序时,我们才算完成了这项工作。这项工作是解放网络空间的居民。我们已经开了一个好头;我们已经开发了自由操作系统和自由 GUI 桌面和自由办公套件,现在有数千万用户正在使用它们。但是有数亿专有系统的用户,所以我们还有很长的路要走。而且,尽管有如此广泛的自由软件,仍然有很多应用领域没有自由软件;所以我们还有很多工作要做。
你知道,我们已经看到了完成这项工作的曙光。也许我们只差一个数量级,在经历了许多数量级之后。但这并不意味着剩下的事情很容易。而今天,我们拥有了我们以前没有的东西:我们有了敌人;强大的、富有的敌人,强大到可以收买政府。
18. 自由软件的敌人
最初,GNU 和自由软件运动没有敌人。有很多人不感兴趣,很多人,但没有人积极试图阻止我们开发和发布自由操作系统。如今,他们正在试图阻止我们,而我们面临的主要障碍是这个,而不是工作本身。
在美国,有两项不同的法律禁止各种类型的自由软件。
其中之一是 DMCA,它已被用来禁止用于播放 DVD 的自由软件。如果你购买了一张 DVD,你在你的计算机上观看它是合法的,但是在美国,本可以让你在你的 GNU/Linux 系统上做到这一点的自由软件已经被审查了。现在,这影响了相当狭窄的软件范围:用于查看加密媒体的软件。但是,许多用户可能想要这样做,如果他们无法使用自由软件做到这一点,如果他们不重视自己的自由,他们可能会将其作为使用非自由软件的理由。
但真正的危险来自专利法,因为美国允许软件创意申请专利。现在,编写一个非同小可的程序意味着要结合数百种不同的创意。如果其中任何一个创意都可能被某人垄断,那么就很难做到这一点。这使得软件开发就像穿越雷区一样,因为在每个设计决策时,可能什么都不会发生,但有一定的几率你会踩到专利,它会炸毁你的项目。考虑到你必须采取的步骤数量,这会变成一个严重的问题。我们有一长串自由软件包没有的功能列表,因为我们害怕实现它们。
现在,美国联邦通信委员会(FCC)正在考虑将广播标志规定应用于软件。联邦通信委员会通过了一项规定 {禁止数字电视调谐器,除非} 要求数字电视调谐器具有阻止复制的机制,并且这种机制必须是防篡改的,这意味着它不能在自由软件中实现。他们尚未最终决定这是否适用于软件,但如果适用,他们将禁止 GNU Radio,这是一种可以解码数字电视广播的自由软件。
接下来,还有来自具有秘密规格或旨在干扰用户控制的硬件的威胁。现在,你可以为你的 PC 购买许多规格保密的硬件。他们会把硬件卖给你,但他们不会告诉你如何运行它。那么我们如何编写自由软件来运行它呢?好吧,我们要么通过逆向工程来找出规格,要么就必须对这些公司施加市场压力。在这两种情况下,我们都因为许多 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
现在,www.gnu.org 是 GNU 项目的网站。因此你可以去那里获取更多信息。在 /gnu 目录中,你会发现历史,在 /philosophy 目录中,你会发现有关自由软件哲学的文章,在 /directory 中,你会发现自由软件目录,其中列出了 3,000 多个可在 GNU/Linux 系统上运行的可用的自由软件包。
[现在超过 6000 个,位于 directory.fsf.org]
现在,我即将结束我的演讲,但在我这样做之前,我想提一下,我这里有一些贴纸可以赠送。这些贴纸显示了一只飞翔的 GNU 和一只飞翔的企鹅,两者都相当不现实,但它们是超级英雄。{我还有一些东西} 如果人们不介意,我这里有一些代表自由软件基金会出售的东西,所以如果你购买它们,你就是在支持我们。我有一些按钮,上面写着“问我关于自由软件的事——一切都关乎自由”,我还有一些 GNU 钥匙扣和 GNU 别针,它们有点漂亮。所以你可以购买这些。你也可以通过成为会员来支持我们。现在,你可以通过我们的网站做到这一点,但我也有一些卡片,如果你想 [现在] 加入,你可以使用它们。
21. 圣伊格纳修斯
现在,我将通过展示我的另一个自我来结束我的演讲。你看,人们有时指责我有一种“高人一等”的态度。现在,我希望这不是真的。我不会仅仅因为某人没有像我一样坚定地致力于自由软件而谴责他。我会试着鼓励他变得更加坚定,但这有所不同。所以我不认为我真的有“高人一等”的态度,但我有一种神圣的态度,因为我是一个圣人;我的工作是神圣的。
[穿上一件黑色长袍和一个磁盘光环]
[笑声,掌声]
[Richard 像拿着一本圣书一样拿着一台笔记本电脑挥舞着]
我是 Emacs 教会的圣 Ignucius。我祝福你的计算机,我的孩子。
Emacs 最初是一个文本编辑器,后来成为许多计算机用户的生活方式,然后成为一种宗教。有人知道 alt.religion.emacs 新闻组是用来做什么的吗?我知道它存在,但由于我从未阅读过网络新闻,所以我不知道里面说了什么。
无论如何,现在我们甚至在两个竞争版本的 Emacs 之间存在巨大的分裂,我们也有圣人;但没有神。
要成为 Emacs 教会的一员,你必须背诵信仰告白:你必须说,“除了 GNU 之外没有其他系统,而 Linux 是它的内核之一。”
与我可能提到的其他教会相比,Emacs 教会有其优势。要成为 Emacs 教会的圣徒,不需要独身。所以如果你正在寻找一个可以成为神圣的教会,你可能会考虑我们的教会。
然而,它确实要求你承诺过一种道德纯洁的生活。你必须驱除所有在你实际控制或你权力下的计算机上存在的邪恶的专有操作系统,并且你必须安装一个完全 [即,神圣的] 自由操作系统,其中“完全”可以用多种方式拼写,然后只在上面安装自由软件。如果你做出这个承诺并坚持下去,那么你也会成为圣徒,你最终也可能会拥有一个光环——如果你能找到一个的话,因为它们已经不再生产了。
有时人们问我,在 Emacs 教会中,使用 Vi 是否是一种罪过。好吧,确实 VI-VI-VI 是野兽的编辑器,[笑声] 但使用免费版本的 Vi 不是一种罪过,而是一种忏悔。
有时人们问我,我的光环是否真的是一个旧的计算机磁盘。[指向光环] 这不是计算机磁盘,这是我的光环。但它在之前的存在中是一个计算机磁盘。
所以,谢谢大家。
[掌声]
22. 关于匿名、信用卡、手机
所以我可以回答问题一段时间。
听众:是的,你知道吗,或者你能告诉我们为什么 Linus Torvalds,他的态度和你的态度非常不同,会在你的 [听不清] 下发布 Linux 吗?是什么促使他这样做的?
RICHARD:我不知道为什么 Linus Torvalds 将 Linux 切换到 GNU GPL。你必须问他这个问题。我不记得曾经看到过这样做的原因。我不知道。
听众:你能谈谈目前在网络本身中加入安全性的努力吗?
RICHARD:我不知道……他说,“将安全性插入网络的努力”。我不知道那是什么意思。
听众:[听不清] 从网络本身中删除匿名性。
理查德: 取消匿名?嗯,我不了解这些努力,但我认为这很糟糕。我不进行电子商务,因为我不喜欢用信用卡购物。我希望匿名购买东西,我通过在商店支付现金来做到这一点。我不喜欢让老大哥有关于我的任何记录。出于同样的原因,我没有手机。我不想携带个人追踪设备。我们必须更加努力地捍卫我们的隐私,使其免受监视系统的侵害。所以,尽管我不熟悉你所说的具体努力,但我认为它们很危险,比计算机不安全要危险得多。现在,也许那是因为我不是 Windows 用户;所以我要处理的问题比较少。
23. 自由格式、版权、微软
观众:[听不清]
理查德: 不,我们不能。基本上他是在问我们是否可以垄断文件格式。嗯,答案是,我们不能使用我们基于版权的许可证这样做,因为版权不涵盖任何想法、原则、操作方法或系统;它只涵盖作品的表达细节。因此,我们不能使用像 GNU GPL 这样的许可证来禁止任何人编写自己的代码来处理相同的格式。
我们或许可以获得专利;然而,事实证明,专利与版权非常非常不同;它们几乎没有任何共同之处,而且事实证明,获得专利要花费很多钱,维持专利的费用甚至更高。还有一件事是,{微软不需要获得}你不应该假设微软正在申请专利的东西很重要,因为它是一个很大的改进。它只需要不同即可。微软可以就文件格式的某些不同之处获得专利,然后他们可以迫使大多数用户切换到使用该想法的新格式。微软可以这样做,是因为它的市场力量和控制力。
我们不能这样做。自由软件的全部意义在于,开发者没有任何权力;用户才是掌控者。我们不能强迫用户切换到任何东西,即使是为了他们自己的安全。
你知道,自从大约 1992 年左右以来,我们一直试图说服用户停止使用 GIF 格式,因为该格式已获得专利,一些用户会因此被起诉。所以我们说,“为了那些如果公众使用这种格式而被起诉的人,请大家停止使用 GIF 格式。” 但是人们并没有听。所以问题是,我们不能做微软所做的事情,因为那是基于他们拥有的权力,而且由于我们选择尊重人们的自由,所以我们没有凌驾于公众之上的权力。
24. 网络邮件失去自由的危险
观众:所以,当有人使用 Google 时,他们无法访问我们使用的源代码,因此他们无法[听不清]我们所做的事情,因此使用它会侵犯他们的自由。
理查德:当一个人访问 Google 服务器时,他们既没有 Google 正在使用的程序的二进制文件,也没有源代码,因为是 Google 正在使用该程序;那个人不是在使用该程序。因此,我不期望有权更改在你计算机上运行的软件。你应该有权更改在你计算机上运行的软件,但我永远不会期望我有权进入你的计算机并更改那里的软件。你为什么要让我这样做呢?这就是我看到一个人使用 Google 服务器进行搜索时的看法。
现在,那里可能存在危险。危险不是来自 Google 之类的事情。危险来自 Hotmail 之类的事情。当人们开始使用网络上的服务器来存储他们的数据,并执行他们实际上可以在自己的计算机上完成的工作时,就会带来危险。我从来不理解那些说瘦客户端是未来的人,因为我无法想象我为什么会这样做。我有一台 PC,它可以执行诸如运行邮件阅读器之类的事情;我会在自己的计算机上处理邮件,我不会将其留在任何人的服务器上。尤其是一个我没有理由信任的服务器。当然,如今,如果你允许你的个人数据存储在某人的服务器上,你还不如直接将其交给阿什克罗夫特和他的盖世太保。
[RMS,2010 年:在这方面,Gmail 与 Hotmail 相当。另请参阅 gnu.org/philosophy/who-does-that-server-really-serve.html,了解适用于某些(但并非所有)网络服务的另一个问题。]
观众:听不清
理查德:他问,“如果人们使用瘦客户端,所有计算都在远程服务器上完成。” 是的,这确实意味着人们失去了自由,因为很明显,你无法更改在别人的服务器上设置的软件,因此,如果你使用别人服务器上的软件,而不是在自己的计算机上运行它,你就会失去控制。现在,我认为这不是一件好事,因此我将鼓励人们不要这样做。人们会继续开发软件,以便在自己的机器上完成这些工作。
{这么快就走了?[笑声]我希望不是因为我说了什么。哎呀,现在我没机会见到她了。不管怎样。}
25. 版权:艺术与软件
观众:知识共享是同一个宗教的不同教派,还是不同的宗教?
理查德:{知识共享}首先,这不是宗教,除了玩笑之外。Emacs 教堂是一个玩笑。请记住,对任何教堂过于认真都可能危害你的健康,即使是 Emacs 教堂。所以这与宗教无关。
这是一个道德问题。这是一个关于什么能构成一个美好社会,以及我们想生活在什么样的社会的问题。这些不是教条问题,而是哲学和政治问题。
知识共享许可证是为艺术作品设计的,我认为它们对艺术作品有好处。艺术作品的问题与软件的问题不完全相同。
软件是实用功能性作品的示例。你用它来完成工作。程序的主要目的不是让人们阅读代码并想,“哇,多么迷人,他们做得多么出色。” 软件的主要目的是,你运行它,然后它会做一些事情。是的,那些对软件感兴趣的人也会阅读它并学习,但这并不是主要目的。它之所以有趣是因为它将要完成的工作,而不仅仅是因为它读起来有多么好。而对于艺术,艺术的主要用途是当你观看或聆听它时获得的感觉。因此,这些是非常不同的使用方式,因此,关于复制和修改的道德问题也不同。
对于实用的功能性作品,人们必须拥有四个自由,包括自由发布修改版本。但是对于艺术,我不会这么说。我认为,对于使用任何已出版的作品,我们必须始终拥有一定的最低限度的自由,那就是非商业地分发逐字、精确副本的自由。但我不会说它必须超出这个范围。因此,我认为知识共享许可证对于艺术来说是一个非常有用且很好的使用方式。
26. 恶意的自由软件
观众:既然每个人都有自由修改代码并重新发布它,你如何阻止破坏者?
理查德:嗯,你无法阻止。关键是,你永远无法阻止。所以你只需查看这些不同的版本,看看你实际喜欢哪个。你也无法将破坏者排除在非自由软件之外;事实上,开发者可能是破坏者。正如我所说,开发者通常会加入恶意功能。然后你就完全无助了。至少对于自由软件,你可以阅读源代码,你可以比较两个版本。如果你正在考虑从这个版本切换到那个版本,你可以比较它们,看看有什么不同,并查找一些恶意代码。
27. 获得专利的文件格式
观众:你碰巧知道哪些流行的文件格式是秘密的,哪些是公开的吗?
理查德:嗯,在流行的文件格式中,我所知道的唯一秘密的是一些微软的文件格式。但是,另一方面,还有一些格式存在专利问题。例如,仍然有专利涵盖 LZW 压缩,该压缩用于 GIF 格式。而且有人拥有一项他声称涵盖 JPEG 格式的专利,并且实际上正在起诉一些公司。然后还有一项关于 MP3 音频的专利,因此自由软件 MP3 编码器在美国已被赶到地下 [1]。这就是为什么人们应该切换到 Ogg Vorbis 格式。然后,如果你看看 MPEG-2 视频,据说有 39 项不同的美国专利涵盖了 MPEG-2 的各个方面。因此存在很多这样的问题。
28. 作为自由软件的游戏
观众:是否有任何软件介于知识共享和功能性软件之间,例如游戏或……?
理查德:嗯,{你可以说游戏}在许多情况下,你可以将游戏视为程序和场景的组合。然后,将程序视为程序,并将场景视为虚构作品是有意义的。另一方面,你看到的是,用户编辑和重新发布这些场景的修改版本非常有用。因此,尽管这些类似于小说和艺术,不像软件,但用户能够自由地更改它们似乎真的很有用。
29. GPL 对汽车的自由,保存种子
观众:你是否设想这种自由软件理念会跨越边界,扩展到产品、商品……
理查德:当你谈到“产品、商品”时,你能具体一点吗?
观众:[听不清]汽车
理查德:那么,自由软件理念应该适用于汽车吗?好吧,自由软件理念是,你应该可以自由地复制和修改它们。因此,如果你有汽车复印机,我认为你应该可以自由地复制任何汽车。但是没有汽车复印机,所以这实际上是一个毫无意义的问题。其次,修改。嗯,是的,我认为如果你有一辆汽车,你应该可以自由地修改它,事实上,很多人都在修改他们的汽车。因此,可能对此有一些限制,但在很大程度上,这种自由是存在的。所以你看到的是,当你在谈论物理对象时,这实际上不是一个有意义的问题。一般来说,没有物理对象的复印机。
如果我们想象一下,在未来的某一天,真的存在这样的复印机,那么情况就大不一样了,是的,这种变化会对伦理和政治产生影响。如果我们有了食物复印机,我相信农业综合企业会试图禁止人们拥有和使用食物复印机。这将是一个巨大的政治问题,就像今天农民是否应该被允许保留种子一样,存在着巨大的政治争议。现在,我认为他们有保留种子的基本权利,阻止他们是暴政。一个民主政府永远不会这样做。
30. 没有软件比非自由软件更好
听众:[大概]你认为自由软件是否会因为没有人愿意投资而导致产量不足,存在问题吗?[听不清]
理查德:我不明白你说的“产量不足”是什么意思。我们看到有些人开发自由软件,有些人则不。所以我们可以想象更多的人开发自由软件,如果是这样,我们就会有更多的自由软件。但是,你看,“公地悲剧”实际上是过度使用的问题。这可能发生在田地上,但不会发生在软件上;你不能过度使用一个程序,你不会把它用坏。所以,实际上,这里没有类比之处。
听众:好吧,你举的例子是,假设有一个有用的程序,有一千个人想要修改它。你说他们可以凑钱,雇一个程序员来进行修改。但是这个群体中的每个人都可以说,“好吧,我就让其他999个人来支付修改费用。”
理查德:好吧,他们可以这样做,但这会很愚蠢,因为如果他们发现结果是修改没有完成,那么如果这对他们来说很重要,那么他们最好加入并贡献他们的资金,以便进行修改。无论他们是否这样做,我都不会认为发生了什么悲剧。如果他们加入并为修改付费,并得到了修改,那是好事,如果他们不加入并且不为修改付费,那也是好事;我想他们并没有那么想要它。任何一种情况都可以。
非自由软件是邪恶的,我们宁愿没有软件也不要非自由软件。公地悲剧可能发生在过度使用或贡献不足的情况下,但过度使用在软件中是不可能的。当程序是专有的时,就会发生贡献不足。这是一种对公共资源的贡献失败。所以我希望停止开发专有软件。一个非自由的程序比没有程序更糟糕,因为两者都不能让你在自由的情况下完成工作,但非自由的程序可能会诱使人们放弃他们的自由,这真的很糟糕。
31. 自由软件的可移植性
听众:自由软件理念和[听不清]的便携性之间是否存在潜在冲突?
理查德:不,{我看不出}这对我来说完全没有意义。我看不出自由软件的理念和便携性之间有任何冲突。在自由软件世界中,我们已经从各个方面努力实现便携性。我们使我们的软件非常便携,我们使我们的软件标准化,以便其他人可以轻松地实现便携性,因此我们正在从各个可能的方向帮助实现便携性。同时,你看到微软故意引入不兼容性并故意阻止互操作性。微软可以这样做,因为它有权力。我们做不到。如果我们使一个程序不兼容,用户不喜欢,他们可以改变它。他们可以把它改成兼容的。因此,我们没有能力强加不兼容性给任何人,因为我们选择不试图拥有凌驾于他人之上的权力。
32. 是否有一些自由软件是故意混淆的?
听众:有些东西[听不清]混淆了[听不清]理解它。
理查德:好吧,我不同意你的说法。拜托,这太傻了。如果你说一个程序很难理解,那和人们限制它不一样。这和说“你被禁止查看它”不一样。现在,如果你发现它不清楚,你可以努力使它更清楚。事实是,开发人员可能正在努力保持它的清晰,但这是一项艰巨的工作,除非你想把我们的软件和专有软件进行比较,看看哪个更清晰,否则你没有理由提出你正在提出的主张。据我所知,非自由软件通常更糟糕,原因是开发人员认为没有人会看到它,所以他们永远不会因为它有多糟糕而感到尴尬。
33. 专有保持优势
听众:你经常听到来自制造设备或[听不清]硬件的人的论点,他们需要拥有专有软件才能获得优势,因为如果他们免费提供软件,那么竞争对手就可以制造该设备[听不清]。
理查德:我不相信这一点。我认为这都是胡扯,因为他们彼此竞争,每个人都说,“我们需要使软件成为专有的,才能比其他公司有优势。”好吧,如果他们都不这样做,他们可能会失去优势吗?我的意思是,那又怎样?我们不应该相信这一点。我的意思是,我们不应该相信他们说的话,我们也不应该购买他们的产品。
34. 禁止被禁止,这如何是自由?
听众:我可能在说[听不清]
理查德:请不要这样。你想提出的问题可能是一个好问题,但请尝试以中立的方式提出,而不是以攻击的方式提出。
听众:我脑海里有些想法,所以我说出来。问题是,通过实际注册[听不清]并声明“你可以重新分发此软件,但你必须遵守这四个自由”,这难道不是也限制了我的自由吗?
理查德:不,它限制了你拥有权力。阻止A奴役B并不是剥夺A的自由,因为奴役他人不是自由。那是权力。
现在,可能有人想行使权力,而我们正在阻止他们,但这很好,这并没有剥夺任何人的自由。
我的意思是,你也可以说如果你要推翻一个独裁者,独裁者会说,“你们夺走了我向所有人发号施令的自由!” 但这不是自由,那是权力。
所以我正在区分自由(即控制自己生活)和权力(即控制他人生活)。我们必须区分这两者;如果我们忽略自由和权力之间的区别,那么我们就失去了判断一个社会是否自由的能力。你知道,如果你失去了这种区分,那么你看斯大林主义的俄罗斯,你会说,“好吧,那里也有同样的自由,只是斯大林拥有了所有自由。” 不!在斯大林主义的俄罗斯,斯大林拥有权力,而人民没有自由;自由不存在,因为只有在控制自己的生活时才是自由。控制他人的生活根本不是自由,对任何一方来说都不是。
35. 谷歌可以帮助自由软件吗?
听众:你认为,谷歌作为一家公司,在自由软件的精神下,有什么可以做得更好的吗?
理查德:我实际上不太了解谷歌在做什么,所以没有任何意见。但是如果谷歌愿意向自由软件基金会捐款,我们很乐意接受。{我收集到的,我的意思是}我在这里遇到了一些正在开发一个特定的自由程序(即Linux,内核)的人。我实际上没有问他们是否发布他们的改进。[听众:他们发布了]哦,很好,这是在做贡献。我的意思是,如果你想为其他自由软件做出贡献,那也很好,但我不知道你是否有必要这样做。当然,如果你有机会发布其他普遍有用的新的自由软件,那也会很好。
[RMS,2010:谷歌现在分发一些大型的非自由程序。有些是用Javascript编写的,服务器会在你没有注意到的情况下安装它们。]
36. Windows 上的自由软件,好还是坏
我再回答三个问题。
听众:那么,如果我为一个专有系统(如Windows)开发自由软件,那么我本质上是在支持该专有系统。我这样做是好事还是坏事?
理查德:好吧,这有好的一面和坏的一面。就你代码的使用而言,你尊重了他人的自由,所以这是好事,但它只能在Windows上运行,这是坏的。所以,真的,你不应该在Windows上开发它。你不应该使用Windows。使用Windows是不好的。{也就是说,它本身}它没有成为Windows的开发人员那么糟糕,但它仍然不好,你不应该这样做。
听众:所以你说,干脆不要做。
理查德:是的,不要使用Windows。使用GNU/Linux,并为GNU/Linux开发你的自由程序。然后它在两个方面都会很好。
听众:但这难道不能向Windows用户敞开这种意识形态吗?
理查德:有可能,但是已经有足够的自由软件可以在Windows上使用来产生这种效果。问题是,为Windows开发软件会给人们使用Windows而不是GNU/Linux创建一个实际的激励。所以,请不要这样做。
[RMS,2010:更清楚地说,像他所说的那样,使自由程序也能在Windows上运行可能是有用的;然而,只为Windows编写自由程序是一种浪费。]
37. SCO 的诉讼
听众:如果SCO在与Linux的争论中获胜,会产生什么影响?那么对...会产生什么影响?
理查德:我不知道,这取决于情况。这对GPL没有影响。但是{它可能有一些影响}一些代码可能必须从Linux中删除。这会是一个大问题还是一个小问题取决于哪些代码,所以无法说清。但我认为SCO不是真正的问题。我认为软件专利、恶意计算和具有秘密规格的硬件才是真正的问题。这才是我们必须与之作斗争的东西。
38. 斯托曼的打字问题
听众:我有一个非意识形态的问题。我个人对你与重复性劳损的斗争以及它对GNU Hurd开发的影响非常感兴趣。
理查德:没有任何影响,因为我从来没有在GNU Hurd上工作过。{我从来没有}我们雇了一个人来编写GNU Hurd。我与编写它没有任何关系。有几年我不能打太多字,然后我们雇人替我打字。然后我发现,通过使用轻触键盘,我又能打字了。
39. 开源,好还是坏,爱国者法案。
听众:你能谈谈你对开源的看法吗?
理查德:好吧,开源运动有点像自由软件运动,只是哲学基础被抛弃了。所以他们不谈论对与错、自由或不可剥夺的权利,他们只是不以道德术语来表达它。他们说他们有一种开发方法,他们说这种方法通常会产生技术上更优秀的软件。所以他们只诉诸实际的、技术性的价值。
他们说的或许是对的,如果这能说服一些人编写自由软件,那也是一个有用的贡献。但我认为,当他们不谈论自由时,他们就错过了重点,因为我们社群的弱点就在于我们没有充分谈论和思考自由。不思考自由的人不会珍惜他们的自由,也不会捍卫他们的自由,他们将会失去它。看看美国的爱国者法案。你知道,不珍惜自己自由的人将会失去它。
40. 结束
所以,谢谢大家。如果有人想购买任何 FSF 的物品,或者……
[掌声]
脚注
- 所有关于 MP3 的专利都将在 2018 年到期。