当前位置:首页 > 公众号精选 > 嵌入式大杂烩
[导读]关注「Linux大陆」,选择「星标公众号」一起进步!今天和大家分享一些开源协议的知识。这些协议缩写词在各种代码、文档中随处可见,比如GPL、BSD、MIT、Mozilla、Apache和LGPL等等。github新建仓库时协议选择这么多协议,我们了解的有多少呢?作为一名专业的嵌入...

关注「Linux大陆」,选择「星标公众号」一起进步!

今天和大家分享一些开源协议的知识。这些协议缩写词在各种代码、文档中随处可见,比如GPLBSDMITMozillaApacheLGPL等等。


github新建仓库时协议选择
这么多协议,我们了解的有多少呢?

作为一名专业的嵌入式系统开发人员,了解这些开源协议是一种基本素养,特别是当你自己要开源一些东西的时候该如何选择开源协议就变得非常重要了!

下面,对常见的几种做一下简单的介绍。

开源协议的作用

开源协议规定了你在使用开源软件时的权利和责任,也就是规定了你可以做什么不可以做什么

开源协议虽然不一定具备法律效力,但是当涉及软件版权纠纷时,开源协议也是非常重要的证据之一。

对于准备编写一款开源软件的开发人员,也非常建议先了解一下当前最热门的开源许可协议,选择一个合适的开源许可协议来最大限度保护自己的软件权益。

如何选择开源协议

世界上的开源许可证(Open Source License)大概有上百种,今天我们来介绍下几种我们常见的开源协议。

大致有GPLBSDMITMozillaApacheLGPL这6种。

点击放大
下面通过这几张图,大家可以一目了然的选择合适的开源协议:

点击放大
乌克兰程序员 Paul Bagwell 画了一张分析图

单击放大
单击放大

详细介绍常用开源协议

GNU GPL协议

GNU GPL具体为(GNU General Public License,GNU通用公共许可证)。

只要软件中包含了遵循 GPL 协议的产品或代码,该软件就必须也遵循 GPL 许可协议,也就是必须开源免费,不能闭源收费,因此这个协议并不适合商用软件

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

BSD协议

BSD协议具体为(Berkeley Software Distribution,伯克利软件发布版)协议。

BSD 协议给予用户极大的权利,用户可以使用、修改和重新发布遵循该许可的软件,并且可以将软件作为商业软件发布和销售,前提是需要满足下面三个条件:

  1. 如果再发布的软件中包含源代码,则源代码必须继续遵循 BSD 许可协议。

  2. 如果再发布的软件中只有二进制程序,则需要在相关文档或版权文件中声明原始代码遵循了 BSD 协议。

  3. 不允许用原始软件的名字、作者名字或机构名称等进行市场推广。

BSD 对商业比较友好很多公司在选用开源产品的时候都首选 BSD 协议,因为可以完全控制这些第三方的代码,甚至在必要的时候可以修改或者二次开发。

Apache 协议

Apache 协议具体为许可证版本(Apache License Version)协议,Apache 和 BSD 类似,都适用于商业软件。

Apache 协议在为开发人员提供版权及专利许可的同时,允许用户拥有修改代码及再发布的自由。

Hadoop、Apache HTTP Server、MongoDB 等项目都是基于该许可协议研发的,程序开发人员在开发遵循该协议的软件时,要严格遵守下面的四个条件:

该软件及其衍生品必须继续使用 Apache 许可协议。

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

若软件是基于他人的源代码编写而成的,则需要保留原始代码的协议、商标、专利声明及其他原作者声明的内容信息。

如果再发布的软件中有声明文件,则需在此文件中标注 Apache 许可协议及其他许可协议。

Apache 协议还有以下需要说明的地方: 永久权利: 一旦被授权,永久拥有

全球范围的权利: 在一个国家获得授权,适用于所有国家

授权免费,且无版税: 前期,后期均无任何费用。

授权无排他性: 任何人都可以获得授权

授权不可撤消: 一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码。

MIT协议

MIT协议具体为(Massachusetts Institute of Technology)协议,又称「X条款」或「X11条款」。

目前限制最少的开源许可协议之一(比 BSD 和 Apache 的限制都少),只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用。

使用 MIT 协议的软件有 PuTTY、X Window System、Ruby on Rails、Lua 5.0 onwards、Mono 等。

GUN LGPL协议

GUN LGPL协议具体是(GNU Lesser General Public License,GNU 宽通用公共许可证)。LGPL 是 GPL 的一个衍生版本,也被称为 GPL V2,该协议主要是为类库设计的开源协议。

LGPL 允许商业软件通过类库引用(link)的方式使用 LGPL 类库,而不需要开源商业软件的代码。这使得采用 LGPL 协议的开源代码可以被商业软件作为类库引用并发布和销售。

但是如果修改 LGPL 协议的代码或者衍生品,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用 LGPL 协议。

因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以 LGPL 协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

文章来源于网络,如有侵权请联系我删除,感谢~

往期推荐:

嵌入式编程中常用的宏定义有哪些?

一位程序员的十年工作总结,需要注意这几点!

分享一款小巧好用的代码对比工具

C语言、嵌入式中几个非常实用的宏技巧

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭