开源早已成为很多科技企业关注的焦点,我们也常会发现部分开源技术后面标注了某种协议,这意味着这些开源代码被框上了某种束缚,或者说这些代码将必须遵循这些规则,否则可能会触及法律。

总的来看,如今比较流行的开源软件协议包括: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下发布源代码。

开源协议的比较(详细)相关推荐

  1. 开源协议概谈[转载]

    最近博客园上对开源的讨论比较多,开源作为一种文化,和传统的专利一样,需要了解各种开源协议,正好看到一篇介绍开源协议的blog,转载如下: 原文地址  http://blog.gxsti.net/cs/ ...

  2. 小知识:常用开源协议详细解析

    來源:http://www.mscto.com/open/20081117-7075.html 开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的. 开源在 ...

  3. 详细介绍 BSD 开源协议

    BSD开源协议是一个给于使用者很大自由的协议.可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布.当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品 ...

  4. 常用开源协议详细解析

    开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的.开源运动同样有自己的游戏规则和道德准则.不遵行这些规则不但损害开源运动的健康发展,也会对违规者造成名誉和 ...

  5. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  6. 【流媒體】jrtplib—VS2010 下RTP开源协议库JRTPLIB3.9.1编译

    [流媒體]jrtplib-VS2010下RTP开源协议库JRTPLIB3.9.1编译 SkySeraph Apr 7th 2012 Email:skyseraph00@163.com 一.JRTPLI ...

  7. 软件开发中的开源协议详解!

    作者:pdai cnblogs.com/pengdai/p/9227404.html 开源不等于免费!为了加速我们的开发,我们会使用开源的软件和源码: 为避免商业风险,需要在使用时了解第三方如软件协议 ...

  8. Zend 创始人欲创建 PHP 方言,暂名为 P++;鸿蒙 OS 面世;中国首个开源协议诞生 | 开发者周刊...

    整理 | 张红月出品 | CSDN(ID:CSDNnews) CSDN开发者周刊只为传递"有趣/有用"的开发者内容,点击Star! 本周热门项目 小姐姐的自拍直接生成二次元妹子 神 ...

  9. [转] 为你的项目选择一个合适的开源协议

    http://www.wbh-doc.com.s3.amazonaws.com/Python-with-GitHub-PyPI-and-Readthedoc-Guide/chapter3%20-%20 ...

最新文章

  1. ubuntu中如何使用中文输入法
  2. CentOS 7 Redis 3.2.8的安装和使用
  3. java面向对象(1)
  4. Oracle dbtimezone与os时区不一致的解决办法
  5. vue-element-admin中 vuex 的使用
  6. python 怎么处理json_Python是怎样处理json模块的
  7. ftp服务器复制粘贴文件夹,ftp服务器复制粘贴文件夹
  8. CV Papers|计算机视觉论文推荐周报20200503期
  9. matplotlin 入门
  10. 工程实践线切割3B代码参考
  11. FreeImage的配置与使用
  12. GPS NMEA协议,0183 定位数据格式 双模定位:GNXXX GPS+BD 完整版
  13. 牛客网项目——项目开发(三):开发登录模块
  14. 用html设计logo,网页设计中的logo设计方法
  15. 首席分析师:教你解读政策取向
  16. veloview读二维雷达数据_Windows下VLP16激光雷达数据解析
  17. 什么是服务器 ?服务器常见的系统和技术有哪些?
  18. PyCharm-professional-2016.2.3注册码
  19. MFC实战篇——提示框随鼠标移动动态响应
  20. Kali之airodump-ng

热门文章

  1. pvpgn mysql d2gs_PVPGN1.8.2 + D2GS1.11(38)搭建暗黑破坏神1.11b战网(配置指南)
  2. 新iPad为何舍弃Lightning,改用Type-C
  3. FPGA实现IRIG-B(DC)码编码和解码的设计
  4. 协变(covariance),逆变(contravariance)与不变(invariance)
  5. 导航php系统,php源码:智能的网址导航建站系统 114啦网址导航系统 v2.0
  6. 时间片轮转调度 java_操作系统- 实验一  模拟处理机调度的时间片轮转法(Java实现)...
  7. AppInventor中调用百度地图方法
  8. 三星s6 android 8.0,再见Android 8.0,三星s6全系列系统都停止了,第一代国王已经倒下了吗?...
  9. 之前帮朋友写的一个小工具-征途2新浪卡全自动淘号工具+按钮精灵脚本
  10. 《射击游戏》游戏开发记录