|
自由软件实际上指的是一种自由,而不是价格。为了理解这个概念,你应该想想自由言论,而不是免费啤酒。—Richard Stallman
说起微软、比尔·盖茨、windows操作系统,恐怕是妇孺皆知。然而提起GNU、FSF、自由软件运动的领袖,恐怕并不是有很多人知道。
理查德·马修·斯托曼(Richard Matthew Stallman),自由软件运动的精神领袖、GNU计划以及自由软件基金会(Free Software Foundation)的创立者、著名黑客。
痛苦的抉择
斯托曼1953年出生于美国纽约曼哈顿地区,1971年进入哈佛大学学习,同年受聘于麻省理工学院(MIT)人工智能实验室(AI Laboratory),成为一名职业黑客。在AI实验室工作期间,斯托曼开发了多种影响深远的软件,其中最著名的就是Emacs。
然而痛苦的抉择也就是发生在1971年,当时有一个软件共享社区,他们为当时的AI实验室的计算机编写了一个分时操作系统,并不断地对其进行修改。无论是某个公司成员或另一所大学想获得它,大家都会非常乐意把源程序给他。或你看到别人使用一种你没见过且有意思的程序,你就可以坦然地向他索要程序,读它、改它或拆卸部分用于新的程序,社区中的这些人是真正意义上的黑客。
当时来说,所有软件都是共享的,私有让人嘲笑,专用受人鄙视。当然,这种共享,只是在这个特定的社区中,那时全世界没有多少人掌握计算机技术。
20世纪70年代末,软件步入了版权时代。随着现代商业软件的发展,对利润的疯狂追逐不但割裂了传统,极大地偏离了计算机的基本精神。到80年代后,计算机的商业化和软件专有化席卷整个产业,黑客们的黄金时代结束了。有才能的MIT程序员相继离开了校园投入市场的怀抱。尤其是Symbolics公司的成立,挖走了社区中许多黑客,大伤MIT人工智能实验室元气。斯托曼感到:一个时代结束了。
斯托曼说:“那时,AI实验室已没法再支持下去,我是最后一个还想让它活起来的呆瓜。随着社区的终结,我面临着一个道德上的抉择。最简单的就是投身于专有软件世界之中,签署不公开协议,并承诺不帮助同行、同事。而且自己也很可能编写软件,并在不公开协议的前提下发布软件,去同流合污,迫使更多的人背叛自己的原则。显然,走这条路,可以挣大钱。但我知道,等到自己职业生涯终结时,我再回首这些年为分离人类而砌造的‘墙壁’。我会感受到,我将自己的一生都用在使这个世界变得更加糟糕。”
而他的另一个选择就是从此离开计算机领域。“这样我的技能不会被滥用,但也将被浪费,我不会因为分化和限制计算机用户而感到有罪,但这些事情会继续发生……因此,我开始寻找一条出路,使程序员可以做真正的好事。我问自己,我能写什么软件,我能否让社区重焕生机。”
GNU
革命开始时,斯托曼在思考,首先需要的是一个操作系统。没有操作系统,计算机都无法运行。有了自由操作系统,他们就能再次组建一个相互合作的黑客社区。
作为一名系统开发者,无疑,斯托曼是可以胜任这项高尚的工作的。“虽然我没有认为自己一定能成功,但我意识到自己就是命定做这项工作的。”斯托曼选择做一个与Unix兼容的操作系统。这样容易被移植,而且Unix用户可以方便地转移过来。这个系统的名字就叫GNU,这个名字的确定就是遵循黑客传统,是一个递归的缩略词:“GNU IS NOT UNIX。”
但一个操作系统并不仅仅意味着一个内核(管理磁盘,内存分配等),而且仅能运行其他程序也是不够的。一个完整的操作系统,还需要有指令处理器、汇编程序、编译器、解释程序、调试器、文本编辑器、邮件软件等等,这样才能形成一个完整的系统。斯托曼决定尽可能采用已有的自由软件,比如一开始他将Tex作为主要的文本格式标识符,几年后他又用X Windows系统作为GNU的窗口系统。
1984年1月,斯托曼已启动了GNU计划,他担心MIT会要求产品的所有权,会给产品强加入他们的销售条件,最终又会成为专有软件,因而他辞去了MIT工作。辞职后,他为买不起电脑而发愁时,发现自己原来在人工智能实验室的办公室,还没有分给其他人用时,他就每天晚上溜进去工作。
GNU工程启动后,斯托曼听说有一个自由大学编译器套件(VUCK)。他去询问能否用入GNU。答复是嘲弄式的,说对大学是自由的,但对软件本身不行。于是,决定他为GNU编写的第一个软件就是一个多语言、多平台的编译器。他想利用Pastel编译器的源代码,但最终放弃。从头编写了新的编译器,名为GCC(the GNU Compiler Collection)。
1984年9月,斯托曼开始开发字处理器GNU Emacs,1985年初,它开始可以工作。这使它可以在Unix系统上进行文本编辑。此时,许多人想使用Emacs,因此一个现实的问题是:如何传播它?
当然,他将其放到了MIT计算机的匿名服务器上。但那时互联网还未普及,人们很难通过FTP获得拷贝,而且失业的斯托曼也需要收入。于是,他宣布任何人都可以用150美元的价格获得全部程序。当然,所支付的费用是远低于当时的专有软件的价格的,并且用户可以得到软件的源代码。这样,自由软件的分销商业模式就此诞生。如今,整个基于Linux的GNU系统都是如此。
“Copyleft”原则及FSF
由于GNU是公开源代码的,为了防止不肖厂商利用自由软件,使其专有化。斯托曼别出心裁,创造了Copyleft的授权办法,让所有的GNU程序遵循一种“Copyleft”原则,即可以拷贝,可以修改,可以出售,只是有一条:源代码所有的改进和修改必须向每个用户公开,所有用户都可以获得改动后的源码。Copyleft保证了自由软件传播的延续性。
由于Emacs的成功,斯托曼设立了一个基金会:自由软件基金会(Free Software Foundation,FSF)。
GNU工程激励了许许多多年轻的黑客,他们编写了大量自由软件。最后,李纳斯·托瓦兹写了一个类似Unix操作系统的内核,称为Linux,把所有GNU软件和硬件连接了起来,但Linux并不能代表整个操作系统,Linux只是个内核,整个系统还包含数以百计的软件工具和实用程序,大多是由GNU黑客们完成。他认为,整个操作系统称为GNU/Linux比较合适。Linux内核为GNU工程画上了一个完满的句号。
资源免费服务收费
斯托曼认为,在自由软件时代,软件公司可以靠服务和训练。斯托曼希望,有一天软件业者不是靠目前的 “Copyright”版权法,迫使客户花费巨额资金购买软件,而是依仗提供服务(如技术支援、训练)来获取应得的报酬。简言之,未来软件业的基本准则就是“资源免费,服务收费”。
Apache Web服务器和GNU/Linux操作系统的流行,使新一代黑客们备受鼓舞,纷纷投入商业领域,越来越多的人加盟自由软件,他们是一类全新的黑客:一方面呼应自由软件的精神,一方面又积极拥抱商业世界。
于是,与斯托曼持不同政见者将“自由软件”这个名字改成了“开源软件”,看起来好象两者兼容,但斯托曼认为,两者最大的区别就是自由软件将自由精神放在首位。但是对商人来说,自由(free)与免费(free)是同一个词,与斯托曼布道的“自由精神”不同,他们更愿意谈论实际问题,也就是能不能赚到利润的问题。
现在的斯托曼依旧不修边幅,无所顾忌。但与当年坚定的执着相比,他的精神状态呈现了一种焦虑和紊乱,而这一切正是他创造的自由软件的成功施加给他的。有一点可以肯定,斯托曼必将越来越被自由软件成功的浪潮所淹没。因为,他引燃的这场革命已经完全超越了他的驾驭范围。这也是许多思想家、革命家、理想主义者的共同命运。
|