美文网首页
主流开源协议简述

主流开源协议简述

作者: 江北01 | 来源:发表于2018-01-25 16:01 被阅读11次

开源 ≠ 免费  开源 ≠ 免费  开源 ≠ 免费,重要的事情说三遍。

一、为何要了解开源协议

Java的强大与崛起,应当说强大的开源生态起了不小的作用。在编程的过程中也或多或少能接触到不少优秀的开源软件、框架,况且我们又乐于找轮子,因此,了解经常见到的开源协议就有必要了。再者,不了解开源协议随意使用一个带有限制的协议的开源软件甚至使用没有任何协议的软件,这就像一颗定时炸弹,随时可能会要了你的命!

二、主流开源协议简介

1.Apache License, 2.0 (Apache-2.0 )

1.需要给代码的用户一份Apache Lience;
2.如果你修改了代码,需要在被修改的文件中说明;
3.在延伸的代码中(修改或衍生的代码)需要带有原来代码中的协议、商标、专利声明和其他原来作者规定需要包含的说明。
4.如果再发布的产品中包含了Notice文件,则需要在Notice文件中带有Apache Lience。你可以在Notice中增加自己的许可,但不可以表现为对Apache Lience构成更改。

2.BSD开源协议(Berkerley Software Distribution)( BSD 3-Clause , BSD 2-Clause )

1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议;
2.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档那个和版权声明中包含原来代码中的BSD协议;
3.不可以用开源代码的“作者/机构的名字”或“原来产品的名字”做市场推广。

3.GPL ( GNU General Public License )

1、确保软件自始至终都以开放源代码形式发布,保护开发成果不被窃取用作商业发售。任何一套软 件,只要其中使用了受 GPL 协议保护的第三方软件的源程序,并向非开发人员发布时,软件本身也就自动成为受 GPL 保护并且约束的实体。也就是说,此时它必须开放源代码。
2、GPL 大致就是一个左侧版权(Copyleft,或译为“反版权”、“版权属左”、“版权所无”、“版责”等)的体现。你可以去掉所有原作的版权 信息,只要你保持开源,并且随源代码、二进制版附上 GPL 的许可证就行,让后人可以很明确地得知此软件的授权信息。GPL 精髓就是,只要使软件在完整开源 的情况下,尽可能使使用者得到自由发挥的空间,使软件得到更快更好的发展。
3、无论软件以何种形式发布,都必须同时附上源代码。例如在 Web 上提供下载,就必须在二进制版本(如果有的话)下载的同一个页面,清楚地提供源代码下载的链接。如果以光盘形式发布,就必须同时附上源文件的光盘。
4、开发或维护遵循 GPL 协议开发的软件的公司或个人,可以对使用者收取一定的服务费用。但还是一句老话——必须无偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售。

4.MIT ( MIT license )

MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。

5.LGPL ( GNU Library or "Lesser" General Public License )

LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。 LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并 发布和销售。
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源 代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品

6.GPL V2 && GPL V3

单从开源行业的GPL协议上来看,似乎开源linux产品上的一切是可以无条件的开放和共享的,但是从实际的操作来看,在GPL相对的许可授权之下,又有其相对封闭的一面,就这次的GPL v2到GPL v3的修订改版来说,正是GPL协议“封闭”一面的具体体现。
根据GPL v2的相关规定:只要这种修改文本在整体上或者其某个部分来源于遵循GPL的程序,该修改文本的整体就必须按照GPL流通,不仅该修改文本的源码必须向社 会公开,而且对于这种修改文本的流通不准许附加修改者自己作出的限制。而在GPL v3的修订草案中,不仅要求用户公布修改的源代码,还要求公布相关硬件,恰恰是这一条,由于触及和其他相关数字版权管理(DRM)及其产品的关系,并且也 由于有和开源精神相违的地方,所以备受争议,甚至因此也遭到了有着“LINUX之父”之称的托瓦尔兹的反对。
从表面上看,GPL v2到GPL v3的升级之困只不过是对协议修订过程中某一条款的分歧,而更为严重的是在两种协议都合法存在的前提下,具体的开源软件或者开源产品的所有者有权选择是遵 循GPL v2协议还是恪守GPL v3协议,因此冲突也就来了,这种冲突正如中科红旗的CTO郑忠源描述的那样:“世界有如此多软件都在GPL v2的约束之下,而自由软件是集合全世界程序员劳动,即使是贡献一行代码,如果该程序员只同意这一代码只遵循GPL v2之下,就不能随便去修改协议。如果计划将软件转移到GPL v3之下,理论上讲,必须征得所有代码人的同意。但是目前还很难确定有多少开发人员愿意转移到新版本之下,如果有的人愿意转,有的人不愿意转,这其中就有 很多的麻烦;而如果多数人都不愿意改变,那这一事情也许就无声无息……”
通过业内人士的精辟描述,相信大家一定对开源行业和开源软件产品有了一个全新的认识吧,就那熟悉的LINUX系统来说,虽然表面上看起来大家有权按 照自己的需要和目的进行任意的改写重组,但是在诸多的独立程序面前,别人是只能共享使用,而无权修改的,当然获得授权就另当别论了。而就GPL v2到GPL v3的协议升级来说,这种协议的选择上的分歧实际上也是开源行业里一种观念认知上的相左,到底谁的选择是正确的?绝对不是一两句话能说得清的,尤其是在各 种利益交织之下。

三、图解区别与协议选择

图1:


Alt text

图2:


Alt text
图3:
Alt text

相关文章

  • 主流开源协议简述

    开源 ≠ 免费开源 ≠ 免费开源 ≠ 免费,重要的事情说三遍。 一、为何要了解开源协议 Java的强大与崛起,应当...

  • 常见开源协议介绍

    一、常用开源协议汇总图 首先从一张图开始,介绍几种主流的开源协议,以及决定选用哪种框架的思路。使用哪种开源协议,决...

  • 六种开源协议的简单区别

    目前的开源协议种类非常多,也很难记住每种的详细特点和区别,主流的开源协议只要为以下六种:GPL、BSD、MIT、M...

  • 开源协议专题(五):开源协议的几个关键概念

    背景说明:本文主要讲述和开源协议相关的几个关键概念,方便后续介绍几个主流的开源协议以及比较他们之间的差异时能更好的...

  • 开源协议分析图

    现今一些主流的开源协议区别图,由乌克兰程序员Paul Bagwell分析(由阮一峰)进行汉化。 以上便于在使用开源...

  • 探究Redis 01:初识

    简述 Redis 是一种开源内存数据存储系统,可被用于数据库、缓存、消息服务等场景。Redis遵循BSD授权协议。...

  • Realm初探(一)

    简述 Realm是一款针对移动设备设计的数据库框架,已经涵盖所有主流的开发平台。代码开源 Realm的特性 1、全...

  • 几种开源协议的学习(BSD, GPL, LGPL, MIT)

    几种开源协议的学习 目前开源协议有很多,经过Open Source Initiative组织通过批准的开源协议目前...

  • 关于IM协议

    主流IM协议简介 四种主流的IM协议, XMPP协议、即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM...

  • 关于开源的一些注意事项

    开源协议概要 目前开源的协议可以参考GNU组织的开源许可协议:[具体参考链]。(http://www.gnu.or...

网友评论

      本文标题:主流开源协议简述

      本文链接:https://www.haomeiwen.com/subject/utbvaxtx.html