开源界对GPL优劣的争论由来已久,一些人认为GPL妨碍了开源软件的商业应用,影响了开源模式的推广。最近几年,由于基于Linux系统的二次开发和商 业应用不断增加,这种讨论调门也越来越高,甚至有人认为GPL已经过时,应该用更自由的no-permisive开源版权(如,BSD,MIT等)来加以替代。
最近在Linux Today上刊登的分析文章《Android,在争议中逃离 Linux 内核的 GPL 约束》,文章从GPL在当今开源领域所面临的争议这一现象发表了自己的见解,并分析了Android为规避GPL协议给第三方开发者的限制而采取的一些策 略。作者认为,GPL为Linux内核代码的使用设定了一些限制和条件,它将 Linux 打造为一个”封闭“的开源世界,将阻碍Linux在商业领域的应用。他进而引用目前颇为流行的一种看法:GPL具有“病毒感染”的特性,因为使用GPL授 权的开源软件进行二次开发,新的成果也必须以GPL许可发布,这样将会使GPL许可的限制传导到系统中每一个角落的软件。作者认为Google的 Android为突破这种限制,通过实现一个系统的中间层,将Linux内核与硬件驱动和上层应用隔离开的做法是非常成功的。
我对这种观点有所保留。我们不否认有关GPL的这种争议的存在,这代表了开源领域各个利益主体对话语权(主导权)的争夺。但我认为本文的最大问题是作者只是站在开源商业化的角度来看待GPL这个开源最重要的知识产权协议,而忽视了开源运动本身发展的规律。
从开源软件发展的历史来看,开源运动的产生和发展并不是以商业目的为最终目标的,即便现如今的开源已经成为了大公司的战场,但开源的基础仍然是非商业性 的。比如,RedHat的Jboss是开源软件,全球有众多的开发者帮助其开发和测试,对于红帽来说,他有商业目标在其中,而对于广大社区开发者来说,则 是一种非商业行为。GPL是什么呢?说白了,GPL可能对于商业应用并不十分友好,但它却是整个开源世界的理论和道德基础,它保证了系统与软件领域一些最 基础的组件能够坚持这种开放与非赢利性,不可能被某些公司控制。因此,仅仅以是否适合商业应用来评价GPL在开源世界中的作用是偏颇的。
另一方面,既然采用了开源,一个商业企业就要尊重开源的游戏规则,而不能一味的要求别人来适应自己,也就是所谓鱼和熊掌不可兼得。文章认为Linux内核 的发展受到了GPL的约束。这从某种角度来看是事实。但我们必须看到GPL对于内核的作用在于,它保证了内核的开放性、公利性。不管是个人还是企业使用了 它新加了东西都要回馈给社区,这才保证了内核的不断发展,后来人才用上了更新更好的内核。而如果没有GPL的保护呢?看看苹果使用BSD系统的案例吧。这 些年BSD系统的风头大不如Linux了。GPL的这种保护对于一些商业公司来说是很头疼,但既然你选择了他,说明你认为值得,否则你大可不用它。但你选 择使用了开源软件或开源模式,你在从中享受到它带来的好处的同时,也应该承担它所要求的某种责任。就像路边提供免费茶水,你喝了还嫌人家的茶叶不好,不是 这么玩的。
此外,我们也确实应该看到GPL许可协议在开源商业推广中造成困惑。在没有两全齐美的解决方法之前,Google在Android的设计中采取适当区隔 GPL下的内核(基础软件)和上层应用与硬件驱动的做法是一种合理的选择。他是在开源的独立开放与商业性之间求取平衡。是对开源商业模式的一种良性的探 索。但这并不足以说明Google在基础软件领域嫌恶GPL,而Google近年来越来越及时的将他们对Linux内核的贡献回馈给Linux社区,说明 Google愿意成为Linux内核社区合作者的意愿。
其实,讨论GPL协议在开源领域项目所占份额的多少来看GPL协议的好坏是十分无聊的,那种观点是被商业公司绑架,希望开源模式仅仅朝着自身利益最大化的 方向来发展。但他们不懂得,如果开源模式的基础不存在了,他们希望从开源模式中取利的想法也将幻免。说到底,开源模式并不是为企业的利益而存在的,开源在 其自身发展的同时更多的兼顾商业利益,这是其逐步扩大影响力而采取的必要手段,而企业也必须尊重开源模式的价值和规律。
作者:陈越 中国开源软件中心 – 社区技术与运营总监
新浪微博:@行者开源