如今比较流行的开源软件协议包括:GPL,LGPL,Apache License(2.0)和BSD。一般来讲,如果使用了GPL许可证的软件,就意味着你的软件必须“自由”,相比之下,其他协议大多只要求使用者尊重原作就可以了,更适用于商业软件之中,只有区分了这些开源软件协议的含义,才能更好的利用和回馈开源软件。

GPL(GNU General Public License Versions)

GPL协议一般还可以分为GPL2.0和GPL3.0两种,而GPL3.0是更新一代的开源标准,在对用户专利的保护和DRM的限制方面有所更改。GPL协议同其它的自由软件许可证一样,许可社会公众享有:运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。 而GPL协议就像一种开源“病毒”,任何一款沾染上他的软件都不得不保持开源和免费。

根据国外论坛Robbin的解释:“GPL是针对软件源代码的版权,而不是针对软件编译后二进制版本的版权。你有权免费获得软件的源代码,但是你没有权力免费获得软件的二进制发行版本。GPL对软件发行版本唯一的限制就是:你的发行版本必须把完整的源代码一同提供。”

LGPL(GNU Lesser General Public License)

LGPL是GNU Lesser General Public License(GNU宽通用公共许可证)的缩写形式,LGPL是GPL的一个为主要为类库使用设计的开源协议。与上面的GPL不同的是,LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。使采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

我们也可以简单理解为:LGPL协议的开源代码商业软件可以使用,但不能修改LGPL协议的代码。

Apache License

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。他需要满足的条件包括:

需要给代码的用户一份Apache Licence
如果你修改了代码,需要在被修改的文件中说明。
在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

BSD开源协议(Berkerley Software Distribution)

目前BSD开源协议分为BSD 3-Clause和BSD 2-Clause两种,分别代指两个条款和三个条款的BSD协议。应该说,BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但是,不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

这就不难理解,很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

MIT(Massachusetts Institute of Technology)

MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.

MPL(Mozilla Public License)

Mozilla公共许可证(MPL)最初是Netscape发布的开源和自由软件许可证。类似GPL等公共版权许可证,使用和修改MPL授权的代码将需要在MPL下发布源代码。
————————————————
版权声明:本文为CSDN博主「冷小鱼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yanxilou/article/details/121555227

开源协议的优劣势比较相关推荐

  1. 阿里P8架构师谈:开源搜索引擎Lucene、Solr、Sphinx等优劣势比较

    开源搜索引擎分类 1.Lucene系搜索引擎,java开发,包括: Lucene Solr Elasticsearch Katta.Compass等都是基于Lucene封装. 你可以想象Lucene系 ...

  2. 微服务系列:服务注册与发现的实现原理、及实现优劣势比较

    服务注册与发现的来源 首先,服务注册与发现是来自于微服务架构的产物. 在传统的服务架构中,服务的规模处于运维人员的可控范围内.当部署服务的多个节点时,一般使用静态配置的方式实现服务信息的设定.而在微服 ...

  3. 阿里P8架构师谈:微服务Dubbo和SpringCloud架构设计、优劣势比较

    本文主要围绕微服务的技术选型.通讯协议.服务依赖模式.开始模式.运行模式等几方面来综合比较Dubbo和Spring Cloud 这2种开发框架.架构师可以根据公司的技术实力并结合项目的特点来选择某个合 ...

  4. 微服务系列:Dubbo与SpringCloud的Ribbon、Hystrix、Feign的优劣势比较

    在微服务架构中,分布式通信.分布式事务.分布式锁等问题是亟待解决的几个重要问题. Spring Cloud是一套完整的微服务解决方案,基于 Spring Boot 框架.确切的说,Spring Clo ...

  5. 消息中间件系列(八):Kafka、RocketMQ、RabbitMQ等的优劣势比较

    在高并发业务场景下,典型的阿里双11秒杀等业务,消息队列中间件在流量削峰.解耦上有不可替代的作用. 之前介绍了MQ消息队列的12点核心原理总结,以及如何从0到1设计一个MQ消息队列,以及RPC远程调用 ...

  6. CGI的基本定义和优劣势是什么

    通用网关接口 (CGI) 是网络服务器之间的交集,通过它可以在外部应用程序和服务器之间进行标准化数据交换.它属于现存最古老的在线界面技术,至今仍被一些知名虚拟主机提供商使用.使用CGI 时,HTML页 ...

  7. MongoDB、Hbase、Redis等NoSQL优劣势、应用场景

    MongoDB.Hbase.Redis等NoSQL优劣势.应用场景 NoSQL数据库在整个数据库领域的江湖地位已经不言而喻.在大数据时代,虽然RDBMS很优秀,但是面对快速增长的数据规模和日渐复杂的数 ...

  8. webpack、rollup、parcel 它们的优劣?_尾货批发与正价批发优劣势,你有二者兼顾吗?...

    服装人对于尾货批发与正价批发都是比较了解的,但是新手小白就有点晕,不清楚什么是尾货批发什么是正价批发.那么我们还是按照套路来,先来给大家普及一下这两个名词.让你们先了解一下,不然对你们来说就不大友好了 ...

  9. 面试官:说一下JVM常用垃圾回收器的特点、优劣势、使用场景和参数设置

    今天去看牙医,他问我年级轻轻牙齿怎么磨损这么严重?我说,没有人点赞的这些年,我都是咬着牙过来的. Java中的垃圾回收器几乎是面试中的必考点,无论是面试初级,中级还是高级,总免不了要问一问垃圾回收器的 ...

最新文章

  1. 【LeetCode】4.寻找两个正序数组的中位数
  2. wangEditor-3.1.1 自己扩展的,增加代码块行号
  3. 又走一人 苹果自动驾驶系统工程项目经理已离职
  4. (转)全球最权威人脸识别测试PK
  5. ArcGIS 10研究(二) 之Mobile新特性
  6. 三菱plcascll转换16进制_三菱ASCII码指令
  7. 爬虫抓图2022年全网最新方法,这一次终于是4k高清美图
  8. 世界上第一台电子计算机的研制目的,最初研制电子计算机的目的
  9. 微软XSD工具根据XSD文件生成的C#类中多余Specified属性问题
  10. No20. i++/j++
  11. 公历转农历的程序(代码转载于网络)
  12. 房子装修选择自装,物业办装修手续,需要哪些资料?
  13. 生活杂谈-简单电器维修知识
  14. java调用百度翻译_Java调用百度API实现翻译-Go语言中文社区
  15. 计算机教学参与录,青山湖区京东学校参与省级线上教学课程录制工作
  16. debian10安装docker
  17. 线性空间滤波函数imfilter
  18. MT6753芯片处理器资料介绍
  19. TCP/UDP以及端口协议功能
  20. java工作描述_java工程师工作描述状况是干什么的?需要身怀哪些技能呢?

热门文章

  1. LDO客户应用问题-持续更新
  2. 2022年证券行业818理财节,量变开始转向质变
  3. np.dot两个向量相乘
  4. 计算机专业教师资格证面试,教师资格证面试中小学计算机说课
  5. QT Creator新建工程后卡死解决方法
  6. 牛牛截图控件与利洽远程控制产品升级-支持证书自动升级
  7. linux c多线程编程之全局变量访问操作
  8. 电脑版微信多开bat脚本
  9. 程序员编程规范之排版
  10. 微信小程序入门与实战之音乐播放