0


1-1 开源许可证GPL, BSD, MIT, Mozilla, Apache, LGPL的介绍

文章目录

前言

开源许可证(Open source licenses),广义来讲是指一种被用于计算机软件或其他产品的,允许在指定的条款内使用,修改或分发其源代码,蓝图或设计的许可证。一般来讲,我们说的开源许可证是指广义的开源许可证释义。

狭义的来讲,根据 OSI(Open Source Initiative,开放源代码倡议组织) 的解释,开源许可证是指那些符合 OSD(开源定义,Open Source Definition) 的许可证 —— 简单来说,这些许可证允许软件被自由的使用,修改和分发。


开源许可证由来

通俗来讲的话,开源许可证就是一种允许我们在一定条件内按照我们的需要自由使用和修改软件及其源代码的法律条款,籍此条款,这个软件的作者(可能是一个人,也可能是很多人)可以将这些权利许可给我们,并告知我们一些使用限制。

这些条款有时由个人起草,有时由商业公司起草,但最广泛使用的是由非营利组织(例如 自由软件基金会,FSF)起草的各种开源许可证,通常情况下,作为开发者的我们可以通过按照这些许可证的要求放置许可证条款(有的许可证可能有别的要求,也有可能没有要求)来声明我们基于这些许可证开源。

需要注意的是,使用开源许可证并不意味着单纯的限制使用者,对于一些许可证(例如下文将会提到的 GPL 协议),他们也会限制您(开发者)的行为。因此,选择一个合适的许可证是十分重要的。

开源许可证类型

目前,国际公认的开源许可证共有80多种。它们的共同特征是,都允许用户免费地使用、修改、共享源码,但是都有各自的使用条件。

如果一种开源许可证没有任何使用条件,连保留作者信息都不需要,那么就等同于放弃版权了。这时,软件可以直接声明进入"公共领域" (public domain)。但大部分都声明了使用条件。

根据使用条件的不同,开源许可证分成两大类。

  • 宽松式(Permissive) 许可证:BSD,MIT,Apache 2
  • 著佐权(Copyleft) 许可证:AGPL,GPL,LGPL,Mozilla

开源许可证介绍

常见的开源许可证有GPL, BSD, MIT, Mozilla, Apache, LGPL,宽松程度不一,根据下列流程图可定位所属的许可证。
在这里插入图片描述

常见开源许可证

GPL协议

GPL协议来源自由软件联盟GNU,GPL/LGPL都侧重于代码及衍生代码的开源与免费使用。GPL是传染性开源,只要软件中包含了遵循 GPL 协议的产品或代码,该软件就必须也遵循 GPL 许可协议,也就是必须开源免费,不能闭源收费,因此这个协议并不适合商用软件。

  • 复制自由:允许把软件复制到任何人的电脑中,并且不限制复制的数量。
  • 传播自由:允许软件以各种形式进行传播。收费传播允许在各种媒介上出售该软件,但必须提前让买家知道这个软件是可以免费获得的;因此,一般来讲,开源软件都是通过为用户提供有偿服务的形式来盈利的。
  • 修改自由:允许开发人员增加或删除软件的功能,但软件修改后必须依然基于GPL许可协议授权。

遵循 GPL 协议的开源软件数量极其庞大,包括 Linux 系统在内的大多数的开源软件都是基于这个协议的。

BSD协议

BSD 协议也很宽松,给予了使用者很大自由,基本上允许用户“为所欲为”:用户可以使用、修改和重新发布遵循该许可的软件,并且可以将软件作为商业软件发布和销售。

前提是需要满足下面三个条件:

  • 如果再发布的软件中包含源代码,则源代码必须继续遵循 BSD 许可协议。
  • 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
  • 不允许用原始开源代码软件的名称、作者名字或机构名称进行市场推广。BSD代码鼓励代码共享,但需要尊重代码作者的著作权。

BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议,很受大公司的欢迎,因为可以完全控制这些第三方的代码,甚至在必要的时候可以修改或者二次开发。

MIT协议

MIT 是十分宽松的许可协议,来源于大学,可以说是史上最为简洁和慷慨(permissive)的开源协议之一。

用户可以拿自己的代码做任何想做的事情;用户在项目副本中要包含版权声明和许可声明;用户无需承担任何责任。作者只想保留版权,而无任何其他限制。也就是说,无论是以二进制发布的还是以源代码发布的,都必须在发行版里包含原许可协议的声明。

采用MIT协议的应用案例有JQuery、Rails 等。

Mozilla许可

MPL是The Mozilla Public License的简写,是1998年初Netscape的 Mozilla小组为其开源软件项目设计的软件许可证。MPL许可证出现的最重要原因就是,Netscape公司认为GPL许可证没有很好地平衡开发者对 源代码的需求和他们利用源代码获得的利益。

Mozilla 公共许可证第二版(简称 MPL2.0)是一个弱 copyleft 许可证,但是其条款的特殊性质又使其更像一个宽松许可证(甚至,有人专门创造了词语 copycenter 来描述这一类许可证),该许可证虽然要求软件源代码需要使用相同许可证进行分发,但是对于可执行软件和包含本软件的大型作品的协议做出了宽松的要求。

Apache协议

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样适用于商业软件,鼓励代码共享和尊重原作者的著作权,同样允许代码修改,但它更重视专利权。

如果修改了程序源代码,需要在文档中进行声明;

  • 若软件是基于他人的源代码编写而成的,则需要保留原始代码的协议、商标、专利声明及其他原作者声明的内容信息;
  • 如果再发布的软件中有声明文件,则需在此文件中标注 Apache 许可协议及其他许可协议。Apache Licence也是对商业应用友好的许可。
  • 使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

现在热门的 Hadoop、Apache 家族、SVN、MongoDB 等项目都是基于该许可协议研发的。

LGPL开源协议

LGPL 是 GPL 的一个衍生版本,也被称为 GPL V2,该协议主要是为类库设计的开源协议,同样来源于自由软件联盟GNU,可以翻译为更宽松的GPL协议,也属于传染性开源。

用户如果只是对LGPL软件的程序库的程序进行调用而不是包含其源代码时,相关的源程序无需开源。LGPL允许商业软件通过类库引用(link)方式使用LGPL 类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。

标签: apache 开源 java

本文转载自: https://blog.csdn.net/m0_60244783/article/details/127935705
版权归原作者 来自南半球的大伟 所有, 如有侵权,请联系我们删除。

“1-1 开源许可证GPL, BSD, MIT, Mozilla, Apache, LGPL的介绍”的评论:

还没有评论