【漫谈软件】自由软件现在更加重要
自由软件现在更加重要https://www.gnu.org/graphics/fsf-logo-notext-small.png“自由软件基金会(FSF)是一个非盈利组织。我们的使命是在全球范围内促进计算机用户的自由。我们捍卫所有软件用户的权利。”理查德·斯托曼 著从1983年起,自由软件运动就一直为计算机用户的自由而活动—用户应该控制软件,而不是软件控制用户。当一个程序尊重用户的自由和社区的时候,我们称之为“自由软件。”我们有时也称之为 “libre(自由)软件”,以强调我们说的是自由,而非价格。有些专有(非自由)程序,如 Photoshop,很昂贵;另一些,如 Uber 的应用,是免费的——但这些只是细枝末节。这两者都赋予程序的开发者凌驾于其用户之上的权力,而任何人都不应该拥有这样的权力。请观看这个 14 分钟的视频展示 来了解这些思想。https://www.fsf.org/blogs/rms/20140407-geneva-tedx-talk-free-software-free-society/这两种非自由软件还有一些共同点:它们都是恶意软件。就是说,它们都带有损害用户的功能。当今的专有软件通常都是恶意软件,因为开发者拥有的权力被滥用了。这里列举了大约500种不同的恶意功能(截至2021年1月),但是可以肯定这些只是冰山一角。使用自由软件,用户控制程序,无论是单个用户还是集体用户。所以他们控制着计算机做什么(假设计算机是听话的并且按照用户的程序来执行)。使用专有软件,软件控制用户,而其他实体(开发者或“所有者”)控制程序。所以专有软件赋予开发者凌驾于其用户之上的权力。这本身就不公平;甚而,这个权力会诱使其开发者用其他方法损害用户。即使专有软件不是完全的恶意,其开发者也有动机使之容易成瘾、有控制权和受操控。你会说,就像该文章的作者一样,开发者有道义不那么做,但是一般他们都会被利益驱使。如果你不想看到这些,那么请确保程序被其用户控制。自由就意味着能够控制自己的生活。如果你用一款软件去实现你生活中的活动,你的自由就依赖于对这款软件的控制权。你有权拥有你所使用的软件的控制权,当你用它们来做重要事情是则更是如此。用户对程序的控制需要四个基本自由。(0) 按照自己意愿运行程序的自由,不管是什么目的。(1) 学习程序 “源代码”,修改源代码以使软件满足自己需要的自由。程序是由程序员用编程语言写的,编程语言——就像英语结合代数——程序的这种形式就是源代码。所有懂编程的人,有了源代码形式的程序,就能读源代码,了解它的功能,还能进行修改。如果你得到的程序只是可执行形式,即一系列的数字,则只有计算机能够有效运行,让人去读懂是极度困难的,了解并修改这种形式的程序基本是不可能的。(2) 依自己的意愿制作并发布拷贝的自由。(此项不是强制的;它只是你的选择。一个程序是自由的,并不意味着别人有义务为你提供一个拷贝,或者你有义务给别人一个拷贝。给用户发布程序却不给他们自由是对他们的侵害;但是选择不发布程序—只是自己用—则不侵害任何人。)只要自己愿意,有制做和发布自己修改版拷贝的自由。前两个自由意味着每个用户可以单独控制程序。后两个自由,使所有的用户组都可以 合作控制程序。有了这四个自由,用户可以完全控制程序。如果有一个自由缺失或不正确,则这个程序是专有程序(非自由),是不公正的。实际生活中有其他一些东西,包括烹饪用的菜谱、教育用的课本、参考用的字典和百科全书、显示文本用的字体、硬件制作中用的电路图、3D 打印用的实用(不只是装饰的)物件的模具等。因为这些不是软件,所以自由软件运动严格来说并不包括它们;但道理同样适用,并可得出同样的结论:这些东西应该有这四个自由。自由软件允许你修改它,使它能做你想让它做的事(或者不让它做你不喜欢的事)。如果你已习惯了密封盒式的专有软件,修改软件听起来可能有些不可思议,但在自由世界里,这是很常见的事,而且是学习编程的好方法。现在,甚至改装汽车这项传统的美国娱乐活动也因为汽车上有非自由软件而受到阻碍。专有的不公正性如果用户不能控制程序,则程序控制用户。使用专有软件,总有一个主体,程序的开发者或“所有者”,控制着程序—并通过它行使着对用户的权力。非自由程序是一种枷锁,是不公正力量的工具。在一些骇人的情况中(尽管这种骇人已经很常见了),专有软件被用来监视用户、限制用户、审查用户、侵害用户。例如,苹果的i设备做所有这些事情,使用ARM芯片的Windows移动设备也在做。Windows、移动电话固件和Google Chrome for Windows都包含了整体后门,该后门使得某些公司可以不经授权远程修改程序。Amazon的Kindle有可以删除书籍的后门。在 “物联网” 中使用非自由软件会把它变成 “市场营销网” 和 “监听网”。为了结束非自由软件带来的不公正,自由软件运动开发自由软件使用户得到自由。我们从1984年开始开发自由操作系统 GNU。今天,已经有数百万台计算机运行着 GNU,以GNU/Linux 组合为主。给用户发布一个非自由的程序是在侵害这些用户;但是,选择不发布程序不侵害任何人。如果你编写一个程序,并自己使用,不会对其他人造成侵害。(但你确实失去了做善事的机会,不过这并没什么过错。)所以,当我们说所有的软件都应该是自由的,我们是说发布拷贝时应带有这四个自由,但我们并不是说有人有义务为你提供一个拷贝。非自由软件和SaaSS非自由软件是公司控制用户计算的第一种方式。现在,又有了一种方式,叫做软件即服务或者叫SaaSS。它的意思是让其他人的服务器做你的计算任务。SaaSS 并不是说运行在服务器上的软件是非自由的(尽管通常是这样)。而是说,使用 SaaSS 会造成和非自由软件一样的不公正:它们只是通向坏处的两种道路。拿 SaaSS 翻译服务举个例子:用户把文本发给服务器,服务器翻译这个文本(比如,英语翻译成西班牙语),并把翻译结果发回给用户。这样翻译工作就是在服务器运营者的控制下,而不是用户的控制下。如果你使用SaaSS,服务器运营者就控制你的计算。这需要把相关数据委托给服务器运营者,而他们会被迫把数据交给政府—服务器终究为谁服务?主要和次要的不公正当你使用专有软件或SaaSS时,首先,你侵害了你自己,因为这给了别人不公正的权力来控制你。为了你自己的利益,你应该逃避。如果你承诺不共享,你也侵害了别人。遵守这样的承诺是邪恶的,不遵守则邪恶得轻一些;但要真正地正确,就根本不要做这样的承诺。有时候,使用非自由软件会给其他人直接的压力,迫使他们也使用非自由软件。Skype就是个清晰的例子:当一个人使用非自由的Skype客户端软件时,就需要另一个人也用这个软件—这样,双方都丧失了自由。(Google Hangouts也有同样的问题。)甚至建议使用这样的软件都是错误的。我们应该直接拒绝使用它们,即使是在别人的电脑上。使用非自由软件和 SaaSS 的另一个坏处是,这样会给犯罪者好处,鼓励了这些软件或 “服务” 的进一步开发,反过来导致更多人拜倒在这个公司的脚下。以上所有坏处如果发生在公共机构或学校的话,坏处还会加倍。自由软件和政府公共机构的存在是为了人民,不是为了它们自己。它们做计算时,是在为人民做计算。它们有责任确保对计算的全部控制权,这样才能保证计算对于人民是正确的。(这也是政府计算权的一部分。)它们决不能允许政府计算的控制权落到私人手里。为了确保对人民计算的控制权,公共机构一定不能使用专有软件(这样的软件是在其他人而非政府的控制之下)。它们也一定不能把它委托给其他人而不是政府所开发和运行的服务,因为那样就是SaaSS了。在一种关键情况下——违背开发者意愿,专有软件根本没有安全性。开发者可能帮助别人发出攻击。 在修复之前,微软把Windows的漏洞交给NSA(美国政府数字监视机构)。我们不知道苹果是否也这样做,但是,它也受到了与微软一样的来自政府的压力。如果任何其他国家政府使用这样的软件,它就危害了国家安全。你希望NSA侵入你国政府计算机吗?请参考我们为政府推广自由软件的建议政策。自由软件和教育学校(这包括所有的教育活动)通过他们教授的东西,影响着社会的未来。他们应该只教授自由软件,以便使他们的影响带来好处。教授专有软件就是培育依赖性,而这与教育的使命背道而驰。通过训练使用自由软件,学校能使社会的未来走向自由,并帮助有天赋的程序员掌握这门手艺。它们还能教会学生合作和帮助他人的习惯。每节课都应该有这样一个规定:“同学们,这个课堂是我们分享知识的地方。如果带软件到课堂来,你不能只是自己用。而是应该与其他同学分享拷贝——包括程序的源代码,以便有人想要学习这个软件。所以,带专有软件到课堂是不允许的,除非是要对它进行逆向工程。”专有软件的开发者惩罚愿意分享软件的好学生,阻挠好学的学生去修改它。这是坏的教育。关于在学校使用自由软件的更多讨论,请参见 自由软件在学校中的应用。自由软件:不只是“优势”我经常被问到自由软件的“优势”是什么。但是,谈到自由时,“优势”这个词就太弱了。生活没有自由就是压迫,这点在计算和生活中所有其他活动都适用。我们必须拒绝把我们要做的计算的控制权交给程序开发者或者计算服务商。出于私密的原因,这是正确的做法;但不仅仅只是私密的原因。自由包括与他人合作的自由。剥夺人们的这个自由就是孤立他们,也是谋划压迫他们的开始。在自由软件社区中,我们非常注重合作的重要性,因为我们的工作是由有组织的合作组成的。如果你的朋友来造访,看到你用的一个程序,他可能会要一个拷贝。一个阻止你发布或者说你 “不应该” 这么做的程序,是反社会的。在计算中,合作包括给其他用户发布一个程序的相同拷贝,也包括给他们发布你修改后的版本。自由软件鼓励这种形式的合作,而专有软件禁止这样做。它们禁止发布拷贝,并通过不给用户提供源代码,使得用户无法修改。SaaSS有着相同的效果:如果你的计算是通过网络在其他人的服务器上、用其他人的软件完成的,你无法看到或接触到这些软件,所以你不能发布或者修改它。结论我们应该有自己计算的控制权。我们如何才能赢得我们的控制权?,
[*]我们通过拒绝拥有和使用非自由软件,通过拒绝 SaaSS。
[*]通过 开发自由软件(作为程序员)。
[*]通过拒绝开发和推广非自由软件以及 SaaSS。
[*]通过 向大家传播这样的理念。
[*]通过在被邀请使用非自由软件时 说不并阐述原因。
我们和成千上万的用户从1984年就这样做了,这样我们才有了现在的自由的、所有人—程序员或非程序员—都可以使用的GNU/Linux操作系统。请加入我们的事业,做一个程序员或者一个积极分子。让我们使所有的计算机用户都自由。
推荐你通过这些方法帮助自由软件运动 (https://www.gnu.org/help/help.html)
本文的重大修改版发表于 连线(Wired)。
页:
[1]