首页 > 其他分享 >常见的开源协议介绍和使用

常见的开源协议介绍和使用

时间:2022-11-07 00:33:40浏览次数:124  
标签:协议 许可 常见 修改 开源 源码 许可证

开源协议规定了你在使用开源软件时的权利和责任,也就是规定了你可以做什么,不可以做什么的法律文件

相关概念

  • License:许可协议
  • Open Source License:开源许可协议
  • 引用:将开源软件作为一个底层的库来进行引用,有时也称之为连接 link
  • 修改:对开源软件的源码进行修改,即所谓的二次开发
  • 衍生品:将第三方库集成到自己的产品中,或者进行二次开发,并将最终的产品对外发布
  • 使用者的权利:获取源码的权力、修改源码的权利、自由处理衍生作品的权利
  • Copyright:软件的版权和其它一切权利归软件作者所私有,用户只有使用权,没有其它权利,包括没有复制软件的权利
  • Copyleft:软件的版权归原作者所有,其它一切权利归任何人所有,任何人也不能将软件拒为私有

常见协议

MIT

MIT 许可协议由自麻省理工学院(MIT)发布,特点:

  • 可自由的获取、修改、使用源码、发布衍生品
  • 在修改后的代码或者发行包保留原作者的许可协议

BSD

BSD 许可协议是由加州大学伯克利分校发布并维护的开源软件许可证,特点:

  • 可自由的获取、修改、使用源码、发布衍生品
  • 在修改后的代码或者发行包保留原作者的许可协议
  • 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广
  • 两句版 BSD 许可证等价于 MIT 许可证

Apache

Apache 许可协议由 Apache 软件基金会发布的自由软件许可证,特点:

  • 可自由的获取、修改、使用源码、发布衍生品
  • 保留原作者的许可协议,如果修改了程序源代码,需要在文档中进行声明

Mozilla

MPL 许可协议是1998年初Netscape的Mozilla小组为其开源软件项目设计的软件许可证

  • 可自由的获取、修改、使用源码、发布衍生品
  • 保留原作者的许可协议,如果修改了程序源代码,需要在文档中进行声明
  • 对源码修改的部分代码也需遵循 MPL 协议

GPL

GPL 许可协议即 GNU 通用公共许可协议,由自由软件基金会公布的自由软件许可证,特点:

  • 可自由的获取、修改、使用源码、发布衍生品
  • 使用了遵循 GPL 协议的源码,其衍生品也要遵循 GPL 协议

LGPL

LGPL 许可协议即 GNU 宽通用公共许可协议,由自由软件基金会公布的自由软件许可证,特点:

  • 可自由的获取、修改、使用源码、发布衍生品
  • 修改了遵循 GPL 协议的源码,其衍生品也要遵循 LGPL 协议

ISC

ISC 许可协议由 ISC(Internet Systems Consortium)所发明,在功能上与两句版的 BSD 许可证相同

各协议对比图

使用协议

添加许可证关键字

在项目的配置文件中,可以声明使用了哪种开源协议,例如在 node 的 package.json 中使用

license: 许可证关键字

各协议的关键字:

添加许可证文件

在项目根目录创建 LICENSE.txt 或者 (LICENSE.mdLICENSE.rst),文件内容为许可协议内容

相关资料

标签:协议,许可,常见,修改,开源,源码,许可证
From: https://www.cnblogs.com/adore/p/16864668.html

相关文章

  • Python - 上下文管理器协议
    with语句的目的是简化try/finally,即便由于异常,return,sys.exit()调用而终止,也会执行指定的操作上下文管理器协议包含__enter__和__exit__两个方法with语句开始执行......
  • 实验4:开源控制器实践——OpenDaylight
    (一)基本要求1.利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight控制器2.通过Postman工具调用OpenDaylight提供的API下发流表,实现拓扑内主机h1和h3网络中断10s(......
  • 实验6:开源控制器实践——RYU
    一、实验要求(一)基本要求1.搭建下图所示SDN拓扑,协议使用OpenFlow1.0,并连接Ryu控制器,通过Ryu的图形界面查看网络拓扑。查看网络拓扑2.阅读Ryu文档的TheFirstApplic......
  • 实验3:OpenFlow协议分析实践
    实验3:OpenFlow协议分析实践一、实验目的能够运用wireshark对OpenFlow协议数据交互过程进行抓包;能够借助包解析工具,分析与解释OpenFlow协议的数据包交互过程与机制......
  • 实验4:开源控制器实践——OpenDaylight
    实验4:开源控制器实践——OpenDaylight一、实验目的能够独立完成OpenDaylight控制器的安装配置;能够使用Postman工具调用OpenDaylightAPI接口下发流表。二、实验环境Ubu......
  • 实验6:开源控制器实践——RYU
    实验6:开源控制器实践——RYU一、实验目的能够独立部署RYU控制器;能够理解RYU控制器实现软件定义的集线器原理;能够理解RYU控制器实现软件定义的交换机原理。二、实验环境......
  • 实验5:开源控制器实践——POX
    实验5:开源控制器实践——POX一、实验目的能够理解POX控制器的工作原理;通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;能够......
  • 实验6:开源控制器实践——RYU
    一、实验目的1、能够独立部署RYU控制器;2、能够理解RYU控制器实现软件定义的集线器原理;3、能够理解RYU控制器实现软件定义的交换机原理。二、实验环境Ubuntu20.04Desktop......
  • web基础与http协议
    一、HTML1.1、html概述HTML叫做超文本标记语言,是一种规范,也是一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加......
  • 【lwip】10-ICMP协议&源码分析
    目录前言10.1ICMP简介10.2ICMP报文10.2.1ICMP报文格式10.2.2ICMP报文类型10.2.3ICMP报文固定首部字段意义10.3ICMP差错报告报文10.3.1目的不可达10.3.2源站抑制10.......