1.BSD开源协议(original BSD license、FreeBSD license、Original BSD license)

BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件(2-Clause则不带第三条):

1>.  如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。

2.>.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。

3>. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

要点:商业软件可以使用,也可以修改使用BSD协议的代码。

BSD代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

2.Apache Licence 2.0(Apache License, Version 2.0、Apache License, Version 1.1、Apache License, Version 1.0)

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

1>. 需要给代码的用户一份Apache Licence;

2>. 如果你修改了代码,需要再被修改的文件中说明;

3>. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明;

4. >如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

3.GPL(GNU General Public License)

GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。

GPL具有“传染性”,只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用 GPL协议,既必须也是开源和免费。

GPL对商业发布的限制(引自Java视线论坛的Robbin):

“GPL是针对软件源代码的版权,而不是针对软件编译后二进制版本的版权.你有权免费获得软件的源代码,但是你没有权力免费获得软件的二进制发行版本.GP对软件发行版本唯一的限制就是:你的发行版本必须把完整的源代码一同提供.

我们很熟悉的Linux就是采用了GPL。GPL。BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。

GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。

其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。

使用GPL协议,需要遵守以下规则:

1>.确保软件自始至终都以开放源代码形式发布,保护开发成果不被窃取用作商业发售。任何一套软 件,只要其中使用了受 GPL 协议保护的第三方软件的源程序,并向非开发人员发布时,软件本身也就自动成为受 GPL 保护并且约束的实体。也就是说,此时它必须开放源代码。

2>.GPL 大致就是一个左侧版权(Copyleft,或译为“反版权”、“版权属左”、“版权所无”、“版责”等)的体现。你可以去掉所有原作的版权 信息,只要你保持开源,并且随源代码、二进制版附上 GPL 的许可证就行,让后人可以很明确地得知此软件的授权信息。GPL 精髓就是,只要使软件在完整开源 的情况下,尽可能使使用者得到自由发挥的空间,使软件得到更快更好的发展。

3>.无论软件以何种形式发布,都必须同时附上源代码。例如在 Web 上提供下载,就必须在二进制版本(如果有的话)下载的同一个页面,清楚地提供源代码下载的链接。如果以光盘形式发布,就必须同时附上源文件的光盘。

4>.开发或维护遵循 GPL 协议开发的软件的公司或个人,可以对使用者收取一定的服务费用。但还是一句老话——必须无偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售。

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,所以商业软件就不适合采用使用GPL协议的开源代码。

要点:商业软件不能使用GPL协议的代码。

4.LGPL(GNU Lesser General Public License)

LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

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

5.MIT(MIT)

[MIT许可证之名源自麻省理工学院(            Massachusetts Institute of Technology, MIT),又称「X条款」(X License)或「X11条款」(X11 License)]

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

要点:商业软件可以使用,也可以修改MIT协议的代码,甚至可以出售MIT协议的代码。

6.MPL ( Mozilla Public License 1.1 ) 
      MPL协议允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者 。这种授权维护了商业软件的利益,它要求基于这种软件的修改无偿贡献版权给该软件。这样,围绕该软件的所有代码的版权都集中在发起开发人的手中。但MPL是允许修改,无偿使用得。MPL软件对链接没有要求。
要点:商业软件可以使用,也可以修改MPL协议的代码,但修改后的代码版权归软件的发起者。

转载于:https://blog.51cto.com/9480860/1637497

.重要开源协定的比较以及区别相关推荐

  1. 开源软件与自由软件的区别——个人体会

    如今,计算机开源软件项目如潮水般涌来,各个领域都有着出色的表现.这就让我对开源的含义产生了兴趣. 于是花了一些时间在网络上搜索相关的信息.在此过程中,还发现了与之相似的--自由软件的定义.不过国内很多 ...

  2. Qt的开源版本与商业版区别及LGPL与闭源程序

    原文地址:http://blog.51cto.com/devbean/313477 最近一直在学习 Qt.Qt 有两个许可证:LGPL 和商业协议.这两个协议在现在的 Qt 版本中的代码是完全一致的( ...

  3. 官方iPhone SDK和开源工具链

    当Jobs宣称"iPhone SDK提供的是和苹果内部开发人员使用的相同的工具"时,他显然忘了在iPhone SDK发布之前几个月,就有人开始使用开源的Open Tool Chai ...

  4. 如何选择开源许可证如何修改项目使其符合某种开源许可证

    作者:zyl910 很多文章介绍了详细的解说了各种开源许可证及它们的区别.但是,具体该选择哪一种许可证?如何修改项目使其符合某种开源许可证?就很少见到指导了.于是本文探讨这两个问题. 一.如何选择开源 ...

  5. 为了不让代码“作恶”,能否将道德条款纳入开源许可证?

    随着特朗普政府反移民政策的执行,成千上万的移民儿童与父母分离,美国移民和海关执法局(ICE)也因此成为众矢之的. 所以,当开源开发者 Seth Vargo 发现前东家 -- Chef 公司最近与 IC ...

  6. 软件协会发布开源软件与商业软件知识产权报告

        日前,中国软件行业协会发布了<有关开放源代码软件与商业软件知识产权的研究报告>(以下简称<研究报告>),明确提出"反对政府直接支持或干预任何形式的软件商业模式 ...

  7. 可以将道德条款纳入开源许可证吗?

    开源开发者 Seth Vargo 发现 Chef 公司最近与 ICE(美国移民和海关执法局) 签订了合同后,进行删库抗议,从 Chef DevOps 中撤回了他的开源项目 Chef Sugar.后来  ...

  8. 华为的鸿蒙系统和苹果的操作系统有什么区别?

    鸿蒙与苹果系统相媲美应该不需要两到三年.我作为领导人,说话要保守一点,不能把下面人逼得太紧,但对于他们来说,不需要这么长时间. 你觉得两者的区别是,开源和闭源的区别吗?我觉得不是!在我看来,苹果的系统 ...

  9. 从 2,000 到 25,000 工程师,微软开源如何制霸 GitHub?

    [CSDN 编者按]自微软"豪掷千金"收购 GitHub 以来,其在开源方面的动作也一直不断.在这些背后,离不开微软强大的工程师团队.可以说,微软在开源方面的心血付出不是一般公司可 ...

最新文章

  1. 技术的那些事儿_3_西方技术管理的精髓
  2. mysql如何植入到oracle_MySQL产品的生命周期
  3. mysql 查看表v空间自增涨_mysql文件结构及InnoDB引擎表空间整理
  4. CSS3动画 - 地球 - 指南针旋转
  5. input传给java_java inputstream 传递给 py 处理
  6. 【Qt教程】2.4 - Qt5 控件 - QListWidget列表框
  7. 第10组17通信三班228网络协议抓包分析
  8. COMSOL6.0 版本新功能:求解大型瞬态声学问题
  9. mysql课程设计论文_课程设计项目源码,课程设计毕业设计项目,计算机毕业设计网 - 代码货栈...
  10. SonarQube 持续集成代码质量管理
  11. 2021国考申论三个月学习计划
  12. Focal loss分析
  13. php 错误 异常,PHP错误异常处理
  14. AD19-DRC检查
  15. PKI CA RA KMC
  16. 做了7年开源数据库开发,我学到了什么?
  17. php获取时间到微妙,php 获取毫秒时间戳
  18. 爬虫的智能化解析之使用Diffbot自动解析页面
  19. 百城价格房价周期和郑州、武汉房价比较分析
  20. 三菱FX系列PLC电池电压低导致程序参数丢失,PROG.E报警灯闪烁的解决办法

热门文章

  1. c++ websocket客户端_你要的websocket都在这,收好不谢~~~
  2. Matlab实用程序--图形应用-三维曲线图
  3. Matlab实用程序--图形应用-区域图形
  4. 2021-05-08 docker save与docker export的镜像区别
  5. 2020-12-09 深度学习 卷积核/过滤器、特征图(featue map)、卷积层
  6. Vue2.0 $set()的正确使用方式
  7. 斐波那契的数列的计算python-python斐波那契数列的计算方法
  8. 时间日期格式转换_JAVA
  9. 二叉树的先序/中序/后序(递归、非递归)+层序遍历
  10. 利用SIFt特征点和RANSAC方法进行物体识别(利用openCV和vs2010实现)