开源软件 | 一文彻底搞懂许可证的定义、起源、分类及八大主流许可证,让你选型不再头疼

为什么开源软件会存在许可证,许可证的起源与产生目的是为了解决什么问题?许可证的定义又是怎样的?什么是Copyleft,与Copyright有何区别?开源软件常见的许可证有哪些?这些许可证都有什么特点?接下来博主就逐一介绍。

1. 开源许可证的定义

开源许可证是一种法律协议,它规定了软件代码可以被如何使用、修改和分发。其中,著作权是指对于软件代码的创作者所拥有的法律权利,包括复制、发布、演绎等权利。分发是指分发指软件作者向他人提供软件源代码或二进制代码或二者的副本。

著作权法默认禁止共享,没有许可证的软件就不能免费地使用、修改、共享。

在开源许可证中,通常会涉及到著作权许可授权的问题。这些许可协议可以分为两大类:强制性许可证和非强制性许可证。强制性许可证要求使用该软件的用户必须遵守特定的协议,否则将面临诉讼风险。而非强制性许可证则允许用户根据自己的需要使用、修改和分发软件。

开源许可证存在的法律特性:合同性质和知识产权性质(著作权、专利权、商标权)

常见的开源许可证包括GNU通用公共许可证(GPL)、MIT许可证、Apache许可证等。每种许可证都有自己的特点和适用范围,使用者需要根据自己的需求选择合适的许可证。

2. 开源许可证的起源

开源许可证的起源可以追溯到20世纪90年代早期,当时自由软件运动和Linux系统的兴起促进了开源软件的发展。1991年,GNU通用公共许可证(GPL)首次发布,这是第一个被广泛采用的开源许可证之一。GPL被设计为保障软件自由和开放性,它要求任何使用或修改受保护软件的人必须在其发布时公开代码,并且不得限制代码的再分发。

1998年,开源软件运动的领袖Eric Raymond和Bruce Perens共同创立了Open Source Initiative(OSI),以推广和支持开源软件的发展。OSI创建了一个开源定义(Open Source Definition),并认证了符合该定义的许可证。这些许可证包括GPL、BSD、MIT、Apache等。

在自由软件运动之后,出现了大量优秀的开源软件,而商业软件开发商无情的窃取着革命的果实,商业软件在开源软件的基础上开发新的软件,实际上基于著作权法其开发的软件属于衍生作品,该作品依然为著作权法所保护,不同的是,商业软件开发商所开发的衍生软件一般不会再以开源软件的形式出现。于是就产生了接下来的著佐权

3. 著佐权(Copyleft)

著佐权是一个由自由软件运动所发展的概念,是一种利用现有著作权体制来保护所有用户和二次开发者的自由的授权方式。在自由软件授权方式中增加著佐权条款之后,该自由软件除了允许使用者自由使用、散布、修改之外,著佐权许可证更要求使用者修改后的衍生作品必须要以同等的授权方式释出以回馈社会。

著佐权(Copyleft)机制与著作权(Copyright)相对应

著佐权,是弥补著作权(Copyright,复制传播的权利)不足的版权授权。它的授权方式与常用的版权授权方式并不相同。另有译为反版权”、版权属左”、左版”、版权所无”、版权左派”,或版责”,这些译名可能有其意义上的偏差,比较贴切的翻译应该是版责”或者左版”,使用版责”(即:传播的责任)因为 Copyleft 虽然与常见的著作权模式不同,但不反对著作权的基本体制。

4. 开源许可证两大目的

  • 保护开源软件贡献者: 规范受著作权保护的软件的使用或者分发行为;
  • 保护开源软件使用者:使用者按照许可证条款使用开源软件,避免因侵犯贡献者的利益产生纠纷。

5. 开源许可证认证机构及分类

5.1. 认证机构

  • OSI: OSI(Open Source Initiative,开放源代码促进会)是一个旨在推广开源软件的非营利组织,它制定了一套开源软件的定义和准则,像BSD、MIT和Apache协议就被OSI收录。

    OSI根据OSD(开放源代码定义)对开源许可证进行审核。

  • FSF:FSF(Free Software Foundation)也是一个非营利组织,致力于推广自由软件理念,并维护用户权益;

    FSF根据FSD(自由软件定义)对开源许可证进行审核

  • SPDX:SPDX(Software Package Data Exchange)是一个旨在标准化软件组件和许可证信息的组织。

5.2. 分类

  • 著佐权型许可证:著佐权许可证更要求使用者修改后的衍生作品必须要以同等的授权方式(除非许可证或者版权声明里面例外条款所规定的外)释出以回馈社会。

    • 强著佐权型许可证:GPL(General Public License)衍生作品也需要以GPL许可证发布,不允许修改后和衍生的代码作为闭源商业软件发布和销售
    • 弱著佐权型许可证:LGPL(Lesser General Public License)比GPL许可证宽松,允许商业软件通过类库引用方式使用LGPL类库而不需要开源商业软件的代码,但是如果修改LGPL许可证的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL许可证。

    一般将使用著佐权型许可证的开源软件称之为Copyleft软件

  • 宽松型许可证:宽松型许可证是一种保证使用、修改、再分发的自由,同时授权将衍生软件专有化的许可证。

    宽松型许可证限制较少,通常仅要求开源软件使用者保留指定的声明信息。Apache许可证和BSD许可证就是宽松型许可证,允许使用者在开源代码基础上进行二次开发并闭源销售,对商业十分友好。

6. 八大主流开源许可证

6.1. 强著佐权型许可证 GPL 2.0(GNU General Public License 2.0)

  • 分发GPLv2软件或其衍生作品时,必须提供源代码或者提供获取源代码的途径;
  • 任何基于GPLv2软件的衍生作品必须在GPLv2下发布,确保衍生作品也保持开源;
  • GPLv2具有较强的copyleft特性,与其他许可证的兼容性有限。例如,它与后来的GPLv3在某些条款上不兼容,除非明确指出“GPLv2或任何后来的版本”。

涉及侵权GPL 2.0许可证的案件

6.2. 强著佐权型许可证 GPL 3.0(GNU General Public License 3.0)

  • 在分发GPLv3许可的软件时,必须提供源代码或者提供获取源代码的途径;
  • GPLv3明确禁止任何尝试使用软件专利来限制其他用户运行和分发软件的行为;
  • GPLv3包含特定的条款来防止“数字版权管理”(DRM)技术限制GPLv3软件的使用。要求分发有硬件限制的GPL软件时,必须提供必要的“安装信息”,以便用户能够运行软件的修改版本。

6.3. 著佐权型许可证 AGPL 3.0(Affero General Public License 3.0)

  • 为了Copyleft条款能应用于在网络上运行的应用程式(如Web应用),从而避免有人以应用服务提供商方式逃避GNU通用公众特许条款;
  • 如果软件通过网络作为服务提供给用户,服务提供者必须提供软件的源代码。

6.4. 弱著佐权型许可证 LGPL 3.0(Lesser General Public License LGPL 3.0)

  • 是GNU为了得到更多的甚至是商用软件开发商的支持而提出的;
  • 允许商业软件通过类库引用方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售;
  • 但是如果修改LGPL下的软件代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL许可证。

6.5. 弱著佐权型许可证 MPL(The Mozilla Public License)

Netscape公司认为GPL许可证没有很好地平衡开发者对源代码的需求和他们利用源代码获得的利益,于是申请了MPL许可证:

  • MPL允许免费重发布、免费修改,但要求修改后的代码著作权权归软件的创建者;
  • 对于经MPL许可证发布的源代码的修改也要以MPL许可证的方式再许可出来,以保证其他人可以在MPL的条款下共享源代码。

6.6. 宽松型型许可证 Apache License

由Apache软件基金会发布,主要特点如下:

  • 复制或发布衍生作品时,需要提供许可证副本,修改声明,先前作品的著作权、专利、商标的权属声明等文件。对修改过的文件进行声明;
  • 使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

6.7. 宽松型型许可证 BSD(Berkly Software Distribution)

  • BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售;
  • 二次发布时需要保留原来代码的著作权声明和许可证原文以及免责声明;
  • 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

6.8. 宽松型型许可证 MIT(Massachusetts Institute of Technology)

  • 作者只想保留著作权,无其他任何限制。
  • 必须在你的发行版里包含原许可证的声明,无论你是以二进制发布的还是以源代码发布的。

见到使用了 Apache、BSD、MIT协议类型的开源软件,闭上眼选就对了!(哈哈,当然是开玩笑了:也要考虑下软件的活跃度,以及有无公开高危漏洞因素)

7. 参考

[1] 迈向开源世界:如何正确看待开源软件,避免六大误区
[2] 最高人民法院知识产权法庭裁判要旨摘要(2023)


推荐阅读:

  • 迈向开源世界:如何正确看待开源软件,避免六大误区
  • 供应链安全项目in-toto开源框架详解
  • 从SLSA看软件供应链面临哪些威胁及对应解决方案
  • 解读 | Synopsys发布2024年开源安全和风险分析报告OSSRA
  • 剖析Google SLSA供应链完整性框架
  • 「 网络安全常用术语解读 」软件物料清单SBOM详解
  • 「 网络安全常用术语解读 」SBOM主流格式CycloneDX详解
  • 「 网络安全常用术语解读 」SBOM主流格式SPDX详解
  • 「 网络安全常用术语解读 」SBOM主流格式CycloneDX详解
  • 「 网络安全常用术语解读 」软件物料清单SBOM详解
  • 「 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/638688.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++中获取int最大与最小值(补)

上文中,我们学习了C中获取int最大与最小值的两种方法:C库和移位运算,这篇文章将解决在移位运算中遇到的各种报错,并提出一种新的生成int最值的方法 上文链接:http://t.csdnimg.cn/cn7Ad 移位运算取最值常见报错 Dev…

【Qt】修改QToolButton图标颜色

1. 目的 修改QToolButton的图标颜色,单一颜色,效果类似于Qt Creator左边选项卡。 2. 代码 QIcon MainWindow::setIconColor(QIcon icon, QColor color) {QPixmap pixmap icon.pixmap(QSize(64,64));QPainter painter(&pixmap);painter.setCompo…

Isaac Sim仿真平台学习(1)认识Isaac Sim

0.前言 上一个教程中我们下载好了Isaac Sim,这一章我们将来简单了解一下Isaac Sim平台。 isaac Sim仿真平台安装-CSDN博客 1.Isaac Sim是啥? What Is Isaac Sim? — Omniverse IsaacSim latest documentation Isaac Sim是NVDIA Omniverse平台的机器…

Window GDI+ API有BUG?GetBounds测不准?

文章目录 GraphicsPath的GetBounds测不准?方法一:GetBounds ()实战 方法二:GetBounds(Matrix)实战 GraphicsPath的GetBounds测不准?实战 .NET 版本的问题?C也一样,不是.NET的问题怀疑人生MiterLimit惹得祸完美结果结束…

深入解析力扣161题:相隔为 1 的编辑距离(逐字符比较与动态规划详解)

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

Zabbix实现7x24小时架构监控

上篇:https://blog.csdn.net/Lzcsfg/article/details/138774511 文章目录 Zabbix功能介绍Zabbix平台选择安装Zabbix监控端部署MySQL数据库Zabbix参数介绍登录Zabbix WEBWEB界面概览修改WEB界面语言添加被控主机导入监控模板主机绑定模板查看主机状态查看监控数据解…

python实现对应分析的随笔记

文档来源: Correspondence analysis 1 对应分析 参考: SPSS(十二)SPSS对应分析(图文数据集)案例6:SPSS–对应分析10 对应分析 对应分析的实质(理论很复杂,但是结果很明…

创新工具|AI革新内容营销:策略、工具与实施指南

探索如何利用人工智能(AI)提升内容营销策略,从SEO优化到个性化推荐。本指南详细介绍了11款顶尖AI工具,旨在帮助中国的中高级职场人士、创业家及创新精英高效地策划和生成引人入胜的内容,同时确保内容的专业性、权威性和…

靶机hackNos Os-Bytesec练习报告

hackNos: Os-Bytesec靶机练习实践报告 下载地址*😗 https://drive.google.com/open?id1yBuih2CsBx45oTUDpFr4JldrzkaOTTeZ https://download.vulnhub.com/hacknos/Os-ByteSec.ova https://download.vulnhub.com/hacknos/Os-ByteSec.ova.torrent ( Magnet) …

爬虫基础1

一、爬虫的基本概念 1.什么是爬虫? 请求网站并提取数据的自动化程序 2.爬虫的分类 2.1 通用爬虫(大而全) 功能强大,采集面广,通常用于搜索引擎:百度,360,谷歌 2.2 聚焦爬虫&#x…

集合框框框地架

这一次来介绍一下常用的集合: 首先是两种集合的《家庭系谱图》: 接下来介绍一下集合的种类: Collection Set SetTreeSet:基于红⿊树实现,⽀持有序性操作,例如:根据⼀个范围查找元素的操作。但…

LAMDA面试准备(2024-05-23)

有没有学习过机器学习,提问了 FP-Growth 相比 Apriori 的优点 1. 更高的效率和更少的计算量(时间) FP-Growth 通过构建和遍历 FP-树 (Frequent Pattern Tree) 来挖掘频繁项集,而不需要像 Apriori 那样生成和测试大量的候选项集。具…

这种电脑原来这么耗电……震惊了粉丝小姐姐

前言 在今年1月份的时候,一位来自重庆的小姐姐加了小白,咨询电脑的问题: 哦豁,这个电脑看着确实闪闪发光,是真的很漂亮~(嗯,小姐姐也很漂亮) 电脑无法开机,按…

Vue从入门到实战Day12

一、Pinia快速入门 1. 什么是Pinia Pinia是Vue的最新状态管理工具,是Vuex的替代品 1. 提供更加简单的API(去掉了mutation) 2. 提供符合组合式风格的API(和Vue3新语法统一) 3. 去掉了modules的概念,每一…

LiveGBS流媒体平台GB/T28181用户手册-用户管理:添加用户、编辑、关联通道、搜索、重置密码

LiveGBS流媒体平台GB/T28181用户手册-用户管理:添加用户、编辑、关联通道、搜索、重置密码 1、用户管理1.1、添加用户1.2、编辑用户1.3、关联通道1.4、重置密码1.5、搜索1.6、删除 2、搭建GB28181视频直播平台 1、用户管理 1.1、添加用户 添加用户,可以配置登陆用户…

自动驾驶---Tesla的自动驾驶技术进化史(PerceptionPlanning)

1 前言 笔者在专栏《自动驾驶Planning模块》中已经详细讲解了传统自动驾驶Planning模块的内容:包括行车的Behavior Planning和Motion Planning,以及低速记忆泊车的Planning(最开始有15篇,目前逐渐更新到17篇)。读者对整…

linux:信号深入理解

文章目录 1.信号的概念1.1基本概念1.2信号的处理基本概念1.3信号的发送与保存基本概念 2.信号的产生2.1信号产生的五种方式2.2信号遗留问题(core,temp等) 3.信号的保存3.1 信号阻塞3.2 信号特有类型 sigset_t3.3 信号集操作函数3.4 信号集操作函数的使用 4.信号的处理4.1 信号的…

SSRF攻击技术

1、SSRF形成原因 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的,所有可以通过它攻击外网无法访问的内部系…

人类交互2 听觉处理和语言中枢

人类听觉概述 人类听觉是指通过耳朵接收声音并将其转化为神经信号,从而使我们能够感知和理解声音信息的能力。听觉是人类五种感觉之一,对我们的日常生活和交流至关重要。 听觉是人类交流和沟通的重要工具。通过听觉,我们能够听到他人的语言…

inventor 2021 Inventor 无法访问您的许可。网络许可不可用 也会出现在其他软件上

错误提示一般如下图 Inventor 无法访问您的许可。 无法访问您的许可 最常见的原因有: 未连接到 Internet许可服务器不工作许可服务器找不到有效许可 您可以执行以下操作: 检查是否连接到 Intemnet停止/重新启动许可服务器 如需进一步帮助,您可以: -与 CAD或IT管理…