1、授权协议有什么作用:
授权协议就是授予你使用或修改软件等权利,由于软件受到著作权保护,未经授权使用即是侵犯著作权,属于违法行为,所以同意或签署软件授权协议是你使用或修改软件的前提条件。
既然是授权协议,我们可以知道,这个东西分为两部分:授权和协议。你可以简单的理解为权利和义务。
授权即是指权利,指出你有哪些权利,例如在自己的电脑上安装、使用、重新编译发布、作为一部分嵌入在自己的软件项目中一并发布、或是修改再发布。
协议即是指义务,指出你有哪些义务,例如不允许反向工程,不允许开外挂,不允许修改,不允许作为自己软件项目的一部分发布,必须在使用此软件的项目中标注使用了这项技术。
如果你不遵守自己的义务(违背协议),那么你的授权就是无效的,即涉嫌侵犯著作权了。

2、授权协议有哪些种类?
大体上如 @larry 说的一样,主要可以分为开源和不开源(事实上收费和不收费的软件授权协议区别不大,下文详谈),下面分两种情况分别讨论:

2.1 闭源软件许可协议
不开源的软件,一般都有一个类似于最终用户许可协议的东西,这个协议大体上都会包含这样一些内容:
禁止把软件给别人用、禁止对软件反向工程、禁止或允许将软件作为自己项目的一部分发布,以及免责条款,例如操作不当导致自己的数据丢失等等。
免费收费共享之间的区别主要是授权协议的取得,例如免费软件一般是自由下载,然后安装的时候同意协议(下一步、下一步、下一步)即行安装。
收费软件一般不提供自由下载,或者下载后,必须通过付费获得授权,且同意授权协议,才能继续使用。
共享软件提供自由下载,到一定期限后,或者需要使用额外的功能,通过付费获得扩展授权使用。

2.2 开源软件许可协议
问题中列举的协议主要都是开源协议。
对于不开源软件而言,虽然授权协议都大同小异,但每个公司的授权协议,甚至不同的发行地的协议都有所不同。这是因为这些商业软件公司都拥有专业的销售和法律团队,授权协议关系到他们的核心业务,所以聘用非常专业的团队处理。

但对于开源软件而言,作者大多数是苦逼的程序员,根本没有能力聘用专业的法律顾问,有程序员搞出了一个比较完善的授权许可协议,大家就都拿来用,把里面的软件名字改改就好了。所以后来逐渐形成了几大开源授权协议,如GPL、Apache、BSD等。值得注意的是,这些开源授权协议文本本身也受著作权法保护,不过他们一般又都以开放的协议发布,允许大家随意拿来当作自己软件的授权协议。

比起不开源软件,大多数开源授权协议都比较简单,开源的特点就是开放源代码,这里的开放,并不是指随软件一并附上源代码的意思,而是源代码也给你了,你看着办吧。

允不允许修改源代码,是开源软件和不开源软件的根本的区别。
这里顺便谈一下还有一种灰色地带的软件,即随软件一并附上源代码,但你只能看不能摸,这类软件一般不认为是开源软件。譬如说Windows就对政府开放了部分源代码,或是.NET Framework之前使用的MS-RL。

开源软件的授权协议必须包含的权利是软件源代码的修改、演绎权,否则不是开源软件。所以各大协议主要是在义务上各有区别,譬如说GPL协议要求,基于该软件开发的任何软件,都必须以GPL协议发布,这也就是开源感染。也就是说你要用这个开源软件,就必须把你自己的软件变成开源的。

GPL这种感染太狠了,会限制使用GPL协议发布的软件所适用的范围,全部的商业软件,和大部分的免费软件都不能使用GPL协议发布的东西。这与开源的精神开放相悖。所以大家又提出了很多不那么严苛的协议。如Apache就不强求基于该协议软件开发的软件以相同协议发布,仅仅要求署名。这样,以Apache发布的软件就可以作为商业软件的一部分。

开源协议之间的区别,可以参考下图:

软件授权协议的目的,简单的可以区分为版权保护和版权限制,甚至还会包含软件中的专利和商标的保护和限制。
从法律角度来说,软件是通过版权保护的,所以只要是软件一经完成,甚至是部分完成,都是受到法律保护的,至于法律保护那些部分,可以参看《著作权法》,软件中的专利和商标可以参看《商标法》和《专利法》。
因为软件的复杂性,我国又专门出台了《计算机软件保护条例》,算是进一步补充。
软件简单可以分为四种,开源,共享,免费,收费。
开源就是能找到源代码的,如kvm,linux kernel;共享其实就是试用免费,下载软件时候经常会看到;免费就是不要钱,如QQ;收费比如office。
但是从版权保护角度的话,开源是一大类,其他的为一大类,注意:共享,免费,收费,一般在版权的说明部分,都有一段,all copyright reserved,他的权力一点都没少,除了极少数放弃的部分。

有些人,特别是国外的很多人和公司,他们也许没有中国人生活压力这么大,总是喜欢对这个世界做出点贡献,但是呢,又想告诉别人,我真的不要钱的,你们放心用去吧,于是就出现了一些开源license,类似于对copyright的限制。
当然,版权限制的时候,也会有些对后手的要求,比如我好不容易贡献了个软件,您在上边做的点创新,或者修改,但是我希望你也开开源,于是有个GPL,但是有些人比较大度,希望商业公司也能使用,并且可以不开源,就有个LGPL,MIT,Apache, BSD, Aristic, etc.
当然不是说只有开源的才有license,商用的也有。
关于你问的这几个license,我简单谈一下我的看法。
GPL,以GPL为基础的软件也要用GPL,或者跟GPL兼容。有一个种方式可以做到不用GPL,把该软件版权持有者的公司,收购了,这是后话。目前GPL的主要流行版本是GPLv2 和GPLv3, 至于区别,可以理解为GPLv3有专利报复条款。
Apache License 比较宽松一些,简单可以理解为,在该授权软件基础上的软件可以不开源。
CDDL 可以理解为GPL 和Apache的折中,在一个软件中用不同几个包,在一个包里边,就是该比较完整的模块必须用CDDL,其他的可以用别的,甚至,不开源。
EPL则是因为后来IBM将Eclipse IDE交由名为“Eclipse基金会 (Eclipse Foundation)”来管理,对CPL为小部分修改为成的授权条款。EPL可以理解为在EPL授权的软件基础上的工作,如果新开的软件是源软件独立,就可以用其他的license,否则,只能用EPL。举个例子,你对EPL授权的软件,修正的bug,添加的性能提升,都不算独立的部分。
估计有很多地方说的不清楚,内容比较繁杂,因为工作比较忙,就分享这么多,有问题,咱们可以进一步讨论。
谢谢。

From: http://www.zhihu.com/question/19962512

软件授权协议有什么作用,例如GPL、Apache License、CDDL、EPL这些协议有什么区别?的更多相关文章

  1. GPL & Apache License

    Copyleft[编辑] GPL不会授予许可证接受人无限的权利.再发行权的授予需要许可证接受人开放软件的源代码,及所有修改.且复制件.修改版本,都必须以GPL为许可证. 这些要求就是copyleft, ...

  2. 开源软件授权协议详解(GPL/MPL/LGPL/BSD/Apache Licence/Creative Commons/MIT)

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

  3. 几种常见的开源软件许可协议(GPL, LGPL, Apache License, BSD)

    GPL GPL授予程序接受人以下权利,或称“自由”: * 以任何目的运行此程序的自由 * 以学习程序工作机理为目的,对程序进行修改的自由(能得到源代码是前提) * 再发行复制件的自由 * 改进此程序, ...

  4. GPL,BSD,Apache,MIT开源许可协议

    在linux环境下学习的多了,这些开源协议也听的见的越来越多,感觉有必要仔细了解一下. 1. BSD 先说BSD是因为它的自由度相对来说是比较大的.BSD全称Berkeley Software Dis ...

  5. QQ在线客服,默认到要加好友,授权也不起作用需要先开通QQ营销服务

    QQ在线客服,默认到要加好友,授权也不起作用需要先开通QQ营销服务http://wpa.qq.com/msgrd?v=3&uin=你的客服QQ号码&site=qq&menu=y ...

  6. 整理开源协议问题 GPL APACHE

    整理开源协议问题 GPL APACHE APACHE 和 GPL 互相不兼容. APACHE 不可以使用 GPL 的代码. 但是 APACHE 可以调用 GPL 组件的接口. 比如 Linux 和 A ...

  7. 通信方案软件设计(环形动态申请内存,支持USART+IIC+SPI+CAN协议

    1 <STM32进阶之串口环形缓冲区实现>中讲得比较清楚(链接) 2 amobbs中讲的方法有点复杂,以下是链接和参考源码: 通信方案软件设计(环形动态申请内存,支持USART+IIC+S ...

  8. 不仅开源,而且对企业应用完全免费!ExtAspNet弃用GPL v2,拥抱Apache License 2.0(转)

    不仅开源,而且对企业应用完全免费!ExtAspNet弃用GPL v2,拥抱Apache License 2.0(转) 提出问题 ExtAspNet开源以来,一直坚持开源免费的原则,但是其GPL v2的 ...

  9. 『开源协议』Creative Commons Attribution 3.0 License . 协议的个人理解,并 转载分享 4000个 精美可商用小图标

    为什么会研究 Creative Commons Attribution 3.0 License Creative Commons Attribution 3.0 License 简称 CC3,是 一种 ...

随机推荐

  1. 常用命令ls cd cp mv touch mkdir pwd rm cut sort tr more less

    ls  -ldhtai 显示目录下面的文件 ls -l 显示详细信息 ls -d 显示当前目录 ls -t 以时间先后顺序显示 ls -a 列出所有文件包括隐藏文件 ls -i 显示文件的inode号 ...

  2. 网站开发常用jQuery插件总结(八)标签编辑插件Tagit

    一.Tagit插件功能 提高网站交互性,增加用户体验.至于其它的功能,还真没有.用一个input text就可以替换了它.但是text没有输入提示功能,而tagit拥有这个功能.官方示例如下图: 将关 ...

  3. FBX SDK 从2012.1 到 2013.3 变化

    ==================================================== ============================== 译文               ...

  4. xampp install

    the way of restart: sudo /opt/lampp/lampp restart config root: /opt/lampp/etc/httpd.conf /opt/lampp/ ...

  5. c/c++动态分配内存和malloc的使用

    c/c++动态分配内存  为什么需要动态分配内存 ---很好的解决的了传统数组的4个缺陷 动态内存分配举例 ---动态数组的构造 使用动态数组的优点:    1. 动态数组长度不需要事先给定: 2. ...

  6. 对SVM的个人理解

    对SVM的个人理解 之前以为SVM很强大很神秘,自己了解了之后发现原理并不难,不过,“大师的功力在于将idea使用数学定义它,使用物理描述它”,这一点在看SVM的数学部分的时候已经深刻的体会到了,最小 ...

  7. uva 11437 - Triangle Fun

    计算几何: 直线交点: #include<cstdio> using namespace std; struct node { double x,y; node(,):x(x),y(y){ ...

  8. CENTOS6上禁用IPV6和DHCP

    centos 6禁用ipv6方法   首先,在终端输入 ip -6 addr show 和 lsmod | grep ipv6查询一下有无安装IPV6模块,或用netstat -nuptl查看是否有i ...

  9. IntelliJ IDEA SVN的账号修改 信息清除

    来到编译器的setting设置 搜索subversion 点击subversion 找到下面的clear auth...按钮,点击一下 就可以了

  10. 【UVA 10816】 Travel in Desert (最小瓶颈树+最短路)

    [题意] 有n个绿洲, m条道路,每条路上有一个温度,和一个路程长度,从绿洲s到绿洲t,求一条道路的最高温度尽量小, 如果有多条, 选一条总路程最短的. InputInput consists of ...