Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一图说明各种开源许可的使用要求

一图说明各种开源许可的使用要求

原创
作者头像
软件架构师Michael
发布于 2022-12-06 05:16:06
发布于 2022-12-06 05:16:06
1.3K0
举报

世界上的开源许可证(Open Source License)大概有上百种,今天我们来介绍下几种我们常见的开源协议。大致有GPL、BSD、MIT、Mozilla、Apache和LGPL等。

作为一名资深coder,经常看到github,gitee等开源平台上的LICENSE为:MIT,Apache-2.0,GPL-3.0,这三种也是开源项目最常见的License类型。今天着重说明下这三种License.

Apache License

Apache License(Apache许可证),是Apache软件基金会发布的一个自由软件许可证。

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和最终原作者的著作权,同样允许源代码修改和再发布。但是也需要遵循以下条件:

  • 需要给代码的用户一份Apache Licence。
  • 如果修改了代码,需要再被修改的文件中说明。
  • 在衍生的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
  • 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以再Notice中增加自己的许可,但是不可以表现为对Apache Licence构成更改。
  • Apache Licence也是对商业应用友好的许可。使用者也可以再需要的时候修改代码来满足并作为开源或商业产品发布/销售。

使用这个协议的好处是:

  • 永久权利 一旦被授权,永久拥有。
  • 全球范围的权利 在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题。
  • 授权免费 无版税, 前期、后期均无任何费用。
  • 授权无排他性 任何人都可以获得授权
  • 授权不可撤消 一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码

GPL

GPL (GNU General Public License) :GNU通用公共许可协议。

Linux 采用了 GPL

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

MIT

MIT是和BSD一样宽范的许可协议,源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称X11协议。作者只想保留版权,而无任何其他了限制。MIT与BSD类似,但是比BSD协议更加宽松,是目前最少限制的协议。这个协议唯一的条件就是在修改后的代码或者发行包包含原作者的许可信息。适用商业软件。使用MIT的软件项目有:jquery、Node.js。

MIT与BSD类似,但是比BSD协议更加宽松,是目前最少限制的协议。这个协议唯一的条件就是在修改后的代码或者发行包包含原作者的许可信息。适用商业软件。使用MIT的软件项目有:jquery、Node.js。

为了更加直观了解各种License之间的区别:特别借用了阮一峰老师的一个图解。

License家族
License家族

怎么样,长知识了吧?

【小结】

相信看了此文的小伙伴,以后看到github上各种License一定知道怎么处理了。

欢迎收藏、点赞加关注,谢谢!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
这6种开源协议(GPL,LGPL,BSD,MIT,Apache)的说明和选择
本文介绍五种开源协议GPL,LGPL,BSD,MIT,Apache,以及如何选择这几种协议。
辉哥
2019/05/25
40.1K1
秒懂开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL
世界上的开源许可证(Open Source License)大概有上百种,而我们常用的开源软件协议大致有GPL、BSD、MIT、Mozilla、Apache和LGPL。
lcyw
2022/06/10
1.7K0
秒懂开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL
2018-09-07 几种开源协议的比较(BSD,Apache,GPL,LGPL,AGPL,MIT) – 整理几种开源协议的比较(BSD,Apache,GPL,LGPL,AGPL,MIT) – 整理
http://ewen0930.github.io/2016/11/open-source-licenses/
Albert陈凯
2018/09/20
2.5K0
2018-09-07 几种开源协议的比较(BSD,Apache,GPL,LGPL,AGPL,MIT) – 整理几种开源协议的比较(BSD,Apache,GPL,LGPL,AGPL,MIT) – 整理
常见开源协议介绍
世界上的开源许可证(Open Source License)大概有上百种,今天我们来介绍下集几种我们常见的开源协议。大致有GPL、BSD、MIT、Mozilla、Apache和LGPL等。
JAVA日知录
2020/12/16
1.2K0
常见开源协议介绍
开源许可证协议
最近新闻中的00后被指抄袭Github开源项目,新闻链接:http://money.163.com/17/0905/17/CTJBUNNV002580S6.html 被抄袭墨镜猫作者博客:http://blog.csdn.net/rain_butterfly/article/details/77847643 墨镜猫的开源项目遵循的协议是Apache v2.0,允许商用,但随后,墨镜猫就于9月5日上午将协议修改成了 GNU GPL v3.0。一直以来,GPL是Linux软件及各种开源项目中比较受欢迎的项目协议
233333
2018/03/07
1.6K0
开源许可证协议
几种常见的软件开源协议介绍
最近在做一些技术管理的工作,在技术规范中会涉及到开源协议,参考一下这篇文章介绍的几种常见的开源协议,例如,GPL、BSD、MIT、Mozilla、Apache和LGPL等,
bisal
2021/09/23
2.2K0
几种常见的软件开源协议介绍
开源软件的许可协议,这也贼鸡儿多了吧...
开源软件在追求“自由”的同时,不能牺牲程序员的利益,否则将会影响程序员的创造激情,因此世界上现在有 60 多种被开源促进组织(Open Source Initiative)认可的开源许可协议来保证开源工作者的权益。
杰哥的IT之旅
2020/12/17
1K0
如何为自己的开源项目选择合适的开源许可证?
之前我们介绍过很多款开源软件/项目,在文章的最后面总有代码仓库的License:MIT/Apache/GPL:
埃兰德欧神
2024/07/15
6210
如何为自己的开源项目选择合适的开源许可证?
了解开源许可,减少不必要麻烦
之前技术圈因为React专利事件再次被大家关注,印象中Angular和Vue的纷争刚刚过去不久,果然前端技术圈对”造轮子”和”搞事情”有着近乎执著的追求。作为一个在知乎吃瓜的伪前端工程师,我对这凑热闹这种事情从来都是是颇为喜欢的。如果说Angular和Vue冲突主要来自大漠穷秋和尤小尤的个人战场,那么这次React专利事件则是商业公司之间对社区主导力量的一次争夺和抗衡。开源是一种近似乌托邦般的理想社会,它倡导的”人人为我,我为人人”这种近乎大同社会的观念,在面临商业化浪潮洗礼的时候难会和商业利益发生冲突,譬如Google因为使用Java而和甲骨文纠纷不断,最终不得不选择Kotlin作为Android开发的主力语言。所以这篇文章我想和大家通过React专利事件来聊聊开源软件许可,以及我们如何在商业化和开源社区间找到一个平衡点。
MySQL轻松学
2019/05/21
1.1K0
开源运动发展史与开源许可证(BSD、GPL、Apache、MIT、木兰(中国))的那些事儿
2022年1月份,Apache SkyWalking社区在其blog上实锤字节跳动的火山引擎里面违反Apache 2.0许可证,重新发布了Apache SkyWalking开源软件。
Flowlet
2022/08/18
1.5K0
开源运动发展史与开源许可证(BSD、GPL、Apache、MIT、木兰(中国))的那些事儿
四种常见软件开源协议介绍-GPL、LGPL、BSD、Apache区别
软件开源是许多软件企业需要关注的问题,不同的开源软件协议,对应不同的源代码使用限制。只有了解这些开源软件协议,才能更好地使用和回馈开源软件,否则就有可能触犯法律。今天介绍四种常见的开源软件协议:
西门呀在吹雪
2021/11/15
6.3K0
四种常见软件开源协议介绍-GPL、LGPL、BSD、Apache区别
今天来说说开源共享精神
简单来说,开源软件的特点就是把软件程序与源代码文件一起打包提供给用户,让用户在不受限制地使用某个软件功能的基础上还可以按需进行修改,或编制成衍生产品再发布出去。用户具有使用自由、修改自由、重新发布自由以及创建衍生品的自由。这也正好符合了黑客和极客对自由的追求,因此国内外开源社区的根基都很庞大,人气也相当高。
明月登楼的博客
2019/05/15
1K0
今天来说说开源共享精神
5W1H聊开源之What——开源协议有哪些?
开源许可协议是指开源社区为了维护作者和贡献者的合法权利,保证软件不被一些商业机构或个人窃取,影响软件的发展而开发的协议。开源协议规定了用户在使用开源软件时的权利和责任,虽然不一定具备法律效力,但是当涉及软件版权纠纷时,也是非常重要的证据之一。
陈哥聊测试
2021/06/09
6350
5W1H聊开源之What——开源协议有哪些?
常见的开源协议
参考文章: https://zh.wikipedia.org/wiki/Apache%E8%AE%B8%E5%8F%AF%E8%AF%81 https://zh.wikipedia.org/wiki/GNU%E9%80%9A%E7%94%A8%E5%85%AC%E5%85%B1%E8%AE%B8%E5%8F%AF%E8%AF%81 https://zh.wikipedia.org/wiki/GNU%E5%AE%BD%E9%80%9A%E7%94%A8%E5%85%AC%E5%85%B1%E8%AE%B8%E5%8F%AF%E8%AF%81 https://zh.wikipedia.org/wiki/BSD%E8%AE%B8%E5%8F%AF%E8%AF%81 https://zh.wikipedia.org/wiki/MIT%E8%A8%B1%E5%8F%AF%E8%AD%89 http://www.awflasher.com/blog/archives/939
续写经典
2018/08/28
1.1K0
一图说明常见开源协议
开源协议上百种。常见的开源许可协议主要有 Apache、MIT、BSD、GPL、LGPL、MPL等,可以大致分为两大类:宽松型开源许可协议和传染型开源许可协议。
Mr.Teen
2023/06/05
7K0
一图说明常见开源协议
github 各种开源协议讲解
GPL(GNU General Public License Versions) GPL协议一般还可以分为GPL2.0和GPL3.0两种,而GPL3.0是更新一代的开源标准,在对用户专利的保护和DRM的限制方面有所更改。GPL协议同其它的自由软件许可证一样,许可社会公众享有:运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。 而GPL协议就像一种开源“病毒”,任何一款沾染上他的软件都不得不保持开源和免费。 根据国外论坛Robbin的解释:“GPL是针对软件源代码的版权,而不是针对软件编译后二进制版本的版权。你有权免费获得软件的源代码,但是你没有权力免费获得软件的二进制发行版本。GPL对软件发行版本唯一的限制就是:你的发行版本必须把完整的源代码一同提供。” LGPL(GNU Lesser General Public License) LGPL是GNU Lesser General Public License(GNU宽通用公共许可证)的缩写形式,LGPL是GPL的一个为主要为类库使用设计的开源协议。与上面的GPL不同的是,LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。使采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。 我们也可以简单理解为:LGPL协议的开源代码商业软件可以使用,但不能修改LGPL协议的代码。 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协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。 MIT(Massachusetts Institute of Technology) MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的. MPL(Mozilla Public License) Mozilla公共许可证(MPL)最初是Netscape发布的开源和自由软件许可证。类似GPL等公共版权许可证,使用和修改MPL授权的代码将需要在MPL下发布源代码。
西里国际站
2023/04/18
1.6K0
一文看懂开源许可证丨开源知识科普
在很多人眼中,「开源」是一个时髦且有情怀的词汇,始终伴随有理想主义色彩,因此不少公司开始给自己贴上“开源”标签。但一个优秀的开源项目远远不止是简单的公开源代码,而是需要将其当作公司战略进行贯彻,才能架设起牢不可破的信任桥梁。
PingCAP
2021/10/21
2.2K0
软件开发中的开源协议详解!
作者:pdai 开源不等于免费!为了加速我们的开发,我们会使用开源的软件和源码; 为避免商业风险,需要在使用时了解第三方如软件协议,版本,和已知CVE风险等;本文旨在从开源软件再发布过程使用权限的角度入手,总结各个常见开源协议的异同,方便理解。
Java技术栈
2019/07/08
1.5K0
开源许可证介绍
更新说明:对文章排版以及内容格式做了调整。 更新时间:2022-05-04 Github上新建项目的时候,会让添加开源许可证,一搬情况下我们自己建项目的时候:Add a licence:None,即:不添加许可证。 刚开始的时候我们都不会在意这个许可证到底是什么,但是随着项目专业、职业化,我们一定要对开源许可证有个清楚的了解。 那么,现在就动脑、动手记录一下关于开源许可证的小介绍。 分析图 乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。只用两分钟,你就能搞清楚这六种
六个周
2022/10/28
1K0
开源许可证介绍
不懂开源软件?你需要这篇文章
没有开源软件,现在的互联网根本无法存在,开源的历史可以追溯到ARPANET建立。开源在今天已经不再是一个时髦的词了,对于互联网的开发者来说,它现在就像空气和水一样,就在我们的生活中。
美码师
2019/01/23
2.9K1
不懂开源软件?你需要这篇文章
推荐阅读
相关推荐
这6种开源协议(GPL,LGPL,BSD,MIT,Apache)的说明和选择
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档