自由软件的精神
自由这个词,在英文里同时具有“免费”的含义,但在理查德·斯托曼看来,自由软件运动的核心理念在于,用户应该控制计算机,控制他们使用的程序,所以自由软件讨论的是自由问题,无关乎价格。“是‘自由’不是‘免费’”,为强调这个区别,他嘴里居然蹦出了两个中文单词。
理查德·斯托曼把软件划分为两种,一种是用户控制程序的软件,另一种是程序控制用户的软件,自由软件就属于第一种。技术的进步永远应该带给人更多的自由、带来更多的可能性,而不是让人类成为技术的奴隶,或者被其他人通过技术而奴役。在理查德·斯托曼看来,自由软件是公平的,也是合乎道德的。用非常强的道德视角去看问题,这是理查德·斯托曼很独特的一点。
理查德·斯托曼接着对自由软件做了进一步的剖析。
自由0:让用户可以随意运行一个程序,不管出于任何目的。
自由1:用户可以自由研究源代码,研究程序规划,让程序按照用户的意愿进行运算。
但因为大多数用户都不是程序员,不会懂得怎么改源代码,因此仅仅有个体控制是不够的,还需要有集体控制。所谓集体控制是指,任何一组用户都能通力合作,一起控制程序,让程序能按照他们想要的方式运算。而要做到这一点,又需要另外两种基本的自由。
自由2:当你有意愿时,可以重新散布精确副本。
自由3:当你有意愿时,能够散布你做的修订版的副本。
有了这四种自由,用户就能够对程序进行个体控制和集体控制。在自由软件中,每个人都可以对这个软件进行更改,并从中受益,即便他开始只是出于个人目的而做了这种更改。所以自由软件是唯一合乎道德的软件传播方式。
所有软件都应该是自由的,这样所有的用户也才是自由的,因为谁都没有凌驾于别人之上的权利。理查德·斯托曼进一步补充,商业软件如果能符合这些特质,同样也是自由软件,虽然看起来现在大多数商业程序都是非自由的。不管微软还是苹果,甚至Facebook,都在或多或少侵犯我们的自由和权利。
而与之对照,开源软件或免费软件如果违背了这个精神,也是非自由的。在理查德·斯托曼看来,开源软件关注的价值只是代码质量,而自由软件运动关注的价值是自由和社区,所以从哲学层面来讲,开源软件压根就没抓住重点。
如果用户不能完全享有如上陈述的这四种自由,就不能完全控制程序。这样一来,程序就会控制用户,或者程序所有者控制用户,软件便因而成为非自由或者专有软件。而理查德·斯托曼认为,我们的目标就是要告别专有软件,否则非自由软件或者专有软件就会把用户踩在脚下,它们会监视用户或者有意限制用户权利。
我不禁问理查德·斯托曼,自由软件究竟有什么好处。他似乎很不屑回答这个问题。他认为,我们讨论的是社会中的自由,这对拥有美好生活有着极其重要的价值,要问自由的好处是什么,这样的问题本身就贬低了自由的重要性。
理查德·斯托曼的这个回答听上去有些蛮横,但其实非常有道理。自由是人的根本,但自由到底有什么好处其实很难定义。当打开鸟笼的那一刻,笼子里的鸟儿尚且会展翅高飞、追寻自由,而不会留恋鸟笼里吃喝无忧的生活,更何况人乎!
GNU:理想的坚守
1983年,理查德·斯托曼宣布要研制一个完全自由的软件操作系统GNU。
在计算机上运行的软件都需要基于操作系统工作,就如今天我们需要用Windows为基础去运行程序一样。既然要推动自由软件运动,这些自由软件就应该在一个自由的操作系统上运行。这就是GNU研发的初衷,也标示了理查德·斯托曼开展自由软件运动的雄心壮志。
理查德·斯托曼为GNU的诞生和发展煞费苦心,甚至怎么去念这个操作系统的名称,都做了别出心裁的设计。英文当中,GNU的本义是“角马”,发音与New相近,而理查德·斯托曼宣称,GNU应当被念为Guh-NOO,其发音与Grew相近。
1985年,理查德·斯托曼成了“GNU自由软件基金”,也发布了“GNU宣言”。该宣言定义了GNU项目的目标,增加了对自由软件需求的探讨和对自由的辩护,呼吁大众参与和支持自由软件。之后的几年里,理查德·斯托曼不断完善了这个宣言。
如前所述,理查德·斯托曼最让人钦佩的地方在于,他言出必践。他推动GNU项目的时期,正是互联网兴起和泡沫膨胀的时期,许多人在互联网第一轮大潮涌起时大发横财,当然随之也有不少摔了大跟头。但理查德·斯托曼坚守住了自己的理想,甘守清贫,维护自由软件。他的得意之作——GNU通用公共许可协议(GNUGPL)后来成为全球最广为采用的自由软件许可证,并为“反版权”观念开拓出崭新的道路。
理查德·斯托曼回溯了“反版权”的由来。他亲眼见过有人把自由程序修改为非自由程序,因此认为必须要阻止这样的事情发生,否则人们虽然也使用了自由的代码,却根本就享受不到本可获得的自由。所以理查德·斯托曼认为,有必要着手设计一个软件许可,给予用户自由,防止有人从中作梗,把本应是自由的程序变为专有的程序。于是,针对“版权”,理查德·斯托曼提出了“反版权”的概念。
反版权主要依据GNU通用公共许可协议展开,该许可指出,程序是有版权的,但是在此赋予使用自由软件者四项自由的权利。不过还规定,不论是依据自由2重新分配该程序的原版复制品,还是根据自由3重新分配原程序的修改版,使用者都必须依据这一许可。如果使用者已经修改或者编写了整个程序,根据许可规定,他必须提供源代码并且满足其他一些要求,这一切都是为了确保每一个人都能获得相同的自由。
理查德·斯托曼并非反对专利,只是他认为要对这些专利进行区别对待——他觉得专利可以存在,而且可以覆盖硬件,但不应该涉足软件。
虽然反对在软件设计领域申请和评选专利,但不意味着理查德·斯托曼不在意名誉。20世纪90年代初期,林纳斯·托瓦兹(Linus Torvalds)宣布自由开放Linux内核,后来人们将Linux和基本成型的GNU系统结合在一起,获得了一个基本全新的,但使用Linux内核的完整系统。然而,人们过于关注Linux这个最新的部件,以致用Linux系统来指代整个系统。
GNU是一个开放的系统,在上面可以写编辑器,可以写图形处理软件,所以林纳斯·托瓦兹写出内核也是情理之中的事情,人们也因此惯称使用Linux系统,但在理查德·斯托曼看来,实际上他们使用的是有Linux内核的GNU系统。如果有人认为自己是Linux用户,那实际上他也是GNU用户,或者说是GNU+Linux用户。
理想背后的动力
这就是理查德·斯托曼,他用了30多年去坚守自由软件的理想,对互联网发展产生了深远的影响,却又能甘守清贫。因此,他的生命节奏也没有因互联网的潮起潮落而发生波动。是的,他从来就不是个随波逐流的人,坚守自己的理想,言行一致得甚至让人感到有几分不合时宜。
为了自由,他甚至不用信用卡、不用手机,要打电话时常常需要向街上的人借手机。在他看来,用手机或者信用卡都容易被人监视和跟踪。他反对在软件领域滥用专利法,虽然他很懊恼人们惯称GNU+Linux为Linux而忘却了GNU。
理查德·斯托曼极其痛恨别人使用不公平的权利来管理他,也不屑于随波逐流。在乔布斯去世时,业内满是赞誉之词,唯有理查德·斯托曼认为,乔布斯是一个把监狱设计得很酷的电脑先驱,让傻瓜们心甘情愿放弃自由而趋之若鹜,虽然没有任何人该死,但他的离去不见得是坏事。
理查德·斯托曼想要自由,也想要别人获得自由,除此之外,他想不到自己还能为这个世界做什么更好的事情。虽然在他的生命里,难以避免地遭遇过很多次失败,包括清贫、没有家庭,但他从来不认为自己做出过真正的牺牲。因为一直以来,他认为自己所做过的事情就是自己能做的最好的事情!
究竟是人控制技术还是技术控制人
跟理查德·斯托曼交流,你多少会感到他有些偏执,有些不合时宜,但他对自由软件理想的坚守着实让人感动。这让我不得不想起柏拉图在《理想国》里说起的一个故事。
一群人被绑在山洞里,背对洞口,每天只能看着洞口走过的万物的影子,时间长了,这些人就以为这些影子就是万物的本真。有一天,有一个人突然挣脱了绳子,跑到了洞口,他蓦然发现,原来真实的世界不是他们每天看到的那样,他发现了真理。
故事的结局却并不好。这个发现真理的人最后被洞里的人当作神经错乱打死了。
在某种意义上,理查德·斯托曼就好像柏拉图隐喻里那个发现真理的人,与其说他是一个偏执狂或者不合时宜者,倒不妨审视一下我们是否忽视了他的智慧。其实,很少有人从哲学角度、从伦理角度去审视技术,他其实触摸到了一个很根本的问题——究竟是人控制技术,还是技术控制人。
曾经名噪一时的好莱坞大片《黑客帝国》也反思过这个问题。《黑客帝国》可以被视作柏拉图山洞隐喻的科技翻版。在片中,人类被机器奴役,自身却浑然不知,还以为自己在这个世界里生活得很幸福,这种困境就和苹果给我们造出了很酷的监狱一样。理查德·斯托曼认同《黑客帝国》的反思,但认为影片中有些内容很愚蠢。虽然他明白,为了让电影看起来激动人心,一些内容不能不保留,但他坚持认为,对自己都不尊重的电影会让他失去敬意。
事实上,和理查德·斯托曼交流,你会发现他逻辑清晰严谨,精神感染力极强,也正是如此,他才有了包括林纳斯·托瓦兹在内的许多追随者,共同推进自由软件的发展。理查德·斯托曼把这些追随者分成了八类,其中当然不乏真正有理想、真正从自由软件获得好处,并真心拥护自由软件的人,甚至有仇视微软这样大公司的人,但在他看来,其中也不乏好名逐利者。
世人怎么看理查德·斯托曼,这其实不重要。重要的是,他在一个短视盛行,追求技术、商业带来立竿见影好处的时代,提醒我们真正关注那些泛滥利益背后的更为基础的根本追求!