菜小白聊聊开源和开源协议

news/2024/7/10 21:47:22 标签: 开源, 开源协议, unix

最近想入linux的深坑,于是开启了马哥sre课程的探险之旅。在了解到Linux是一款自由和开放源码的类UNIX操作系统的历史时,深深被开源精神所折服。也强烈感受到了开源精神的伟大。也正是因为有了开放源码的精神,才有了国产百花齐放的android系统。华为的EMUI,小米的MIUI,oppo的ColorOS…等等。这些Android系统无不得益于开源。而开源协议不仅是对源码的保护,也是对源作者们艰辛的肯定和尊重。目前常见的开源协议主要有:GPL、BSD、MIT、Mozilla、Apache和LGPL。各大协议的区别如下图:一张图弄明白开源协议-GPL、BSD、MIT、Mozilla、Apache和LGPL 之间的区别 (本博客参考搬运于维基百科、百度百科和CSDN等)
在这里插入图片描述

文章目录

  • GPL
  • BSD
  • MIT
  • Mozilla
  • Apache

GPL

在这里插入图片描述

GNU通用公共许可协议(英语:GNU General Public License,缩写GNU GPL 或 GPL),是被广泛使用的自由软件许可证,给予了终端用户运行、学习、共享和修改软件的自由。许可证最初由自由软件基金会的理查德·斯托曼为GNU项目所撰写,并授予计算机程序的用户自由软件定义(The Free Software Definition)的权利。GPL是一个Copyleft许可证,这意味着只要项目的某个部分(如动态链接库)以GPL发布,则整个项目以及派生作品只能以相同的许可条款分发。这与宽松自由软件许可证有所区别 ,如BSD许可证和MIT许可证就是其中被广泛使用的例子。GPL是第一个普遍使用的Copyleft许可证。

BSD

BSD许可协议(英语:Berkeley Software Distribution license)是自由软件中使用最广泛的许可协议之一
遵守BSD License的软件,允许用作商业用途,甚至可按照专属许可证进行再发布。比较著名的例子如微软产品中引入了BSD网络部分的代码,Mac OS X中使用了不少FreeBSD的组件。也可以将一部分遵照BSD许可证发布,另外一些采取其他许可证。事实上,BSD Unix早期就是这样的,其一部分是来自AT&T的专属内容。
BSD许可证的最初稿件,其中含有与GNU通用公共许可证相冲突的地方。由于这两个许可证在自由软件中使用很普遍,如果作者想将GPL和BSD有所结合,就会出现冲突。但是1999年,BSD许可证的修订版去除了相冲突的语句。从此以后,自由软件作者就可以方便地采用BSD许可证下的软件,从而跟GPL下的作品融合。

BSD许可证并不允许受让方将其删除或替换为其他许可证。

MIT

在这里插入图片描述
于GPL、LGPL、BSD)相比,MIT是相对宽松的软件许可协议。
MIT许可协议之名源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称“X许可协议”(X License)或“X11许可协议”(X11 License)

MIT内容与三条款BSD许可协议(3-clause BSD license)内容颇为近似,但是赋予软件被许可人更大的权利与更少的限制。
有许多团体均采用MIT许可证。例如著名的SSH连线软件PuTTY与X窗口系统。Expat、Mono开发平台库、Ruby on Rails、Lua、微软的Visual Studio Code源代码等等也都采用MIT许可协议。

Mozilla

在这里插入图片描述
Mozilla公共许可证(英语:Mozilla Public License,简称MPL)是个自由、开源、详细的软件许可证,由Mozilla基金会开发并维护。该协议融合了BSD许可证和GNU通用公共许可协议的特性,追求平衡专有软件和开源软件开发者之间的顾虑。
MPL用于Mozilla Firefox、Mozilla Thunderbird及其他Mozilla软件的许可,但也被其他产品所用,如Adobe以此为Flex产品线许可,还有LibreOffice 4.0(同时使用LGPL 3+)。1.1版还被一些公司特意改编成派生许可证,如Sun Microsystems的通用开发与散布许可证。
MPL既是得到自由软件基金会承认的自由软件许可证[3],也是得到开放源代码促进会承认的开源软件许可证[4]。MPL允许在其授权下的源代码与其他授权的文件进行混合,包括私有许可证。但在MPL授权下的代码文件必须保持MPL授权,并且保持开源

Apache

在这里插入图片描述
Apache许可证(英语:Apache License),是一个由Apache软件基金会发布的自由软件许可证,最初为Apache http服务器而撰写。Apache许可证要求被授权者保留著作权和放弃权利的声明,但它不是一个反著作权的许可证。

此许可证最新版本为“版本2”,于2004年1月发布。

Apache许可证在Apache社区内外被广泛使用。Apache基金会下属所有项目都使用Apache许可证,许多非Apache基金会项目也使用了Apache许可证:据统计,截至2012年10月,在sourceforge上有8708个项目使用了Apache许可证。


http://www.niftyadmin.cn/n/10099.html

相关文章

【附源码】Python计算机毕业设计图书销售系统设计

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Pyspark学习笔记小总

pyspark官方文档: https://spark.apache.org/docs/latest/api/python/index.html pyspark案例教程: https://sparkbyexamples.com/pyspark-tutorial/ 1. 写在前面 这篇文章记录下最近学习的有关Pyspark以及用spark sql去处理大规模数据的一些常用语法,之前总觉得p…

C++ 多线程 线程安全关联性map设计

我们知道关联性map有多种实现方式,一般有顺序表和二叉树以及哈希表; 如果我们要设计一个线程安全的map,且要求并发性要高,那么我们可以对上面的实现方法做一个评价; 1:二叉树,稍微想一下就会不…

副业是刚需?分享几个程序员接外包私活的网站

经常看到某某程序员接了个项目开发,工作之余轻轻松松赚了钱还顺带提升了技术;或者看到某大佬又发表了一篇程序员技术提升稿件,阅读点赞收藏三连发,这个月的零花钱又不愁了...但自己只是一名普普通通的程序员,能找到这样…

【Java面试八股文宝典之基础篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day10

大家好,我是陶然同学,软件工程大三明年实习。认识我的朋友们知道,我是科班出身,学的还行,但是对面试掌握不够,所以我将用这100多天更新Java面试题🙃🙃。 不敢苟同,相信大…

Spring Security自定义验证码登录

本文内容来自王松老师的《深入浅出Spring Security》,自己在学习的时候为了加深理解顺手抄录的,有时候还会写一些自己的想法。 验证码登录也是项目中一个常见的需求,但是Spring Security并未提供自动化配置方案。所以需要开发者自行定义。这里…

【金融项目】尚融宝项目(十四)

27、放款 27.1、需求介绍 27.1.1、平台放款 1、需求描述 标的募资时间到,平台会操作放款或撤标,如果达到放款条件则操作放款 说明:撤标过程与放款过程一致,处理业务相对简单,只是将出借金额返回给出借人即可&…

基础选择器

一、任务目标 掌握基础选择器的应用 二、任务背景 CSS(层叠样式表)选择器是CSS规则的一部分,用来指定需要设置样式的HTML元素。通过选择器可以实现CSS对HTML元素的一对一、一对多、多对一的控制。 三、任务内容 选择器类型 描述 示例 通配选…