开源协议总结

开源软件更强调软件的分享和代码的开放,允许用户对源代码的修改及软件的重新发布,前提是要遵循相应的开源许可证。开源软件正是通过这些许可证保护其知识产权,一般情况下,可以从五个方面来讨论软件的知识产权[2]:版权(著作权)、专利权、商标权、商业秘密和反不正当竞争。

(1)版权(著作权)

开源软件也是有版权的,它使用的是CopyLeft版权,没有采用传统的CopyRight版权。这是因为传统的版权过于注重保护作者的特权,不利于开源软件的发展。所以就需要创建新的版权来维护用户的自由,鼓励开源软件的传播。

(2)专利权

专利是对软件保护力度最大的一种措施,它的初衷是鼓励发明创新。如果有人想使用已为专利的技术,即使重新编写了代码,也是视为侵权的。因此专利在一定程度上促进了软件行业的创新。但是,专利也在很大程度上阻碍了开源软件的发展。一方面,开发人员很难避开专利编写相同功能的软件;另一方面,如果开源软件一旦侵权,发行者和用户都是要追究责任的。

(3)商标权

开源软件一般都有自己的商标,它的作用是区分于其他的软件,用户不能随便使用软件的商标,因为它们是受商标法保护的。

(4)商业秘密和反不正当竞争

商业秘密可以看成是对版权和专利权的补充,因为在软件的开发过程中,有一些东西,比如发明的思想内涵是得不到版权或专利的保护。但是由于开源软件的开源精神,这种商业秘密的保护方式也是不被提倡的。反不正当竞争的重点是维护软件行业的规则,这在开源领域一般不会涉及到。

开源许可证有很多,而经由OSI组织批准的开源许可证至少就有60多种,其中应用最为普遍的开源许可证主要有BSD、Apache License、GPL、LGPL、MIT、MPL。

  • l       BSD开源许可证

BSD开源许可是一个自由度很大的许可,用户可以使用软件、对代码进行自由修改、也可以以非开源的形式再次发布修改的软件。但需要满足3个条件:(1)如果以源码的方式发行软件,则在源代码中不能删除BSD许可证。(2)如果以可执行文件的格式发行软件,则BSD许可证需要添加到说明文档及版权声明中。(3)如果软件需要商业化,代码需要重新设置作者或机构的名字,并重新为产品命名,即原作者不承担任何责任。

BSD许可很受商业公司的青睐,因为在BSD许可下的代码在二次开发后可以作为商业软件发布和销售,同时公司可以完全控制这些代码为己所有。

  • l       Apache 许可证

Apache许可是开源组织Apache采用的开源许可证,这种许可与上面的BSD许可有很多的共同之处,它需要满足的条件:(1)源代码中必须附加一份Apache许可声明(2)对于修改过的代码,在相应的文件中应给出修改说明(3)源代码中的专利声明和商标等在新的代码中需要给出说明。

Apache License也是一种对商业支持比较友好的许可,它允许修改后的代码以商业产品销售和发布。

  • l       GPL开源许可证

提到开源,大家都会想到自由软件联盟GNU,而GPL就是GNU中最主要的一种许可证。它最与众不同之处是它不允许新的代码以非开源的形式发布和销售,一个软件只要是衍生自GPL协议产品,它就必须也要遵循GPL协议,所以我们才可以用到各种免费的软件,尤其是各种版本的Linux,其功不可没。

  • l       LGPL开源许可证

如果软件引用了GPL许可下的类库,它就必须也遵循GPL许可,这对于商业开发往往不太友好,所以就出现了LGPL许可。如果商业开发中引用了LGPL许可下的类库,这时的软件是可以不需要开源的,并且可以发布和销售。

  • l       MIT开源许可证

    MIT也是一个很宽泛的许可,它的主要限制就是作者的版权,如果你使用了这个开源许可下的开源软件,并想以二进制或源代码的形式再发布软件,则必须要在其中加入原许可的声明。

  • l       MPL开源许可证

    MPL可以看作是一种比较中性的许可,它既没有允许新的代码可以完全私有化,也没有要求派生的代码必须也要遵循MPL,它只强调在原来在MPL许可下的代码一定还要遵循MPL许可,所以MPL许可常常与其他的许可共同使用于一个开源项目中。

  • AGPL开源许可
AGPL是针对部门组织利用GPL的漏洞,不发布,但实际商用包含gpl开源程序的软件,主要是web,AGPL是对GPL更严谨的要求,要求在上述情况下也做出引用声明。

你可能感兴趣的:(开源协议总结)