像Slashdot这样的论坛上常常有人在攻击GNU,他们的观点在我看来完全是缺乏历史知识和不尊重历史。当GNU倡导称Linux为GNU/Linux时,这些人声称GNU企图从Linus Torvalds 身上窃取荣誉,或者宣称GNU的所作所为有反商业的可疑动机。我最后决定写下这篇文章,以避免出现更多的疑惑。
下面是这些为数不多但大喊大叫的分裂分子必须牢记的一些简单事实:
我们从GNU与Linux内核的关系开始说起:
GNU的问世比Linus Torvalds开始从事后来成为Linux内核的工作要早得多,那时GNU早已创立构造OS所必需的一长列工具,包括像编译器、系统函数库之类的开发工具,像emacs 之类的编辑器,等等。像grep、ls和find等许多系统工具和命令也是源自GNU,至少它们当前的新生版本是这样。GNU项目的目标之一是替换常用的Unix工具,这儿所提的命令就属于这些工具。所有这些工具构成的代码量远比内核本身的代码量大,而内核则体现了GNU项目对于现在大家熟知的Linux现象的重要性。分裂分子应记住的另一个事实是,主动调整内核以配合GNU系统工作的正是Linus本人。而与GNU的紧密联系对于该内核在各方面的发展来说一直是相当重要的。Alan Cox这位最有前途的内核黑客之一说过,他开始钻研Linux内核而不是其他内核的原因之一在于Linux使用GPL许可证,他认为这要比BSD风格的许可证好。
现在说说分裂分子宣称的GNU带共产主义性质并且反商业的问题。这个说法错得不能再错了。GNU几乎从一开始就通过销售作为GNU软件介质的磁带和CD-ROM以及印刷版的手册,基于自己开发的软件从事商业活动。他们还非书面地支持和鼓励以支持和/或开发自由软件为生的公司的创立,包括VA Research、Cygnus和Redhat。(最近RedHat和Cygnus宣布相互兼并。)以GNU许可证形式发行的软件改变了软件公司的商业运作方式,但并没有使得不可能做生意。从许多方面看,自由的GPL许可证形式的软件占主导地位的软件市场更体现了资本主义精神,因为它让善于做生意并且真正关心客户的公司受益,而不是让在技术的象牙塔上盘踞垄断地位的公司受益。后者与其说是现代资本主义的新生儿,到不如说是陈旧的重商主义体系的残余物。
第三个批评的根据来自GNU不懈地大力提倡使用GNU许可证。这也许是在“开放源代码” 保护伞下推出的新的许可证近来引发的冲突的根源,但是我们看到,BSD倡导者正因强烈反对GNU许可证导致自己的系统缺乏群众基础而焦头烂额。
GNU的批评者看问题的角度之一是,坚决强调GNU许可证会给自由软件引入太多的政治因素。对于他们我只能说,如果你对GNU许可证所体现的理想抱有怀疑,那就应该使用不是 Linux的另外某个OS,因为要不是这些许可证,也许不会诞生Linux OS,或者至少像她目前经历地那样得以广泛使用。不少公司正在尝试引入新类型的软件,这些软件的许可证将给当今遵循GPL的Linux系统以特殊的权力或优先考虑。有了这么多的尝试后,我可以相当自信地说,要是Linux使用像BSD许可证这样更为自由的许可证,商业公司就可能不会通过增加自己的专属特性来进行尝试,并在Unix取得竞争优势上取得成功。而我们都知道这已在市场上给Unix造成多大的危害。另一方面,要是Linux系统使用更为严格且不是copyleft的许可证,例如QPL或可怕的Sun许可证,那么对于大的软件开放者造成的限制就会更高,因为他们会感到自己不是在倡导一个给任何人以一定层次把玩平台的系统,而是在从一个发号施令者改换成另一个发号施令者,结果只能是另一个OS/2的命运。此外,这会使得Linux 的另一个成功因素即源代码共享几乎不可能。有些人看来忘记了,跟GNU许可证使得源代码可自由获取这一事实同样重要的是这些许可证所体现的copyleft原则。这与试图在Linux软件开发中作为一个大问题重新引入版权(copyright)的新出现的“开放源代码”许可证是背道而驶的。
这么说来我是在积极倡导称这个OS为GNU/Linux了?不,实际上我个人并不称她为GNU/ Linux。我简单地称她为Linux,就像称Microsoft Windows为Windows一样。因此Stallman 和别人提倡使用GNU/Linux的说法时,你不应该攻击他们,相反应该像我那样把它作为警示物看待——它提醒大家GNU在让我们进入当今这个大家所期待的境界的过程中扮演着重要的角色。
明白地说,我并不赞同Richard Stallman关于理想境界是所有软件都按照GPL原则发行的观点。我的观点是,我并不期待大家在任何细节上都赞同GNU和Stallman,确实如此,但是我的确期望乐意使用Linux的人们尊重并承认GNU在Linux社群中已扮演的而且将继续扮演的不可替代的角色。