1984年,麻省理工学院(MIT)人工智能实验室的研究员Richard Stallman启动了GNU工程。简单地讲,GNU工程的目标就是让人不必为软件付钱。Stallman发起GNU工程实质上是因为他觉得构成运行程序的知识(计算机产业称之为source code,即“源代码”)应该是自由的。如果不是自由的话,按照Stallman的推理,则会出现由极少数强力人物统治计算工业的局面。 “专有商业软件”(proprietary commercial software,或者简称“专有软件”即,proprietary software)的卖主看到的是工业界必须对商业秘密守口如瓶,而Stallman看到的则是必须被共享和发布的科学知识。GNU工程(GNU Project)和自由软件基金会(Free Software Foundation,FSF启动GNU工程的组织)的根本原则是:源代码是计算机科学进一步深入发展的基础,而且对于持续的革新而言,可以自由地得到的源代码确实是必要的。 Stallman担心的是社会将对自由软件作出何种不同的反应。科学知识经常处在公共领域,学术出版的一个作用就是把它置于公共领域。然而对于软件而言,单单让源代码进入公共领域,将会很明显地诱使商业公司为了它们自己的利益而选择代码去牟利。对于这种威胁,Stallman的解决方案利用GNU通用公共学科正,即GPL(参阅本书的附录二)。 GPL的基本意思是说,你可以随意拷贝和散发根据GPL许可证授权的软件,并且要求你不阻止其他人做同样的事情。你既不能向他人就软件本身收费,也不能通过进一步的授权来限制他们这样做。另外,GPL还要求从GPL作品衍生出来的作品也必须同样遵循GPL条款的约束。 在这本书中,当Stallman和其他人谈论自由软件时,他们真正谈论的东西是自由言论。英语在处理这里的文字区别时显得苍白无力,但是在“免费”(gratis)和“自由”(liberty)之间的确存在天壤之别,如同“言论是free(自由的)”与“啤酒是free(免费的)”之间两个“free”的区别。这条基本原则(言论中的自由部分,不是指啤酒的免费)导致许多软件公司公然抵制自由软件。他们目的毕竟是要在市场上赚钱,而不是为了给我们增加知识。对于Stallman来说,计算机工业和计算机科学的不和是可以接受的,甚至可能是他所期望的。 |