开源协议的比较(详细)
开源早已成为很多科技企业关注的焦点,我们也常会发现部分开源技术后面标注了某种协议,这意味着这些开源代码被框上了某种束缚,或者说这些代码将必须遵循这些规则,否则可能会触及法律。
总的来看,如今比较流行的开源软件协议包括: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下发布源代码。
开源协议的比较(详细)相关推荐
- 开源协议概谈[转载]
最近博客园上对开源的讨论比较多,开源作为一种文化,和传统的专利一样,需要了解各种开源协议,正好看到一篇介绍开源协议的blog,转载如下: 原文地址 http://blog.gxsti.net/cs/ ...
- 小知识:常用开源协议详细解析
來源:http://www.mscto.com/open/20081117-7075.html 开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的. 开源在 ...
- 详细介绍 BSD 开源协议
BSD开源协议是一个给于使用者很大自由的协议.可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布.当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品 ...
- 常用开源协议详细解析
开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的.开源运动同样有自己的游戏规则和道德准则.不遵行这些规则不但损害开源运动的健康发展,也会对违规者造成名誉和 ...
- 常用开源协议介绍以及开源软件规范列表
1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...
- 【流媒體】jrtplib—VS2010 下RTP开源协议库JRTPLIB3.9.1编译
[流媒體]jrtplib-VS2010下RTP开源协议库JRTPLIB3.9.1编译 SkySeraph Apr 7th 2012 Email:skyseraph00@163.com 一.JRTPLI ...
- 软件开发中的开源协议详解!
作者:pdai cnblogs.com/pengdai/p/9227404.html 开源不等于免费!为了加速我们的开发,我们会使用开源的软件和源码: 为避免商业风险,需要在使用时了解第三方如软件协议 ...
- Zend 创始人欲创建 PHP 方言,暂名为 P++;鸿蒙 OS 面世;中国首个开源协议诞生 | 开发者周刊...
整理 | 张红月出品 | CSDN(ID:CSDNnews) CSDN开发者周刊只为传递"有趣/有用"的开发者内容,点击Star! 本周热门项目 小姐姐的自拍直接生成二次元妹子 神 ...
- [转] 为你的项目选择一个合适的开源协议
http://www.wbh-doc.com.s3.amazonaws.com/Python-with-GitHub-PyPI-and-Readthedoc-Guide/chapter3%20-%20 ...
最新文章
- ubuntu中如何使用中文输入法
- CentOS 7 Redis 3.2.8的安装和使用
- java面向对象(1)
- Oracle dbtimezone与os时区不一致的解决办法
- vue-element-admin中 vuex 的使用
- python 怎么处理json_Python是怎样处理json模块的
- ftp服务器复制粘贴文件夹,ftp服务器复制粘贴文件夹
- CV Papers|计算机视觉论文推荐周报20200503期
- matplotlin 入门
- 工程实践线切割3B代码参考
- FreeImage的配置与使用
- GPS NMEA协议,0183 定位数据格式 	双模定位:GNXXX GPS+BD 完整版
- 牛客网项目——项目开发(三):开发登录模块
- 用html设计logo,网页设计中的logo设计方法
- 首席分析师:教你解读政策取向
- veloview读二维雷达数据_Windows下VLP16激光雷达数据解析
- 什么是服务器 ?服务器常见的系统和技术有哪些?
- PyCharm-professional-2016.2.3注册码
- MFC实战篇——提示框随鼠标移动动态响应
- Kali之airodump-ng
热门文章
- pvpgn mysql d2gs_PVPGN1.8.2 + D2GS1.11(38)搭建暗黑破坏神1.11b战网(配置指南)
- 新iPad为何舍弃Lightning,改用Type-C
- FPGA实现IRIG-B(DC)码编码和解码的设计
- 协变(covariance),逆变(contravariance)与不变(invariance)
- 导航php系统,php源码:智能的网址导航建站系统 114啦网址导航系统 v2.0
- 时间片轮转调度 java_操作系统- 实验一 模拟处理机调度的时间片轮转法(Java实现)...
- AppInventor中调用百度地图方法
- 三星s6 android 8.0,再见Android 8.0,三星s6全系列系统都停止了,第一代国王已经倒下了吗?...
- 之前帮朋友写的一个小工具-征途2新浪卡全自动淘号工具+按钮精灵脚本
- 《射击游戏》游戏开发记录