1、BSD开源协议(original BSD license、FreeBSD license、Original BSD license)
BSD开源协议是一个给于使用者很大自由的协议。使用者可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
BSD对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
2、Apache Licence 2.0
Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。
Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
3、GPL(GNU General Public License)
GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
4、LGPL(GNU Lesser General Public License)
LGPL是GPL的一个为主要为类库使用设计的开源协议。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
5、MIT(MIT)
MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.所以也是对商用友好的协议。
分享到:
相关推荐
#### 三、开源协议的选择与应用 - **选择依据**: 在选择开源协议时,开发者需要考虑的因素包括项目的性质、目标受众以及对代码使用的限制等。 - **应用场景**: 不同类型的开源许可证适用于不同的应用场景。例如,...
### 五种开源协议的比较 #### 引言 随着技术的发展与开放文化的普及,越来越多的企业和个人选择将软件代码开源,以促进技术创新和社区发展。Adobe、Microsoft、Sun等巨头企业的加入更是加速了这一趋势。在众多开源...
开源协议是连接开发者与用户之间的桥梁,它定义了软件可以如何被使用、修改和分发。本篇文章将深入探讨Python开源协议的相关知识。 首先,我们需要了解什么是开源协议。开源协议(Open Source Licenses)是一系列...
BSD许可因其灵活性而受到很多企业的青睐,特别是在商业应用中,因为它不要求修改后的版本也必须开源。 #### 3. Apache License 2.0 Apache License是由Apache软件基金会提供的开源许可协议。它具有BSD许可的大部分...
Apache Licence对商业应用十分友好,允许商业产品在必要时进行修改和二次开发。 GPL,全称GNU General Public License,是Linux等著名开源项目所采用的协议。其核心原则是“传染性”,即任何使用、修改或衍生自GPL...
开源协议是开源软件项目的重要组成部分,它决定了软件的使用、修改和分发条件。在众多开源协议中,有五种特别重要且被广泛使用的协议:BSD、Apache、GPL、LGPL和MIT。这五种协议各有其特点和适用范围,下面我将对...
这使得 LGPL 成为了许多开发者在商业应用中首选的开源库许可协议。 了解这些开源协议,Java程序员能够避免法律风险,正确地使用和贡献开源项目。在开发过程中,根据项目的需求和愿景选择合适的许可证,是尊重并维护...
以下是对五个主要开源协议——LGPL、GPL、MIT、Apache 2.0和BSD的详细解读。 1. LGPL (GNU Lesser General Public License) LGPL,全称GNU较宽松公共许可证,主要用于库和框架。与GPL相比,LGPL允许非开源项目链接...
本文将分析五个开源的TCP/IP协议栈:BSD TCP/IP、uC/IP、LwIP、uIP以及TinyTcp,探讨它们的特点、适用场景以及选择考虑因素。 1、**BSD TCP/IP协议栈**: 源自Berkeley Software Distribution (BSD),它是其他商业...
使用开源的CANOpen协议,开发者可以自由地实现CANOpen节点,不受商业授权的限制。但需要注意的是,虽然开源带来了便利,但也需要具备一定的CAN总线和CANOpen协议知识才能有效利用这些资源。此外,参与开源社区需要...
ZigBee开源协议栈MpZBee是一个用于开发ZigBee无线网络应用的开放源码项目。这个协议栈全面实现了ZigBee协议的各个层次,为开发者提供了便捷的工具来构建基于ZigBee标准的物联网解决方案。ZigBee是一种低功耗、低数据...
下面将详细介绍蓝牙4.0协议栈的主要组成部分及其工作原理。 1. **核心协议栈**: - **广告和扫描**:BLE设备首先通过广播模式进行通信,发送包含设备信息的广告包。其他设备可以处于扫描模式,接收这些广告并决定...
3. **开源能力**:金融机构的开源软件研发和维护团队规模与应用规模不匹配。近50%的机构团队规模在1-50人之间,而100人以上的团队仅占4%。国有商业银行和民营银行在团队建设和人员投入上表现更积极。大多数机构能...
本文将深入探讨五种主要的开源协议:GPL、LGPL、BSD、MIT和Apache。 首先,GPL(GNU General Public License)是最具影响力的开源协议之一,它确保了软件的“copyleft”属性,即如果软件的任何部分被用于其他项目,...
Apache License 2.0同样支持商业应用,使用者可以根据需要修改代码以满足特定需求,并作为开源或商业产品发布。 #### 4. GPL (General Public License) **GPL**(General Public License) 许可证是最广泛使用的自由...
STP的范围广泛,涉及各种协议、服务质量管理以及应用层面的工具。 【商业产品简介】 商业产品如IBM的WPS/WAS、AquaLogic Data Services Platform、TIBCO ActiveMatrix等,都基于早期的SCA和SDO版本实现。尽管这些...
libiec61850 是 IEC 61850 客户端和服务器库的开源 (GPLv3) 实现,实现了 MMS、GOOSE 和 SV 协议。它以 C 语言实现(根据 C99 标准)以提供最大的可移植性。它可用于在嵌入式系统和运行 Linux、Windows 和 MacOS 的 ...
这个库的主要目标是提供高效、灵活且易于使用的XML处理功能,使得开发人员能够轻松地在各种应用程序中集成XML解析和操作。 ### 1. 功能特性 libxml2库提供了多种关键功能,包括: - **XML解析**:支持SAX(Simple...