从1985年自由软件基金会的创立到1991年Linux在网上的公开发布,以Linux为代表的开放源代码软件现已成为挑战软件巨头微软公司的一支重要力量。在Linux蓬勃发展的后面,有一个庞大的黑客群体在支撑。(注:“黑客”一词来源于英语动词hack,意为“劈、砍”,被进一步引申为“干了一件非常漂亮的工作”。另一种说法是,hack在20世纪早期麻省理工学院的校园俚语中有“恶作剧”之意,带有反既有体制的色彩。早期的黑客主要活动于20世纪60~70年代的麻省理工学院和斯坦福大学,其文化背景是当时风起云涌的嬉皮士运动所提倡的自治主义与民主观念,这批人奠定了现代个人计算机革命的基石。像微软的盖茨和艾伦,苹果的乔布斯都曾是些有名的黑客。只不过在后来,这个名词被错用来形容那些专门入侵私有系统的电脑大盗们。这些人其实是cracker(骇客),他们不像黑客们创造新东西,而是破坏东西。) 理查德·斯托曼(Richard Stallman)、埃里克·雷蒙德(Eric Raymond)和李纳斯·托沃兹(Linus Torvalds)作为其中的三个领袖人物,在推进开源软件发展的历史过程中秉持不同的主张,起着不同的作用。 斯托曼:软件自由的启蒙主义 斯托曼是推动开源软件发展的第一代黑客。青年时期(20世纪70年代),他就在哈佛大学物理系和麻省理工学院人工智能实验室学习和工作。在他工作的实验室里,软件被自由地分享,提供源代码给那些需要它的人,程序员可以根据自己的需要去修改或者纠正程序的错误,斯托曼喜欢这种共享和开放的文化。但这段美好的时光在20世纪80年代初结束了。1981年,从实验室分离出去的一个名为" Symbolic" 的公司几乎雇走了人工智能实验室所有的黑客,实验室共享、自由的黑客文化遭受了很大的伤害。 斯托曼面临着个人选择:第一种出路是继续留在人工智能实验室做一名系统程序员,但这意味着自己必须在专有软件的框架内工作,签署不公开协议。尽管能由此而发财,但却与斯托曼的人生原则根本抵触。斯托曼认为专有软件社会系统的观念是反社会、不道德和完全错误的。另一种出路是直截了当地离开计算机领域,尽管技能不会被专有软件公司滥用,但自己的计算机才能却会被浪费。斯托曼试图在这两种选择之外去寻求解决之道。最后,斯托曼做出了一个天才程序员才敢下的决定,他要写一个自由的操作系统,因为操作系统是电脑最基本的软件。这个操作系统名为GNU。(注:GNU原意为“角马”,是一种非洲的动物。在这GNU是GNU' s Not Unix中每个单词首字母大写的递归,意为GNU与Unix操作系统兼容,但却不是专有的Unix。递归是数学上的基本概念之一,用递归来为工程命名是黑客文化的传统之一。) 1985年,斯托曼发起成立了自由软件基金会(Free Software Foundation,简称FSF),发动了一场名为“自由软件”(free software)的运动。对于自由软件,斯托曼一直强调" free software" 中的" free" 指的是“自由”,而不是“免费”,为了更好地理解这一概念,斯托曼建议大家多想想“自由言论”(free speech),而不是“免费啤酒”(free beer)。 在《为何软件不应有主》一文中,斯托曼对软件的产权制度进行了深入的剖析。他认为版权体制的发展起源于印刷术——一种大规模的复制生产技术。因为限制对象主要针对具有大批量生产能力的印刷出版者,版权制度便显得非常有用。但它并不剥夺读者的自由,如果你是一个普通的读者,那么你可以靠手抄合法得到一本书,不会因此而被起诉。但信息技术的发展却使得这一体制面临着诸多问题。数字技术使得信息的复制和修改来得更为容易,一旦信息数字化之后,人们就很容易对它传播。通过信息技术,读者也可成为印刷厂的老板,进行大批量的复制,这击中了版权制度的要害。斯托曼还驳斥了人们一个根深蒂固的错觉,即绝大多数人认为版权应该是作者们的一种自然权利。对此,斯托曼认为一个软件程序与一碗意大利面条不同,面条如果被一个人吃掉了,那么别的人就没法再吃,它不可能与人共享;“但无论你是运行或修改我写的程序,对你自己的影响是直接的,对我仅是间接的。无论你给朋友一份软件的复制品,那么对你和你的朋友影响是直接的,而对我是间接的。我无权禁止你去这样做,任何人也没有这样的权利。”人们对版权的这种错觉之所以产生,是因为软件商业界向社会潜移默化地灌输。斯托曼援引美国宪法就版权条款制定的历史指出,版权是作者的基本权利的观点在一提出后就被立法者所否认。之所以设立版权制度,并非是为了对作者给予奖赏,而是出于促进市场进步的目的。某种程度上,版权制度确实给了作者和出版商以一定的物质回报,但它真正的意义却在于为规范市场提供了一种有效的途径。 斯托曼在辩述完软件不应有主之后,又写作了《为什么软件应该自由》,用成本—利润的分析方法,从社会整体的角度来考察软件有主的有害性,从而得出软件应该自由的结论——“程序员们有责任鼓励其他人分享、再分发、研究并改善我们写的软件:也就是说,写自由软件。” 在斯托曼那里,他从道德层面出发反对现行的软件保护(通过运用版权或者其他法律规则,赋予作者对其他人的排除权)。斯托曼把建立在版权激励基础之上软件作者的排除权看作是天性不和,并且是反社会的。他把自由软件基金会的工作看作是抛弃这种模式的第一步。传统的软件保护模式是版权专有(copyright)+专有软件许可证(proprietary software license),而斯托曼则把这种模式变为了版权开放(copyleft)+通用公共许可证(General Public License),从而保持了软件自由的属性。对于这一软件保护的新型模式,斯托曼是这样认为的: