不同类型的开源许可证

不同类型的开源许可证

什么是开源许可证

最简单的解释是,开源许可证是计算机软件和其他产品的许可证,允许在定义的条款和条件下使用、修改或共享源代码、蓝图或设计。开源并不意味着该软件可以根据需要使用、复制、修改和分发。根据开源许可证的类型,我们可能可以修改源代码以满足我们的需求或修复任何问题。许可证将决定我们对软件及其源代码的自由。

在讨论开源许可证时,不考虑出于个人用途而进行的非商业重新分发或源代码修改。但作为开发人员和用户,我们绝对必须了解这些开源许可证以及这些用途。因此,请继续阅读本文,了解最常见的许可证以及它们如何寻求保护软件的作者和用户。

不同的开源许可证:Copyleft 和 Permissive

目前有超过 200 个开源许可证,但一般来说,它们都分为两个主要类别。这些是Permissive(许可)和Copyleft(拥有著作权)。

在这里插入图片描述

Permissive

Permissive允许我们以最小的限制复制、修改、重新组合和重新分发作品。通常,用户在重新分发许可软件时只需要包含“原始版权声明”和“许可文本的副本”。

最流行的许可式开源许可证是Apache、MIT、BSD。

Apache

Apache许可证是 Apache 软件基金会 (ASF) 发布的开源许可证。

1995 年 Apache Group 发布了其许可证的第一个版本,并于 2004 年发布了 Apache License 2.0 版。

在 Apache License 下,我们可以自由地使用、修改、分发和销售软件,而无需担心软件的使用情况。

如果我们想重新分发带有 Apache 许可组件的软件,那么我们只需在我们修改的所有文件中添加“许可证副本”、“明确的 Apache 归属”和“修改通知”即可。

与其他Permissive许可证不同,此 Apache 许可证明确向用户授予可应用于版权和专利的权利(Apache 许可证描述了实践代码贡献者专利声明的权利)。
Apache License 2.0 等宽松的开源许可证越来越受欢迎。

MIT

MIT许可证是由麻省理工学院创建的开源许可证。

在MIT许可证下,我们可以自由修改和分发软件的代码,只要添加“原始版权声明”和“许可证本身的副本”。

尽管 MIT 许可证非常简单、简短,但一些开发人员尽量避免这样做,因为它没有明确授予专利权。

jQuery、Node.js、Lua、Ruby on Rails、X Windows System (X11)都使用了 MIT。

BSD

加州大学伯克利分校于 1980 年创建了BSD 许可证的第一个版本。目前,BSD 许可证有三种变体(原始 BSD 许可证、修改版 BSD 许可证 — 3 条款和简化 BSD 许可证/FreeBSD 许可证 — 2 条款)。

在BSD许可证下,我们可以自由地修改和分发源代码或二进制格式的软件代码,只要包含“许可证全文”和“原始版权声明”。

Quill、level DB、D3.js等都使用了BSD 3-Clause License。

尽管 BSD 许可证看起来与 MIT 许可证相同,但目前 BSD 许可证不如其他许可许可证(如 MIT 和 Apache License 2.0)受欢迎。

Permissive 许可用例

最近的趋势表明,多年来软件开发人员倾向于使用 Permissive 许可证而不是 Copyleft 许可证。选择 Permissive 许可证而不是 Copyleft 许可证的原因有很多:

  • 获得个人、企业的更多贡献并最大化软件的使用:
    当考虑到希望将代码用于商业目的的公司的角度时,他们通常更喜欢宽松的许可证而不是 Copyleft,因为在宽松的许可证下,他们将能够将其衍生作品转化为专有作品并将其用于商业目的。

  • 保护代码很少的软件包:
    自由软件基金会(FSF)建议对少于 300 行的软件使用Permissive 许可证。因此,根据 FSF 的建议,具有 Permissive 许可证的小型软件比 Copyleft 许可证吸引更多的开发人员。

  • 如果软件的目的不是为了赚钱:
    就个人而言,如果有人不想赚取利润,但想创建有价值的软件,最好的办法是使用许可许可证。

Copyleft 许可证

Copyleft许可证还为我们提供与Permissive 许可证相同的权限。但它要求我们在 Copyleft 许可下发布完整的作品。换句话说,如果我们在 Copyleft 许可证(例如 GPL)下发布软件库,并且其他人想要将我们的软件库与另一个专有库一起使用,他们将不会被允许这样做。需要 GPL 才能在 GPL 许可证下构建整个程序。

GNU 通用公共许可证 (GPL)

GPL 许可证是最流行的开源许可证。自由软件基金会 (FSF) 的创始人 Richard Stallman 编写了 GPL 许可证,以保护 GNU 软件免于成为专有软件。

如果我们在软件中使用了 GPL 组件,则意味着我们的整个软件被视为“基于 GPL 的作品”,因为:

我们无权要求该软件的专利或版权。此外,我们还有义务“显示版权声明”、“免责声明”、“完整的 GPL 声明”和“GPL 副本”。

我们无权更改许可或添加附加条款和条件。

我们有互惠义务。换句话说,我们有义务发布源代码以及修改和分发整个代码的所有权利。

Red Hat、GIMP、Unix shell Bash使用GPL v3 许可证。

尽管 Copyleft 许可证不如 Permissive 许可证受欢迎,但 GPL 许可证仍然在开源生态系统中发挥着至关重要的作用。

Affero GPL (AGPL)

顾名思义,Affero GPL是 GNU GPL 的一部分,包括 LGPL、GPL v2、GPL v3。所有这些许可证都是 Richard Stallman 的 GNU 项目的一部分。

Henry Poole 和 Stallman 认为GPL 中存在“应用服务提供商(ASP)漏洞”。然后克服了这个问题,关于 AGPL 许可证的想法就建立了。

AGPL 许可证基于 GPL v3,并且 AGPL 许可证具有与 GPL v3 相同的要求。但它还有一个关于通过网络进行远程访问的附加声明。

GNU 项目建议任何程序员在其软件通过网络运行时使用 AGPL 许可证。然而,AGPL 并不是一个很流行的开源许可证。目前,它只使用了不到所有开源项目的 1%。

Copyleft 许可证用例

目前,许可许可证是开源软件中最常用的许可证类型。但我们不能忘记 Copyleft 许可证也发挥着至关重要的作用。GPL 系列被认为是最常用的 OSS 许可证之一,因为例如 Linux 内核也是使用 Copyleft 许可证开发的。

如果我们的公司使用 Copyleft 开源许可证开发一个程序并分发该程序,则任何人都可以修改和使用它。但公司可以随时更改这些内容,并且这些更改必须公开。因此,如果我们满足以下条件,Copyleft 许可证可能最适合我们的软件:

  • 希望与开源社区分享我们的改进。
  • 喜欢在构建软件时与他人协作。
  • 想要将项目商业化并赚取利润。
  • 不想让其他人使用我们的代码来制作专有软件。

结论

本文解释一下令人困惑的开源许可证,并尝试简化200多个许可证中的几个开源许可证。这仅用于讲解目的,我们可以自行研究以找出我们应该选择的最佳开源许可证。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【批处理常用命令及用法大全】

文章目录 1 echo 和 回显控制命令2 errorlevel程序返回码3 dir显示目录中的文件和子目录列表4 cd更改当前目录5 md创建目录6 rd删除目录7 del删除文件8 ren文件重命名9 cls清屏10 type显示文件内容11 copy拷贝文件12 title设置cmd窗口的标题13 ver显示系统版本14 label 和 vol设…

笔记61:注意力提示

本地笔记地址:D:\work_file\(4)DeepLearning_Learning\03_个人笔记\3.循环神经网络\第10章:动手学深度学习~注意力机制 a a a a a a a a

工艺系统所管理数字化实践

摘要 本文介绍了上海核工程设计研究院在数字化转型方面的实践,包括业务数字化和管理数字化两个方面。业务数字化方面,该院通过开发小工具改进工作流程。管理数字化方面,该院采用零代码平台集中管理管道力学信息相关模型和数据,并…

函数保留凸性的一些运算,限制为一条线

凸优化在学术研究中非常重要,经常遇到的问题是证明凸性。常规证明凸性的方式是二阶导数的黑塞矩阵为半正定,或者在一维函数时二阶导数大于等于零。但很多时候的数学模型并不那么常规、容易求导的,若能够知道一些保留凸性的运算,将…

【Qt之QSqlRelationalDelegate】描述及使用

描述 QSqlRelationalDelegate类提供了一个委托,用于显示和编辑来自QSqlRelationalTableModel的数据。 与默认委托不同,QSqlRelationalDelegate为作为其他表的外键的字段提供了一个组合框。 要使用该类,只需在带有QSqlRelationalDelegate实例…

用flutter 写一个专属于儿子的听书的app

背景: 儿子最近喜欢上了用儿童手表听故事,但是手表边里的应用免费内容很少,会员一年要300多,这么一笔巨款,怎能承担的起,所以打算自己开发一个专属于儿子的听书app。 最终效果: 架构: 后端由两…

Python工具Anaconda+Pycharm安装教程详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、介绍二、Anaconda的安装三、Pycharm的安装四、环境配置五、python库文安装件——以opencv为例关于Python技术储备一、Python所有方向的学习路线二、Python基础学…

ChatGPT成了背锅侠:利用AI做蹭热点视频

我是卢松松,点点上面的头像,欢迎关注我哦! 在抖音\视频号上已经有很多人利用ChatGPT做热点视频的案例了,视频都是点赞大几千、几万。看完本文,你会略知一二,如下图所示: 这个视频&#xff0c…

Elk:filebeat 日志收集工具和logstash

Elk:filebeat 日志收集工具和logstash Filebeat是一个轻量级的日志手机工具,所使用的系统资源比logstash部署和启动时使用的资源要小得多 Filebeat可以在非java环境使用,他可以代理logstash在非java环境上收集日志 缺点 Filebeat无法实现数据的过滤,一般是结合l…

建立健全涉密测绘外业安全保密管理制度,落实监管人员和保密责任,外业所用涉密计算机纳入涉密单机进行管理

建立健全涉密测绘外业安全保密管理制度,落实监管人员和保密责任,外业所用涉密计算机纳入涉密单机进行管理 1.涉密测绘外业安全保密管理制度 2.外业人员及设备清单(包括:外业从业人员名单、工作岗位,外业设备名称、密…

MNIST手写数字识别

本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在Pytorch&#xff…

k8s中Pod控制器简介,ReplicaSet、Deployment、HPA三种处理无状态pod应用的控制器介绍

目录 一.Pod控制器简介 二.ReplicaSet(简写rs) 1.简介 (1)主要功能 (2)rs较完整参数解释 2.创建和删除 (1)创建 (2)删除 3.扩容和缩容 &#xff08…