技术选型需要关注的软件开源协议

开源软件的授权许可都是基于开源许可协议的,常见的开源许可协议有GPL、LGPL、APL、BSD、MIT、Mozilla Public License、Creative Commons、Eclipse Public License 1.0等。它们之前有很多相同的地方,也有很多不同的地方,本文将分析一下这些协议之间的区别。

GPL(GNU General Public License),使用源软件的类库引用(源代码)、改变(修改了源代码)的新软件,也必须采用GPL进行授权。就是说,只要使用了GPL开源软件的源代码或拿它的源代码进行了修改而编写的新的软件,也必须加入到GPL的阵营。很明显,不能拿GPL授权的开源东东来做商业软件。这个协议有个好处,就是极大增加了使用GPL的软件的数量。采用GPL授权的软件有:Linux、MySQL等。

LGPL(Lesser GPL),相比GPL的严格,LGPL要温和很多。可以通过引用类库的方式(不是直接使用源代码)拿LGPL授权的东东来重新开发商业软件。如果是要修改源代码,是相应的修改和衍生出来的代码都要使用LGPL开放源代码。采用LGPL的软件有:JBoss、Hibernate、FCKeditor等。

APL(apache Licence vesion 2.0),适用于商业软件,允许修改代码后再发布(不用开放源代码)。采用APL的软件有Hadoop、Apache HttpServer等。

BSD(Berkeley Software Distribution),这个协议的要求很宽松,允许他人修改和重新发布代码,可以在此基础上开发出商业软件进行销售。所以,此协议适用于商业软件。采用BSD协议的软件最著名的有nginx。

MIT(Massachusetts Institute of Technology),又称X11协议。MIT与BSD类似,但是比BSD协议更加宽松,算是目前限制最少的协议了。这个协议唯一的条件就是在修改后的代码或者发行包包含原作者的许可信息。适用商业软件。采用MIT的软件有:jquery、Node.js

开源许可协议GPL、APL、BSD、LGPL、MIT等的区别

原文地址:https://www.cnblogs.com/yiyi17/p/11483158.html

时间: 2024-08-25 01:25:18

技术选型需要关注的软件开源协议的相关文章

禅道团队发布中文开源协议ZPL,协议问题再引关注

禅道开源项目管理团队近日推出了一款号称"最适合中国国情的开源授权协议"--ZPL. 之所以推出该协议,主要是目前业界面临着英文协议条款难以理解,各方责权利界定不清晰等原因. 据禅道开源项目管理团队负责人王春生介绍说,目前该团队推出了一款号称"最适合中国国情的开源授权协议"--ZPL. 谈到为何推出这样的一款开源授权协议,王春生给出了自己的观点,主要有英文协议条款难以理解,各方责权利界定不清晰,充分保障开源软件作者的署名权,在商业友好和保护自身权利之间取得平衡等原因.

常用开源软件许可协议简介

什么是许可协议? 什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供一定的权限. 不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用,否则,对于前者,你相当于放弃了自己所有的权利,任何人都没有义务表明你的原始作者身份,对于后者,你将不得不花费比开发更多的精力用来逐个处理用户的授权问题. 而开源技术许可协议使这些事情变得简单,开发者很容易向一个项目贡献自己的代码,它还可以保护你原始作者的身份,使你至少

Java开源生鲜电商平台-系统架构与技术选型(源码可下载)

Java开源生鲜电商平台-系统架构与技术选型(源码可下载) 1.  硬件环境 公司服务器 2.   软件环境 2.1  操作系统 Linux CentOS 6.8系列 2.2 反向代理/web服务器 Nginx 2.3 应用服务器 Jdk7+ Tomcat 7 2.4 数据库 Mysql 5.6.x 2.5 消息队列(可选) Rabbitmq/rocketmq 2.6 缓存(可选) Redis 3.x 3.工程构建和管理工具 1.Maven 开发人员已经很熟悉了.此处略 2.Jenkins Je

谈谈开源技术选型

有时感觉技术选型就像个伪命题,胜出的技术占据绝对的主流,就像 java 领域中 ejb 被 ssh/ssi 框架取代. 大部分项目使用近似的模式搭建,选型在工程中变得似乎可有可无. 时间上胜出的开源技术帮助开发者在客观上做出了选择,我们先了解下影响选型的客观因素. 客观因素 客观因素包括如下: 1. 广泛性 我们都倾向于选择更广泛应用的开源技术以规避未知性风险. 2. 质量 质量我们会参照广泛性作一个侧面证明,使用更广泛可能质量更有保障,不过这对开源技术的新生儿就显得有些不公平了. 3. 文档

开源软件许可协议简介

英文原文:A Short Guide To Open-Source And Similar Licenses 很多软件开发者和设计者都有将自己的软件作品以开源的形式公之于众的想法.他们希望其他人也可以分享自己的作品,使用自己的作品.开源社区之所以能蓬勃发展就是因为人们有这样的愿望.开源软件如此的丰富,任何你能想到的应用领域里都能找到它们的身影. 大部分的设计人员都已经把使用开源软件和开源代码作为日常工作不可缺少的一部分了(WordPress, Drupal 和许多其它的内容管理系统都是开源软件)

开源协议选型及对比

先推荐一本书<开源软件之道>,讲的很细.先看下网上推荐的如何选择开源协议? from https://blog.csdn.net/wadefelix/article/details/6384317 from http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html Wiki对比 https://en.wikipedia.org/wiki/Comparison_of_free_and_open

【JavsScript】JavaScript MVC 框架技术选型

你很喜欢Gmail和Trello之类的单页面应用,但是不太确定该从何开始.也许你的JavaScript代码是如此的杂乱无章,以致于你很想在下一个项目上尝试下JavaScript MVC库和框架,却苦于没有头绪?我正在撰写一本单页面应用的书,所以我阅读了大量网上的相关资料.在这里我尝试提供一些看法,希望可以帮助你下决定. 简介 这里讨论的是时下最热的框架,AngularJS.Backbone.Ember和Knockout.同时提到了Batman.CANjs.Meteor和Spine,但是没有详细展

微服务技术选型之路

本文以笔者个人经历讲述关于微服务方面的技术选型和相关知识点.微服务模式的项目从初建到上线部署应用,每一个环节都会涉及到相当多的技术细节(上线后的性能调优更需要).本文着重介绍一套微服务搭建流程中面临的一些技术选型,战略性的技术方案及相关技术的简要介绍,不做每一项技术的深入说明. ?微服务简介 微服务是指开发一个单个小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上.微服务也指一种种松耦合的.有一定的有界上下文的面向服务架构. 微服务是系统架构上的一种设计

各类开源协议总结

各种开源协议的核心内容,主要有4点: (1)使用该软件用于何目的的权利: (2)对软件工作原理的知情权(即是否能查看软件源代码): (3)重新发布软件副本的权利: (4)改进软件并将其发布的权利. 常见的开源协议: FPL(自由公共许可证): 代表软件:mysql (1)使用权利:允许内部自由使用,但不提供技术支持:商业使用必须申请商业许可证: (2)源代码:开放: (3)分发权利:允许免费分发,但必须遵守FPL其他条款,如要求分发mysql和其派生产品的全部源代码:并与Mysql分本FPL本身