您的位置: 网界网 > 周报全文 > 正文

[周报全文]澄清对开放源码的一些误解

2003年10月13日 00:00:00 | 作者:佚名 | 来源:$page.getBroMedia() | 查看本文手机版

摘要:澄清对开放源码的一些误解

标签
    澄清对开放源码的一些误解


    凡涉及GPL许可协议的代码也必须是GPL代码,这是对开放源码的一种误解。


    由于SCO对IBM以及Linux社区所发起的法律攻击,确实已经在相当一部分企业中间产生了对使用Linux的恐慌情绪,并因此而产生了对开放源码的一些误解。我个人认为,恐慌大可不必,而误解则更不应该。

    本报记者最近采访了一家原先研制Linux安全产品的厂商,该厂商认为基于Linux开发的产品需要自动遵循GPL许可协议,也必须向Linux社区公开源代码,因而不符合安全产品的本质特性,所以决定转而采用FreeBSD。

    这种认为凡涉及GPL许可协议的代码也必须是GPL代码的观点正是一种完全的误解。实际上Linux操作系统本身就是一个最好的例证。开放源码社区在谈到Linux操作系统时实际上指的是Linux内核(Kernel),它就是一种GPL代码。而今天,已经有很多的商业应用软件(比如Oracle、IBM、Sun等公司都有)可以在Linux上运行但它们却并非GPL代码,也无需向Linux社区开放源代码。

    一般说来,当你开发的程序需要对Linux内核的共享库和运行库进行调用时,GPL许可协议才会发挥作用。但即使在你这样做时,也还有LGPL许可协议可以利用。LGPL即为较宽松的GPL,它的别名也叫做“有关库的GPL”,针对的正是开发中出现的上述问题。如果你只是调用了内核的库,那你所开发的代码依然可以保持“私密性”;只有当你对这些库做了修改和扩充时,GPL才会要求你公开源代码。

    在性能已经得到很大提升的Linux内核2.0中,还有很多所谓的“内核模块”,比如各种驱动程序、新增功能和扩展功能等。这些模块均采用了与内核“分离”的方式,只有当系统内核需要用到它们时才会将其加载到内核中。一旦被加载,它们也就成为内核的一部分。即使像这样一些与Linux内核关系非常紧密的模块,也并不需要全是GPL代码,很多模块依然可以保持“私密”。

    我们不知道上面提到的那家厂商所开发的安全产品到底是修改了Linux内核的库,还是其代码比上述“内核模块”与Linux内核的关系还要紧密,所以我们无从评价其行为。但我们认为(+微信关注网络世界),绝大多数基于Linux而开发的各类应用或者衍生产品实际上无需必然地成为GPL代码,这却是基本上可以肯定的。

    谈到GPL,我们就不能不谈到“Copyleft”,正是因为这个“Copyleft”,才有了开发厂商对公开源代码的担忧。

    Copyleft与Copyright(版权)对文,因此也有相当一部分人将其译成“无版权”。这又是一种误解,就像我们将Free Software(自由软件)理解成免费软件一样的错误。Copyleft也是一种权利要求,也就是我们上面提到的对GPL代码所做的修改必须遵循GPL许可协议向原作者返回开放的要求。这与Copyright一旦出让便不可能返回有着方向上的不同。

    据此,我们可以考虑将Copyleft译成可返回版权,而将Copyright译成不可返回版权。如果硬要在字面上下功夫,也可考虑将Copyleft译成“左向版权”,而将Copyright译成“右向版权”。 

[责任编辑:程永来 cheng_yonglai@cnw.com.cn]