1. 简介

开源早已成为很多科技企业关注的焦点,我们也常会发现部分开源技术后面标注了某种协议,这意味着这些开源代码被框上了某种束缚,或者说这些代码将必须遵循这些规则,否则可能会触及法律。总的来看,如今比较流行的开源软件协议包括:GPL,LGPL,Apache、License(2.0)和BSD。一般来讲,如果使用了GPL许可证的软件,就意味着你的软件必须“自由”,相比之下,其他协议大多只要求使用者尊重原作就可以了,更适用于商业软件之中,只有区分了这些开源软件协议的含义,才能更好的利用和回馈开源软件。

  1. GPL(GNU General Public License Versions)

GPL协议一般还可以分为GPL2.0和GPL3.0两种,而GPL3.0是更新一代的开源标准,在对用户专利的保护和DRM的限制方面有所更改。GPL协议同其它的自由软件许可证一样,许可社会公众享有:运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。 而GPL协议就像一种开源“病毒”,任何一款沾染上他的软件都不得不保持开源和免费。根据国外论坛Robbin的解释:“GPL是针对软件源代码的版权,而不是针对软件编译后二进制版本的版权。你有权免费获得软件的源代码,但是你没有权力免费获得软件的二进制发行版本。GPL对软件发行版本唯一的限制就是:你的发行版本必须把完整的源代码一同提供。”

  1. LGPL(GNU Lesser General Public License)

LGPL是GNU Lesser General Public License(GNU宽通用公共许可证)的缩写形式,LGPL是GPL的一个为主要为类库使用设计的开源协议。与上面的GPL不同的是,LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。使采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。我们也可以简单理解为:LGPL协议的开源代码商业软件可以使用,但不能修改LGPL协议的代码。

  1. Apache License

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。他需要满足的条件包括:需要给代码的用户一份Apache Licence
如果你修改了代码,需要在被修改的文件中说明。
在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
BSD开源协议(Berkerley Software Distribution)目前BSD开源协议分为BSD 3-Clause和BSD 2-Clause两种,分别代指两个条款和三个条款的BSD协议。应该说,BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但是,不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。这就不难理解,很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

  1. MIT(Massachusetts Institute of Technology)

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

  1. MPL(Mozilla Public License)

Mozilla公共许可证(MPL)最初是Netscape发布的开源和自由软件许可证。类似GPL等公共版权许可证,使用和修改MPL授权的代码将需要在MPL下发布源代码。

5种常用开源协议解释相关推荐

  1. 常用开源协议详细解析

    开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的.开源运动同样有自己的游戏规则和道德准则.不遵行这些规则不但损害开源运动的健康发展,也会对违规者造成名誉和 ...

  2. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  3. 小知识:常用开源协议详细解析

    來源:http://www.mscto.com/open/20081117-7075.html 开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的. 开源在 ...

  4. 开源协议概谈[转载]

    最近博客园上对开源的讨论比较多,开源作为一种文化,和传统的专利一样,需要了解各种开源协议,正好看到一篇介绍开源协议的blog,转载如下: 原文地址  http://blog.gxsti.net/cs/ ...

  5. 六种常见开源协议整理

    文章目录 开源协议的作用 如何选择开源协议 详细介绍常用开源协议 1. BSD ( original BSD license . FreeBSD license . Original BSD lice ...

  6. 【全】可供选择的软件开源协议的罗列

    Public License List 罗列各种开源代码的公共协议以供选择.具体每一个协议的含义可以另外找教程文章或看官网原文,这里解决"都有什么"的问题. List of lic ...

  7. 什么是开源协议?开源协议的作用?常用的三种开源协议

    什么是开源协议? 开源协议规定了你在使用开源软件时的权利和责任,也就是规定了你可以做什么,不可以做什么. 开源协议虽然不一定具备法律效力,但是当涉及软件版权纠纷时,开源协议也是非常重要的证据之一. 开 ...

  8. 五种开源协议(GPL,LGPL,BSD,MIT,Apache)介绍

    商业化的软件应该主要选用MIT或者Apache license的开源系统作为插件. -- 什么是许可协议? 什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申 ...

  9. 7种常用p2p共享协议

    一.Napster:第一个大型的:中央集中式:倒闭了: 二.Gnutella和Gnutella2:开源的:第一个真正非中心的.Gnutella2是对Gnutella的改进和扩展. 三.FastTrac ...

最新文章

  1. 分类问题中的“维数灾难” - robotMax
  2. sudo执行脚本找不到环境变量解决方法
  3. SpockFS —— 基于 HTTP 的文件系统
  4. Oracle connet by prior 关键字的简单介绍和用法
  5. 前端如何让倒计时更准确
  6. php5.6.16,OSX 10.11 中重新编译PHP5.6.16问题
  7. 小于三位的正整数 正则式_正则表达式
  8. PostGIS mysql_fdw安装(Linux)
  9. php多应用,thinkphp6开启多应用模式
  10. NVIDIA英伟达:深度学习服务器搭建指南 | 交流会笔记
  11. python html5lib时间_如何使用Python模块 html5lib
  12. 分布式存储中HDFS与Ceph两者的区别是什么,各有什么优势?
  13. 80sec被黑原因分析
  14. 恒定湿热试验条件及标准-环境试验中的湿热试验报告
  15. Linux下的围棋软件,在Linux下和电脑下围棋
  16. 物联网工程专业考研方向
  17. 调整视频播放速度,如何让视频加速或放慢播放
  18. ios-AddressBook框架
  19. python重启路由器_python 实现重启路由器
  20. 达梦数据库 ,无效的列名, org.springframework.dao.DataIntegrityViolationException: Hibernate-related JDBC operat

热门文章

  1. 百家号如何更好的解决限流去运营获得收益呢?
  2. 2022-2027年中国电压互感器行业发展监测及投资战略研究报告
  3. 2023 升级Windows11后鼠标卡顿鼠标会卡一下
  4. 血浆p-Tau181在Tau沉积中的预测作用
  5. 首席新媒体黎想教程:数据运营必备的5大数据分析方法
  6. 【新员工座位安排系统】
  7. 华为可以看游戏时长吗_有效管理孩子游戏时长 只需开启华为P10学生模式
  8. 从244到1173亿美元,回望戴尔这六年
  9. (转)Functional C# - Fun With Folds
  10. docker虚拟化技术文档(自己总结最全版本)