[每周一更]-(第89期):开源许可证介绍

在这里插入图片描述

开源代码本就是一种共享精神,一种大无畏行为,为了发扬代码的魅力,创造更多的价值,让爱传递四方,让知识惠及更多人;

写文章也是一种共享精神,让知识传播出去。

介绍下开源中不同许可证的内容限制。

开源代码和写文章,本质上都存在版权等问题,大家都是友好交流沟通,以学习为目的,创造良性的循环。
在这里插入图片描述

开源许可证是规定软件或其他创作作品如何被使用、修改和分发的法律条款。选择适当的开源许可证对于开源项目的成功和社区的发展至关重要。以下是一些常见的开源许可证及它们的区别:

LGPL(GNU宽通用公共许可证):

  • 特点: 允许将LGPL的代码与非GPL或LGPL代码混合使用,但对于任何修改的LGPL代码,要求公开源代码。
  • 适用场景: 适用于库或框架,希望鼓励开发者修改和分发修改的情况。

MPL(Mozilla公共许可证):

  • 特点: 要求派生作品的源代码必须公开,但可以与其他许可证混合使用;允许私有修改和分发,但要求任何修改的部分必须使用MPL、GPL或LGPL进行再授权。
  • 适用情景: 适用于要求保持开放性的项目,同时允许与其他许可证合并。

GPL(GNU通用公共许可证):

  • 特点: 要求任何基于或修改的项目也必须使用GPL,确保衍生作品也是开源的。
  • 适用情景: 适用于强调自由共享的项目,可能限制商业项目的使用。

BSD许可证(2-Clause和3-Clause):

  • 特点: 允许使用、修改和分发,不带有像GPL那样的传染性。
  • 适用情景: 适用于需要保留版权和许可声明的项目,对商业项目友好。

MIT许可证:

  • 特点: 简洁明了,允许自由使用、修改和分发,只要包含原始版权和许可声明。
  • 适用情景: MIT许可证非常灵活,适用于几乎所有类型的项目,包括商业项目。

Apache许可证:

  • 特点: 允许使用、修改和分发,包含专利授予条款,要求在派生项目中包含原许可证和通告。
  • 适用情景: 适用于大规模的开源项目,希望保护专利权和鼓励贡献。

Affero通用公共许可证(AGPL):

  • 特点: 类似于GPL,但在用户通过网络提供软件服务时也要求公开源代码。
  • 适用场景: 适用于在Web上提供服务的项目,希望确保修改的代码也是开源的。

AGPL(GNU Affero通用公共许可证):

  • 特点: 类似于GPL,但特别适用于网络服务,要求通过网络提供的修改版本也必须开源。
  • 适用情景: 适用于希望确保网络服务的用户也能获得开源代码的项目。

Unlicense:

  • 特点: 放弃所有版权和相关权利,允许任何使用、修改和分发,无需提供原版权声明。
  • 适用情景: 适用于希望放弃所有权利的项目,对于公共领域贡献。
    选择合适的开源许可证取决于项目的性质、目标以及你对派生项目的期望。在选择许可证时,最好仔细研究每个许可证的具体条款,并在需要时寻求法律意见。

Creative Commons许可协议(许可证):

  • 特点: 适用于文档、艺术品等非软件项目,有不同版本和变种。
  • 适用情景: 用于规定创作作品的使用、修改和分发规则。

Creative Commons(CC)提供了多种许可协议,允许创作者自定义他们对作品的共享方式。以下是一些常见的Creative Commons许可协议,每个协议都有不同的组合特征:

  1. 署名(Attribution,BY):
    • 允许他人复制、分发、展览和执行作品,甚至是在商业用途下,只要作者或许可人得到适当的署名。
  2. 非商业性使用(NonCommercial,NC):
    • 允许他人在非商业性的情况下使用作品。这意味着作品不能被用于商业目的。
  3. 相同方式共享(ShareAlike,SA):
    • 如果采用了这一要素,那么新创作的作品必须采用相同的许可协议。这确保了新作品也以相似的开放方式共享。
  4. 无衍生物(NoDerivatives,ND):
    • 允许他人下载作品,但不允许对作品进行修改、转换、扩展或以其为基础进行创作。原作品必须以未经修改的形式被分发。
  5. 共享(CC0):
    • 允许创作者放弃所有著作权和相关权利,使作品成为公共领域的一部分。这是最开放的许可方式,允许任何人在任何目的下使用作品,无需署名。

以下是一些常见的Creative Commons许可协议的组合:

  • CC BY(署名): 允许任何目的下的共享、修改、商业使用,只要提供适当的署名。
  • CC BY-SA(署名-相同方式共享): 允许共享、修改、商业使用,只要提供适当的署名,并且新作品采用相同的许可协议。
  • CC BY-NC(署名-非商业性使用): 允许非商业性使用,只要提供适当的署名。
  • CC BY-ND(署名-无衍生物): 允许任何目的下的共享,只要提供适当的署名,但不允许对作品进行修改。
  • CC BY-NC-SA(署名-非商业性使用-相同方式共享): 允许非商业性使用,只要提供适当的署名,并且新作品采用相同的许可协议。
  • CC BY-NC-ND(署名-非商业性使用-无衍生物): 允许非商业性使用,只要提供适当的署名,但不允许对作品进行修改。

以上列举的是常见的几种组合,实际上,Creative Commons提供了更多的组合方式,以便创作者选择适合他们需求的许可协议。

举例:

  • CSDN:CC 4.0 BY-SA(署名-相同方式共享 4.0 国际)
  • 个人博客:CC BY-NC 4.0 DEED(署名-非商业性使用 4.0 国际)

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

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

相关文章

【leetcode】随机链表的复制

大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 点击查看题目 思路: struct Node* copyRandomList(struct Node* head) {struct Node* curhead;//1.copy原链…

【矩阵】【方向】【素数】3044 出现频率最高的素数

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 素数 矩阵 方向 LeetCode 3044 出现频率最高的素数 给你一个大小为 m x n 、下标从 0 开始的二维矩阵 mat 。在每个单元格,你可以按以下方式生成数字: 最多有 8 条路径可以选择:东&am…

Nginx基础知识

文章目录 简介安装Ubuntu安装CentOS安装windows 常用命令配置文件 nginx.confnginx -V 反向代理 & 负载均衡 简介 Web服务器,高性能,Http与反向代理的服务器。启动后浏览器输入 http://localhost/ 显示欢迎页面就是启动成功了。在nginx安装目录下cm…

【AntDesign】解决嵌套section或layout中,h1字体比h2小问题

问题&#xff1a;以下情况均会导致h1比h2小&#xff0c;具体原因是浏览器默认样式里面&#xff0c;对h1不同层级设置了特殊的样式&#xff0c; <section class"css-dev-only-do-not-override-12q8zf4 ant-layout"><section class"css-dev-only-do-not…

THINKPHP 跨域报错解决方案

报错&#xff1a;has been blocked by CORS policy: Response to preflight request doesnt pass access control check: No Access-Control-Allow-Origin header is present on the requested resource. 环境&#xff1a;thinkphp6 nginx 今天和VUE配合调用接口的时候发现跨…

Maven-私服(黑马学习笔记)

前面我们在讲解多模块开发的时候&#xff0c;我们讲到我们所拆分的模块是可以在同一个公司各个项目组之间进行资源共享的。这个模块的资源共享&#xff0c;就需要通过我们接下来所讲解的Maven的私服来实现。 首先我们先介绍一下什么是私服&#xff0c;以及它的作用是什么。再来…

瑞吉苍穹外卖如何拓展?已经经过不同公司多轮面试。项目中会问到哪些问题?以及问题如何解决?

别催了&#xff0c;别催了&#xff0c;先收藏吧。 作者大大正在加班加点完成。 文章会尽快发布&#xff0c;关注收藏&#xff0c;尽请期待。 想要加入并查阅作者的知识库可以联系作者 不要白嫖&#xff0c;通过后&#xff0c;附上关注和收藏截图。 已有众多小伙伴加入 目前…

mysql读写分离方案

什么是读写分离&#xff1f; 读写分离就是将对数据库的读操作和写操作分散到不同的数据库节点上 如何实现读写分离&#xff1f; 因为更多的读多写少&#xff0c;所以为了缓解主库的读能力从而引入了从库&#xff0c;这样就可以减少主库的负担&#xff0c;从而解决了应用的并发…

【教程】移动互联网时代的APP上架流程和要点

目录 摘要 引言 正文 一、应用商店注册 二、准备APP材料 三、打包上传App 摘要 本文将介绍移动应用程序上架的基本流程和要点&#xff0c;包括应用商店注册、APP材料准备、打包上传App、APP审核以及发布APP的详细步骤。此外&#xff0c;还会提到利用appuploder工具简化i…

【JavaScript】面试手撕节流

引入 上篇我们讲了防抖&#xff0c;这篇我们就谈谈防抖的好兄弟 – 节流。这里在老生常谈般的提一下他们两者之间的区别,顺带给读者巩固下。 PS: 开源节流中节流与这个技术上的节流&#xff0c;个人认为本质上是一样的。 开源节流的节流指的是节省公司的金钱开支。前端技术上的…

Windows的Docker-Desktop安装与问题总结

目录 Docker-Desktop安装步骤 环境配置 Docker-Desktop安装问题总结 问题1&#xff1a;docker-desktop setting界面一直加载转圈 问题2&#xff1a;docker镜像的存储位置变更&#xff08;防止C盘空间不足&#xff09; 参考文献&#xff1a; Docker-Desktop安装步骤 环境…

Unity(第十八部)物理力学,碰撞,触发、关节和材质

1、重力 刚体组件 英文中文描述RigidBody刚体组件physics->rigidbody &#xff0c;刚体组件使一个物体有了质量&#xff0c;重力等。&#xff0c;use gravity 勾选后&#xff0c;物体才会受到重力&#xff0c;会自动下落&#xff0c;取消勾选就不会。&#xff0c;&#xf…

计算机网络物理层知识点总结

本篇博客是基于谢希仁编写的《计算机网络》和王道考研视频总结出来的知识点&#xff0c;本篇总结的主要知识点是第二章的物理层。上一章的传送门&#xff1a;计算机网络体系结构-CSDN博客 通信基础 物理层概念 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流&am…

ElasticSearch搜索引擎使用指南

一、ES数据基础类型 1、数据类型 字符串 主要包括: text和keyword两种类型&#xff0c;keyword代表精确值不会参与分词&#xff0c;text类型的字符串会参与分词处理 数值 包括: long, integer, short, byte, double, float 布尔值 boolean 时间 date 数组 数组类型不…

汽车三元催化器的废品项目详解,三元催化再生项目的回收技术教学

一、教程描述 这是一个收废品项目&#xff0c;就收那些别人不懂的&#xff0c;三元催化器的附加值高&#xff0c;只要掌握技术&#xff0c;怎么玩都行的&#xff0c;只是要放得下你的面子。三元催化器&#xff0c;是安装在汽车排气系统中最重要的机外净化装置&#xff0c;它可…

CodeWhisperer安装教导--一步到位!以及本人使用Whisperer的初体验。

CodeWhisperer是亚马逊出品的一款基于机器学习的通用代码生成器&#xff0c;可实时提供代码建议。类似 Cursor 和Github AWS CodeWhisperer 亚马逊科技的CodeWhisperer是Amazon于2021年12月推出的一款代码补全工具&#xff0c;与GitHub Copilot类似。主要的功能有:代码补全注释…

网络编程学习

思维导图 代码练习 TCP实现通信 服务器端代码 #include <myhead.h> #define SER_IP "192.168.152.135" #define SER_PORT 8910 int main(int argc, const char *argv[]) {//&#xff11;创建用于监听的套接字int sfd -1;sfd socket(AF_INET,SOCK_STREAM,0)…

python中自定义报错

class MyError(Exception):def __init__(self,num):#录入的数Exception.__init__(self)self.numnumdef __str__(self):return 这是我定义的第%d个异常 %(self.num)使用 try:raise MyError(4) except MyError as e:print(e)raise 其作用是指定抛出的异常名称&#xff0c;以及异常…

【c++】通讯录管理系统

1.系统功能介绍及展示 2.创建项目 3.菜单实现 4.退出功能实现 5.添加联系人—结构体设计 6.添加联系人—功能实现 7.显示联系人 8.删除练习人—检测联系人是否存在 9.删除联系人—功能实现 10.查找联系人 11.修改联系人 12.清空通讯录 #include <iostream> #include <…

JavaScript类型转换

一些需要注意的数据类型&#xff1a; NaN的数据类型是numberArray、Date、null的数据类型是object未定义变量的数据类型是undefined 自动转换类型&#xff1a;尝试操作一个 “错误” 的数据类型时&#xff0c;会自动转换为 “正确” 的数据类型。 5 null // 返回 5 …