前言

Redis是一款基于BSD协议的开源NoSQL。因此,第一篇文章,我们便来说说几种开源协议。

开源协议是什么?

这里讲的开源协议都是关于计算机软件的,计算机硬件或者其他产品的开源协议我是不懂的,也不是本文的讨论范围。到目前为止,开源协议有成百上千种,这些协议主要是为了告诉软件作者以外的人如何新增、修改代码的,换句话说,开源协议是告诉其他人利益是如何转化和转移的。

下面引述opensource官网的一句话:

Open source licenses are licenses that comply with the Open Source Definition — in brief, they allow software to be freely used, modified, and shared. To be approved by the Open Source Initiative (also known as the OSI), a license must go through the Open Source Initiative’s license review process.

翻译:开源协议,是遵循开源定义的协议,简而言之,开源协议是允许软件被自由使用、修改和分享的协议。一个协议必须通过OSI的协议复核程序,才能被OSI组织所允许。

因此,我在这里简单的总结一下,开源协议是通过了OSI复核的协议

开源协议的种类及概念

开源种类繁多,凡是通过了复核的都可以成为开源协议,下边写出官网推荐的几种比较流行的开源协议:

简称 全称 说明
Apache Apache License 2.0 一个较宽松且简明地指出了专利授权的协议。
BSD3 BSD 3-Clause “New” or “Revised” license 1.需包含原始版权和免责声明,2.未经许可不能用原作者做宣传
BSD2 BSD 2-Clause “Simplified” or “FreeBSD” license 需包含原始版权和免责声明
GPL GNU General Public License 此协议是应用最为广泛的开源协议,拥有较强的版权自由( copyleft )要求。衍生代码的分发需开源并且也要遵守此协议。此协议有许多变种,不同变种的要求略有不同。
LGPL GNU Library or “Lesser” General Public License 就是GPL针对动态链接库放松要求了的版本,即允许非LGPL的代码动态链接到LGPL的模块。注意:不可以静态链接,否则你的代码也必须用LGPL协议开源。
MIT MIT license 最宽松的声明,只需要包含原始版权声明即可,其他的随便弄
MPL Mozilla Public License 2.0 修改版本必须保持其原始版权声明。如果发布了编译后的可执行文件,那么必须让对方可以取得MPL协议下程序的源码。
CDDL Common Development and Distribution License 它是MPL的扩展,允许公共版权使用,无专利费,并提供专利保护,可集成于商业软件中,允许自行发布许可。
EPL Eclipse Public License 类似于GPL的商业友好型协议,主要是用于Eclipse基金会的

上边这个表,主要是说明开源协议的分类和特点的,细节知识,请登录到开源协议的官网,去自行查看。

开源协议的细节

开源协议的细节主要许可(Permissions)、条件(Conditions)、限制(Limitations)三个方面来说明

协议 许可 条件 限制
Apache 商用、分发、修改、专利授权、私用、附加协议 协议和版权信息、声明变更 责任承担、商标使用
BSD3 商用、分发、修改、私用、附加协议 协议和版权信息 责任承担
BSD2 商用、分发、修改、私用、附加协议 协议和版权信息 责任承担
GPL 商用、分发、修改、专利授权、私用 公开源码、协议和版权信息、声明变更 责任承担、附加协议
LGPL 商用、分发、修改、专利授权、私用、附加协议 公开源码、库引用、协议和版权信息 责任承担
MIT 商用、分发、修改、私用、附加协议 协议和版权信息 责任承担
MPL 商用、分发、修改、专利授权、私用、附加协议 公开源码、协议和版权信息 责任承担、商标使用
CDDL
EPL 商用、分发、修改、专利授权、私用、附加协议 公开源码、协议和版权信息 责任承担

图示开源协议

该图由乌克兰程序员Paul Bagwell画的分析图扩展而来:

(尚未最终完成,会持续进行更新该文章,并结合该问题生产相关的程序)

附录:

单词

1.comply[kəmˈplaɪ] vi. 遵从; 依从,顺从; 应允,同意;
2.definition [ˌdɛfəˈnɪʃən] n. 定义; 规定,明确; [物] 清晰度; 解释;
3.in brief 总之,简单地说,简而言之
4.approved [ə’pru:vd]adj. 经核准的,被认可的;v. 批准; 认可; 核准; 赞成,同意( approve的过去式和过去分词 );
5.initiative [ɪˈnɪʃətɪv]n. 倡议; 主动性; 主动权; 主动精神;adj. 自发的; 创始的; 初步的;
6.go through [ɡo θru](法律、合同等正式) 通过; 用完; 检查; 完成;
7.review [rɪˈvju]n. 回顾; 复习; (报刊的) 评论; [法] 复审;vt. 评论; 复习; 复查; 检验;vi. 复习功课; 写评论;

参考

opensource.org/licenses
choosealicense.com

(Ryan的Redis系列博客)1.开源协议相关推荐

  1. (Ryan的Redis系列博客)7.Redis键的生命周期

    前言 本文讨论的是Redis中的失效时间,我将之称为"键的生命周期".之前的文章,我介绍了各种复杂的数据结构,但是,却没有讨论Redis失效时间,用户可以自定义一个时间,时间到期, ...

  2. (Ryan的Koa系列博客)6.依赖库:on-finished(本文尚未完成)

    前言 当request对象关闭,完成或者报错的时候会执行回调函数. 安装 npm install on-finished 依赖 var onFinished = require('on-finishe ...

  3. (Ryan的Koa系列博客)2.严谨模式(未全部完成)

    前言 'use strict'; ES5的严谨模式,是选择使用受限制的JS编写程序的一种方式.严谨模式不仅仅是一个语法子集,它有意的为普通代码设置了不同的语义.因此,浏览器不能运行没有通过严谨模式特性 ...

  4. 基础环境搭建——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(五)

    系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...

  5. 堪比培训机构的MySQL系列博客

    这个blog,我整理了我之前写的MySQL开发系列和MySQL运维系列,知识丰富程度堪比培训机构 个人能力有限,如有错误的地方,欢迎指正. 文章目录 一.MySQL开发系列 1.1 MySQL 行转列 ...

  6. SpringBoot实现代码生成器——基于SpringBoot和Vue的后台管理系统项目系列博客(十)

    系列文章目录 系统功能演示--基于SpringBoot和Vue的后台管理系统项目系列博客(一) Vue2安装并集成ElementUI--基于SpringBoot和Vue的后台管理系统项目系列博客(二) ...

  7. SpringBoot实现1对1、1对多、多对多关联查询——基于SpringBoot和Vue的后台管理系统项目系列博客(十八)

    系列文章目录 系统功能演示--基于SpringBoot和Vue的后台管理系统项目系列博客(一) Vue2安装并集成ElementUI--基于SpringBoot和Vue的后台管理系统项目系列博客(二) ...

  8. 追梦App系列博客——汇总篇

    文章目录 一.前言 二.为什么要写这个系列博客? 三.汇总篇的作用 四.导航目录 1.App设计 2.会议相关 五.建议 一.前言 当我们满怀希望跨入大学生活,却我们发现大学生活并不是我们所希冀的样子 ...

  9. 实时推荐服务建设——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(八)

    系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...

最新文章

  1. Java自学路线总结,已Get腾讯Offer
  2. 冠状病毒如何杀灭最高效?这里有一份几十年的实验汇总
  3. LiveVideoStackCon深圳-嵌入式音频开发
  4. Nginx安装环境配置
  5. python发送qq邮件列表_Python SMTP发送邮件
  6. HDU - 6989 Didn‘t I Say to Make My Abilities Average in the Next Life?! 莫队/单调栈 + 线段树/ST表在线
  7. CF Gym100917 C
  8. IDEA中Git的更新、提交、还原方法
  9. iOS开发之地图与定位
  10. 如何取消重要地点加密_西门子S7-300/400PLC编程之软件加密
  11. 江苏省计算机二级c语言考试知识点,计算机二级考试C语言常考知识点归纳
  12. JQuery Smart UI 简介 (一) — 纯Htm+Js的ajax开发框架[演示Demo已放出]
  13. 【华为OD机试Python实现】HJ70 矩阵乘法计算量估算(中等)
  14. 考研逻辑-逻辑4主讲人:王超-2020-08-15
  15. Hive on spark 执行加载不了spark的jars
  16. java 哲学家_Java哲学家进餐问题|多线程
  17. C++条件运算符(三目运算符+逗号运算符)案例实练
  18. 计算机安全原理与实践第3版PDF,windows安全原理与技术.pdf
  19. python培训就业班的服务好不好,在培训班学完Python为什么不好就业?
  20. 【备战2020】高考数学全套知识点

热门文章

  1. 【兼容性】ios上设置overflow: scroll不滚动bug
  2. 模仿天天动听5可联网下载歌词的音乐播放器
  3. JAVA基础6.51——多态的概述(1)
  4. 云服务器可以用来干什么?了解了这4点你就知道了
  5. mlf机器人无限制格斗_极战MLF无限制机器人格斗大赛The Railgun称王
  6. 江苏事业单位计算机类考申论吗,想进事业单位?江苏事业单位统考,考些什么你知道吗?...
  7. CAN工具 - ValueCAN - 基础介绍
  8. 2021年05月软件设计师真题透析
  9. ​生鲜也能卖尾货了?
  10. 找实习经历分享(一)