2006年02月28日

人类的近代史告诉我们,一项先进的技术能够转化成产品服务于社会,在它的后面肯定有一个商业公司默默的付出。因为后现代的社会更多需要的服务于我们的产品,各种高新技术在普通人眼里仅仅是被科学家束之高阁的梦想而已。这个规则在Linux世界里面也适用。试想 Linux是一个非常好的技术,如果不对其加以产品化(或者说商品化),提高其稳定性和易用性,那她只会变成少数高手手中的玩物,逐渐的丧失市场,丧失用户对其的信任,失去发展的源动力,那么她很快就会消失在历史的洪流中。所以我可以断言,如果Linux还要保持其快速的发展,必须调整生产关系――即 GPL公约对她的限制。如何调整好GPL公约和商业公司之间的利益,将是交给每一个Linux从业者最大的挑战。


上面那段话来自中科红旗软件公司副总裁白柯的文章《Linux的“原罪”》。关于GPL,这段时间在开源/自由软件社区也是一个热点话题,但谈论的焦点多数集中在如何对10多年没有更新的GPL 2.0版本进行修改以适合当前的发展形势,尤其是应付来自软件专利等知识产权法规的挑战等方面。从影响商业利益实现的角度看到改进GPL的需要,倒是比较新鲜,尤其当这段话来自于一个仰赖GPL产品维生的公司负责人的时候。

GPL(General Public License)是最常见的自由软件(free software)许可协议,可以称之为自由软件的基石。无数的自由软件在GPL的庇护下成长起来,许多软件开发者在发布自己的软件时也会不假思索地采用 GPL。GPL最基本的要求之一就是发布软件二进制编码的同时,必须要发布源代码,所谓自由软件的“自由”二字包含了4种含义,而获得源代码是实现这些自由的前提。

GPL尽管已经广为接受,但围绕着它还存在一些争议。争议集中在GPL的“病毒”(viral)特性,也就是传染性。这里所说的“病毒”和“电脑病毒”没有任何联系,它的意思是这样的:如果软件A以GPL发布,软件B是软件A的衍生产品,使用了软件A的部分或全部源代码,那么软件B发布时就必须遵循 GPL,否则就是违反了许可协议。这个过程,我们可以理解成GPL“感染”了软件A之后,通过源代码从软件A“传染”给了软件B。有人借此抨击GPL,说它不代表真正的自由,因为软件B是“被迫”采用GPL的。而依我看来这正是对自由的一种保障,它有效地避免了某些人用了GPL软件的成果却逃避回报自由软件社区的义务。相比之下BSD许可证更为宽松,它允许你用BSD许可的软件做几乎任何事情,不公开源代码也行,改头换面变成私有软件(proprietary software)也没人追究,这一点恐怕很对一些商人的口味。

古语云:“皮之不存,毛将焉附”。照理说如果没有遵循GPL的Linux,红旗Linux也不会存在,那么红旗为什么不爽GPL?以我的揣度,无非一个“利”字。前几年,以红旗为代表的 “国产”Linux厂商已经在开源/自由软件世界落下了一个违反GPL的坏名声,各厂商的惯常做法是只发布编译好的系统,源代码欠奉。对于这种做法有各种各样的冠冕堂皇的托词,但归根到底无非是为了保证自己的所谓技术优势,GPL暂时就放到脑后了。这种做法,无视自己占用了开源/自由软件社区无数志愿者的辛勤劳动的事实,是地地道道的只顾掠夺而没有丝毫回馈的流氓行径,更有甚者有人还恬不知耻地自称是什么“自主知识产权的国产操作系统”,视天下人如无物。

客观地说,近两年来,国内的Linux厂商在遵守GPL方面还是有一些进步。仍以红旗为例,先是没有源代码,然后是只提供旧版本的源代码,现在基本能同步提供最新版本的源代码了。我不知道它是真的有所觉悟还是迫于开源世界舆论压力的权宜之计,因此白副总裁的文章,让我想起了红旗的前科而不自觉地提高了警惕。白副总裁说得比较隐晦,但我总觉得他的逻辑是:红旗就是一个默默付出的商业公司,红旗对于推广Linux居功至伟,所以理应取得相应的商业利益。可惜,GPL阻止了红旗像微软那样以封闭源代码的方式成功,所以必须调整GPL。果真如此,倒也没什么新鲜,不过是让我们更加认清了商人逐利的本性。

不要误解,我并不是说遵循GPL就要排斥商业利益,GPL本身也并不排斥任何人用自由软件获取金钱利益,只不过GPL内在的逻辑使得人们不能像私有软件那样把盈利建立在封闭源代码的机制之上。通过GPL软件获利,需要更多的想象力和创造力,成功的例子也不是没有,但绝不是仅仅打着“国产”的旗帜、依靠政府采购就能做到的。你可以说我站着说话不腰疼,但我给红旗的建议是先别想着从开源社区得到什么,想想自己能给开源社区奉献什么,有了一种共享和回馈的良性循环,或许能发现GPL不仅是一种束缚,更多的是一种保护。

假如红旗真的非常不爽GPL,大可以基于BSD系列开发出一种类似“麒麟”那样的操作系统,好处是不必受GPL的约束。反正按照红旗最大限度模仿Windows界面的策略,那华丽界面后面到底是Linux还是BSD,红旗的用户根本无需关心。