BSD、Apache、MIT、GPL、LGPL几种常见的开源协议

2023-11-19

转载地址:
     https://www.cnblogs.com/Vito2008/p/4806677.html
1. BSD开源协议(original BSD license、FreeBSD license、Original BSD license)
    BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
   1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
   2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
   3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
    BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对 商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

2. Apache Licence 2.0(Apache License, Version 2.0、Apache License, Version 1.1、Apache License, Version 1.0)

    Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:
    1. 需要给代码的用户一份Apache Licence
    2. 如果你修改了代码,需要再被修改的文件中说明。
   3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
   4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
3. GPL(GNU General Public License)
    我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商 业软件公司开发的免费软件了。
    GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题, 还可以享受免费的优势。
    由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。
    关于开源协议GPL V2和V3
    单从开源行业的GPL协议上来看,似乎开源linux产品上的一切是可以无条件的开放和共享的,但是从实际的操作来看,在GPL相对的许可授权之下,又有其相对封闭的一面,就这次的GPL v2到GPL v3的修订改版来说,正是GPL协议“封闭”一面的具体体现。
    根据GPL v2的相关规定:只要这种修改文本在整体上或者其某个部分来源于遵循GPL的程序,该修改文本的整体就必须按照GPL流通,不仅该修改文本的源码必须向社 会公开,而且对于这种修改文本的流通不准许附加修改者自己作出的限制。而在GPL v3的修订草案中,不仅要求用户公布修改的源代码,还要求公布相关硬件,恰恰是这一条,由于触及和其他相关数字版权管理(DRM)及其产品的 关系,并且也 由于有和开源精神相违的地方,所以备受争议,甚至因此也遭到了有着“LINUX之父”之称的托瓦尔兹的反对。
    从表面上看,GPL v2到GPL v3的升级之困只不过是对协议修订过程中某一条款的分歧,而更为严重的是在两种协议都合法存在的前提下,具体的开源软件或者开源产品的所有者有权选择是遵 循GPL v2协议还是恪守GPL v3协议,因此冲突也就来了,这种冲突正如中科红旗的CTO郑忠源描述的那样:“世界有如此多软件都在GPL v2的约束之下,而自由软件是集合全世界程序员劳动,即使是贡献一行代码,如果该程序员只同意这一代码只遵循GPL v2之下,就不能随便去修改协议。如果计划将软件转移到GPL v3之下,理论上讲,必须征得所有代码人的同意。但是目前还很难确定有多少开发人员愿意转移到新版本之下,如果有的人愿意转,有的人不愿意转,这其中就有 很多的麻烦;而如果多数人都不愿意改变,那这一事情也许就无声无息……”
    通过业内人士的精辟描述,相信大家一定对开源行业和开源软件产品有了一个全新的认识吧,就那熟悉的LINUX系统来说,虽然表面上看起来大家有权按 照自己的需要和目的进行任意的改写重组,但是在诸多的独立程序面前,别人是只能共享使用,而无权修改的,当然获得授权就另当别论了。而就GPL v2到GPL v3的协议升级来说,这种协议的选择上的分歧实际上也是开源行业里一种观念认知上的相左,到底谁的选择是正确的?绝对不是一两句话能说得清的,尤其是在各 种利益交织之下。
    情势之下,开源社区的GPL v2与GPL v3选择之困很现实的会在相当一段时间内给这个行业及其产品造成“兼容问题”,说白了就是两种协议以及两种协议之下的矛盾,不管是人的还是产品的都将会持 续下去,而这种僵持对整个开源行业来说未必是一件好事,最起码从“精神”方面来说这个行业已经在开始分道扬镳。
4. LGPL(GNU Lesser General Public License)
   LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。 LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并 发布和销售。
    但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源 代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
    GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品
5. MIT(MIT)
    MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BSD、Apache、MIT、GPL、LGPL几种常见的开源协议 的相关文章

  • 代码评审工具Phabricator安装和部署

    1 安装 1 1 安装要求 Phabricator是一个LAMP应用套件 因此最基本的要求就是LAMP环境 Linux Linux的不同发行版及变种是必需的 MacOS X是一个可接受的Linux变种 Windows不是 Phabricat
  • 西门子S7-1200 PLC选型前这些要了解

    西门子S7 1200PLC是西门子S7系列PLC产品中一员 S7系列产品包含有 S7 200 Smart 200 S7 1200 S7 300 S7 1500 S7 400等系列PLC 其中S7 200 Smart 200 S7 1200系
  • 10款Visual Studio实用插件

    目录 前言 Visual Studio插件搜索 Visual Studio插件市场 ReSharper 付费 GitHub Copilot 付费 CodeMaid 免费 CSharpier 免费 Visual Studio Theme Pa
  • arcgis 10.8 for win10安装教程

    本文主要记录arcgis安装步骤 遇到的问题等 文章目录 一 前提 二 下载与安装 1 下载 2 安装 参考资料 一 前提 下载前需要确定 1 ArcGIS对系统的要求 安装之前系统需安装 net framework 4 5 以上版本 我的
  • VTK环境安装教程

    安装前依赖环境 CMake VS2019 VTK压缩包 8 2 0即可 build过程 第一次分析完 找到下图中选中项 勾选Configure 解释勾选项 BUILD EXAMPLES 生成一些vtk官方的examples 帮助理解学习 当
  • C++ STL概述

    STL就是封装好的一些数据结构以及一些算法 C STL 标准模板库 是一套功能强大的 C 模板类 提供了通用的模板类和函数 这些模板类和函数可以实现多种流行和常用的算法和数据结构 如向量 链表 队列 栈 Standard Template
  • 大学生竞赛项目

    编程 蓝桥杯 报名时间 10月 报名网址 https dasai lanqiao cn 中国软件杯大学生软件设计大赛 报名时间 5月 报名网址 http www cnsoftbei com 中国高校计算机大赛 报名时间 11月 报名网址 h
  • Inno打包后开始运行前检查文件是否存在

    Code function FileDoesNotExist file string Boolean begin if FileExists file then begin Result False end else begin Resul
  • 解决-画图程序无法读取-无效的位图文件

    辛苦画的图 今天一打开就看到这个 心情是呵呵的 搜了一下大概是图太大了 右击win10自带的图片 给裁剪小了就OK了
  • UG NX10.0软件安装教程

    软件下载 名称 UG NX 10 0 语言 简体中文 安装环境 Windows 下载链接 链接 https pan baidu com s 1SkskLU2CYLQznfGWM7O4HQ 提取码 ersv 安装中有问题请咨询管家微信 don
  • C# Socket连接请求超时处理

    在Socket的超时时间默认20多秒 而实际连上不需1秒时间 20多秒很多时候用户是不能接受的 而在等待返回结果的这段时间里程序会处于停止响应状态 废话不多说了 先上代码 private delegate string ConnectSoc
  • DHCP的配置(以华为eNSP为例)

    如有错误 敬请谅解 此文章仅为本人学习笔记 仅供参考 如有冒犯 请联系作者删除 基础知识介绍 络组建步骤 1 拓扑设计 2 IP地址规划 按照拓扑中划分的 络范围 规划 络位不同的IP地址 3 配置 1 配置各个节点的IP地址 2 路由 全
  • GNURadio报错Unable to create context(windows10环境)

    GNURadio报错Unable to create context windows10环境 这里本人使用的是GNU Radio3 7 11 iiosupport win64 版本 外设是ADI的ADALM PLUTO 这里本人使用的是GN
  • 通过python程序调取摄像头画面

    目录 1 方法 2 演示代码 3 总结 1 方法 想要调取摄像头画面有这么几个前提 需要使用网络摄像头并且支持RTSP协议 摄像头要和你的电脑在同一个局域网下 需要知道摄像头的账号 密码 IP地址 RTSP协议是一种网络传输协议 不同的摄像
  • fl studio2024水果21.3免费汉化版

    fl studio2024全称Fruity Loops Studio2024 这款软件也被人们亲切的称之为水果 它是一款功能强大的音乐创作编辑软件 拥有全功能的录音室 大混音盘以及先进的音乐制作工具 用户通过使用该软件 就可以轻松制作出自己
  • CSDN找到“仅我可见”内容

    有时候自己做一些笔记参考了他人的内容 所以想将文章转为 仅自己可见 仅作自用 记录一下CSDN找私密文章的方式 今天摸了好一会儿才找到哈哈哈 1 点击导航栏处的创作中心进入 2 查看更多 3 点击浏览就可以查看啦 来源 CSDN找到 仅我可
  • FAM amine, 6-isomer,1313393-44-0,含有纯6-异构体的荧光团,6-FAM NH2

    产品名称 FAM amine 6 isomer 6 FAM NH2 中文名称 6 羧基荧光素 氨基 CAS 1313393 44 0 分子式 C27H26N2O6 分子量 474 51 纯度 95 结构式 产品描述 荧光素衍生物具有胺基 含
  • FAM amine, 6-isomer,1313393-44-0,含有纯6-异构体的荧光团,6-FAM NH2

    产品名称 FAM amine 6 isomer 6 FAM NH2 中文名称 6 羧基荧光素 氨基 CAS 1313393 44 0 分子式 C27H26N2O6 分子量 474 51 纯度 95 结构式 产品描述 荧光素衍生物具有胺基 含
  • LIDAR激光雷达反射板

    LIDAR Light Detection And Ranging 系统是一种集激光 全球定位系统 GPS 和惯性导航系统 INS 三种技术于一身的系统 用于获得点云数据并生成精确的数字化三维模型 LIDAR系统包括一个单束窄带激光器和一个
  • 液晶偏振光栅

    1 偏振 光是横波 在垂直于光的传播方向的平面内光波振动 即E矢量振动 各方向振幅都相等的光为自然光 只在某一方向有光振动的光称为线偏振光 各方向光振动都有 但振幅不同的光叫部分偏振光 螺旋着振动的光称圆偏振光 分旋和右旋 2 庞加莱球表示

随机推荐