开源协议简介和选择

软件国产化已经提到日程上了,先来研究一下开源协议。

在这里插入图片描述

引言

在追求“自由”的开源软件领域的同时不能忽视程序员的权益。为了激发程序员的创造力,现今世界上有超过60种的开源许可协议被开源促进组织(Open Source Initiative)所认可,确保了开源工作者的权益。其中“木兰”协议作为中国的首个开源协议,尤为引人注目。
《一文深入浅出理解国产开源木兰许可系列协议》

开源协议的重要性

开源协议规定了使用开源软件时的权利与责任,为使用者设定了界限。虽然这些协议不具有法律效力,但在涉及软件版权纠纷时,它们是关键的证据。对于那些计划编写开源软件的人,了解并选择合适的开源协议是保护自己软件权益的关键。

主流的开源协议

《开源协议是什么?有哪些?如何选择?》

  1. GNU GPL(GNU通用公共许可证)
    遵循GPL的开源软件数量庞大,包括Linux系统在内的大多数开源软件都基于这个协议。GPL的主要特点包括复制自由、传播自由、收费传播和修改自由。但请注意,GPL不适合用于商业软件。
    《GPL开源软件能商用吗?》

  2. BSD(Berkeley Software Distribution)协议
    BSD给予用户极大的权利,允许他们使用、修改和重新发布遵循该许可的软件。如果再发布的软件中包含源代码,必须继续遵循BSD许可协议。BSD对商业友好,许多公司首选它作为开源许可。

  3. Apache许可证版本协议
    Apache协议类似于BSD,适用于商业软件。它为开发人员提供版权及专利许可,同时允许用户拥有修改代码及再发布的自由。Apache、Hadoop、MongoDB等项目都基于该许可协议研发。

  4. MIT(Massachusetts Institute of Technology)协议
    MIT是限制最少的开源许可协议之一。只要开发者在修改后的源代码中保留原作者的许可信息即可。许多商业软件使用MIT作为其开源许可。

  5. GUN LGPL(GNU宽通用公共许可证)
    LGPL是GPL的一个衍生版本,专为类库设计。它允许商业软件通过类库引用使用LGPL类库,而不必开源其自身的代码。然而,如果修改LGPL代码或其衍生品,所有涉及修改的额外代码和衍生品都必须采用LGPL协议。

如何选择合适的开源协议

面对众多的开源协议,如何选择成为关键。开发者应根据软件的目的和预期用途来选择合适的协议。例如,GPL不适合商用软件;而BSD、Apache和MIT则更适合商业环境。同时,也要确保所选的协议与项目的目标和愿景相一致。

乌克兰程序员 Paul Bagwell 画了一张分析图,说明应该怎么选择开源协议。
在这里插入图片描述

结语

开源软件的繁荣离不开合适的许可协议来保障各方权益。通过了解并选择合适的协议,我们可以促进开源社区的健康与繁荣,激发更多的创新与合作。

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

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

相关文章

SpingBoot的项目实战--模拟电商【3.购物车模块】

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringBoot电商项目的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.功能需求 二.代码编写 …

Git(2):Git环境的安装

本教程里的git命令例子都是在Git Bash中演示的,会用到一些基本的linux命令,在此为大家提前列举: ls/ll 查看当前目录cat 查看文件内容touch 创建文件vi vi编辑器(使用vi编辑器是为了方便展示效果,学员可以记事本、edi…

使用异构图学习破解推荐系统 - 第 1 部分

Lokesh Sharma – Medium 一、说明 所以,这是独家新闻:异质图拥有一个充满潜力的世界,而常规图却无法做到这一点。传统的同构图很难处理不同关系和边类型的复杂性。现在是大炮的时候了——先进的架构可以解决具有多种边缘和关系类型的数据集的…

Nacos学习思维导图

一、服务注册 参考文档:http://www.bryh.cn/a/118936.html https://blog.csdn.net/Saintmm/article/details/121981184 二、服务续约 参考文档:http://www.bryh.cn/a/118936.html https://blog.csdn.net/Saintmm/article/details/121981184 三、服务…

清风数学建模排版

Overview 链接:https://pan.baidu.com/s/11QBw3zBFNicwQWvWCfW1Gg?pwdepnz 提取码:epnz Latex 范文排版练习 b站刘海洋latex工作室,待还愿 Word基础 Word VBA,待还愿 fnF4:重复上一步操作 ctrlY:恢…

DispatcherServlet请求处理流程

前言 DispatcherServlet 是 Spring MVC 的核心类,它本质是一个 Servlet,负责接管 HTTP 请求并把它分发给对应的处理器处理,最后处理响应结果渲染页面。 DispatcherServlet 本身并不复杂,它提供了一个模板方法doDispatch()来处理请…

进阶学习——Linux系统中重点‘进程’

目录 一、程序和进程的关系 1.程序 2.进程 2.1线程 2.2协程 3.进程与线程的区别 4.总结 4.1延伸 5.进程使用内存的问题 5.1内存泄漏——Memory Leak 5.2内存溢出——Memory Overflow 5.3内存不足——OOM(out of memory) 5.4进程使用内存出现…

如何正确使用docker搭建靶场--pikachu

在Linux中搭建靶场——pikachu 1.开启docker systemctl start docker 2.查看docker状态 systemctl status docker 3.查看docker存在那些镜像 docker images 4.拉取镜像,这里是以pikachu为例因此需要一个php5的版本 (1)打开代理&#xff…

【Nodejs】基于Promise异步处理的博客demo代码实现

目录 package.json www.js db.js app.js routes/blog.js controllers/blog.js mysql.js responseModel.js 无开发,不安全。 这个demo项目实现了用Promise异步处理http的GET和POST请求,通过mysql的api实现了博客增删改查功能,但因没有…

为什么亚马逊卖家一定要有独立站?新手低成本快速搭建跨境电商独立站完整图文教程

目录 前言:为什么亚马逊卖家一定要有独立站? 为什么不选Shopify建站? 效果展示 一、购买域名 二、购买主机托管 三、搭建网站 前言:为什么亚马逊卖家一定要有独立站? 最近不少卖家朋友来问独立站建站方面的问题…

安全防御之授权和访问控制技术

授权和访问控制技术是安全防御中的重要组成部分,主要用于管理和限制对系统资源(如数据、应用程序等)的访问。授权控制用户可访问和操作的系统资源,而访问控制技术则负责在授权的基础上,确保只有经过授权的用户才能访问…

前端插件库-VUE3 使用 vue-codemirror 插件

VUE3 插件 vue-codemirror 使用步骤和实例、基于 CodeMirror ,适用于 Vue 的 Web 代码编辑器。 第一步:安装 vue-codemirror & codemirror 包 , 以及语言包 npm install codemirror --save npm install vue-codemirror --savenpm insta…

VS2022 创建windows服务-Windows Service

vs2022 2023等版本出现,似乎被忘记的早期的Windows Service服务是如何创建的呢?本文介绍了如何用新版本VS进行C#创建、安装、启动、监控、卸载简单的Windows Service 的内容步骤和注意事项。windows服务可以在windows中自动运行。 一、创建一个Windows …

基于价值认同的需求侧电能共享分布式交易策略(matlab完全复现)

目录 1 主要内容 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序完全复现《基于价值认同的需求侧电能共享分布式交易策略》,针对电能共享市场的交易机制进行研究,提出了基于价值认同的需求侧电能共享分布式交易策略,旨在降低电力市…

电锯切割狂

欢迎来到程序小院 电锯切割狂 玩法:把木块切成等分的碎片,每关都会有切割次数,木块数,切割越均匀分数越搞, 有简单、正常、困难、专家版,快去解锁不同版本进行切割吧^^。开始游戏https://www.ormcc.com/pl…

MySQL的基础架构之内部执行过程

MySQL的逻辑架构图 如上图所示,MySQL可以分为Server层和存储引擎层两部分: 1)Server层涵盖了MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎…

Day22 112路径总和 113路径总和II 106中后构造二叉树/中前构造二叉树 654最大二叉树

给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 递归: 可以采用深度优先的递归方式,前中后序都可以(因为中节点没有处理逻辑)。首先确定参…

放大镜Scratch-第14届蓝桥杯Scratch省赛真题第3题

3. 放大镜(50分) 评判标准: 10分:满足"具体要求"中的1); 15分:满足"具体要求"中的2); 25分,满足"具体要求"中的3&#xff…

C#高级:Lambda表达式分组处理2(WITH ROLLUP关键字)

目录 一、问题引入 二、with rollup查询 三、去掉多余数据 四、拓展 一、问题引入 查询SQL后结果如下,字段分别是用户、项目、批次、工作时间: SELECT UserID,ProjectID,ProBatchesID,WorkHour FROM MAINTABLE GROUP BY HourFiller ,ProjectID ,…

【ESP32接入国产大模型之文心一言】

1. 怎样接入文心一言 随着人工智能技术的不断发展,自然语言处理领域也得到了广泛的关注和应用。在这个领域中,文心一言作为一款强大的自然语言处理工具,具有许多重要的应用价值。本文将重点介绍如何通过ESP32接入国产大模型之文心一言api&am…