BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,在1977至1995年间由加州大学伯克利分校开发和发布的。 
  历史上, BSD曾经被认为是UNIX的一支——"BSD UNIX", 因为它和AT&T UNIX操作系统共享基础代码和设计。在20世纪80年代,BSD广泛的被工作站级别的厂商所接受,并且衍生出了许多变形的UNIX授权软件。比较著名的例子如DEC的Ultrix,以及Sun公司的SunOS。这可以归功于BSD License相对而言比较地宽松,并且大多数这时成立的科技公司的创始人本身对UNIX系统的熟悉。 
  1990年代,BSD很大程度上被System V4.x版以及OSF/1系统所取代,晚期的BSD版本为几个开源软件的开发提供了平台并且一直沿用至今。 
  今天,“BSD”并不特指任何一个BSD衍生版本,而是类UNIX操作系统中的一个分支的总称。

在射手播放器和QQ影音为GPL吵得不可开交的时候,CBer应该少一些无知的谩骂,多学习一下开源许可证的基本知识。要骂也要骂到点子上,别不分是非,指着别人脚骂别人鼻子。在中国这样一个几乎完全不尊重版权,开源软件处于萌芽发展的国家,开源是一个及其冒险的选择,你做出的产品顷刻之间便会被人抄袭。在中国,选择开源是需要勇气的,既然选择了它,就选择了坦然面对这个残酷的现实,开源可不是简单开放了源代码了事就可以了的。

首 先,开源并不代表放弃自身的权力,相反,开源软件之所以存在,正是它非常注重这种权力,并且把这种权力赋予了软件的所有使用者。小心的选择许可证是开发开 源软件的第一步,也是每一个开源软件作者所必须要了解的,这代表了你对你的软件的最基本态度。很多的时候,这背后也隐藏着某种商业策略,特别是有商业公司 支持的项目。

比如Android为什么是Apache 2.0而不是LGPL/GPL发布?为什么Linux是以GPL发布?其中绝对不是简简单单的看哪个许可证用得多就选择哪个,而是深思熟虑的结果。千万不 要小看这个选择,一个许可证之于软件就相当于价值观之于普通人,代表了这个软件的基本品性。一个错误的许可证选择可能会直接导致整个项目的失 败,XFree86就是一个好例子,所以,选择许可证是一件小心、谨慎的事情。

各种开源的许可证主要的限制还是在redistribution(发布),所以个人/商业公司开发的软件包含了GPL的代码,只要你不发布,是可以任意使用的。

GPL 
这里不想再解释长篇的GPL译文和更长的FAQ。 简单说,GPL软件的使用者有权力得到软件的代码,只要使用了GPL,在发布(redistribution)的时候,整个项目也必须是GPL的,即主程 序和静态链接的库(Linux的.a和Windows的.lib)必须是GPL的,动态链接库(Linux的.so,Windows的.dll)必须是比 GPL兼容的。所谓GPL兼容,也就是GPL软件中可以使用的库,这些许可证必须比GPL弱(如LGPL,BSD),而不能是某个商业许可证。这里有一个 兼容列表 List of FSF approved software licenses。正因如此,GPL是带有很强的传染性,只要你的软件使用了GPL的代码,那么就请以GPL开放源代码吧,并且你的项目中也不能有任何和GPL不兼容的库。

LGPL 
GPL 带有很强的传染性,那么如果一个库使用GPL发布,那么使用这个库的所有软件也必须使用GPL发布,这对不想开放源代码的商业软件来讲是致命的打击——你 可以不使用其他的库,但最基本的libc是无论如何绕不开的,如果libc是以GPL发布,就相当于所有软件必须以GPL发布了。所 以,LGPL(Lesser GPL)诞生了。LGPL定义为,在以LGPL发布的库的基础上开发新的库的时候,新的库必须以LGPL发布,但是如果仅仅是动态链接,那么则不受任何限 制。这样商业软件就可以随意的使用LGPL的库了。因此,LGPL也具有传染性,但限制在在其基础上开发的库上,而并不限制使用它的程序本身——它的传染 性远小于GPL。

BSD、Apache 2.0 
相对GPL/LGPL的开放源代码,BSD,Apache 2.0就宽松许多——商业软件可以任意的使用BSD,Apache 2.0发布的软件代码,而不需要开放源代码,只需要提及代码的原出处就可以了。BSD和Apache 2.0提及的方式稍有不同,具体可以参考协议的详细内容。它们是GPL兼容的。

了解了几种常用许可证的异同,再来看许可证的选择。 
Android 使用宽松的Apache 2.0发布,因为Google作为一个商业公司,并不想失去商业软件的支持,它希望团结一切可以团结的力量加入的Android的开发中来,壮大自己的阵 营,使用Apache 2.0就无可厚非了。而Google本身,并没有丧失对Android的控制权,不会担心另外一个公司拿走了Android的代码开发出一个闭源 Android的对手。因为,只要Android不断的出新版,社区不停的跟进,并且不停的修改API,其他基于Android开发的公司不得不把自己的 Patch提回到主干上,否则,必然将耗费大量人力物力在维护自己的Patch上(钱这方面你斗得过Google?),得不偿失。而且,闭源之后,与整个 社区为敌,作为一个定位软件平台的项目,会流失大量应用软件开发者,以小博大,任何一个商业公司都不会干这种胜算不高的蠢事。

在看以 GPL发布的Linux为什么比以BSD发布的FreeBSD成功。其实正是因为GPL的传染性。当一个开发人员在Linux基础上开发一个新功能之后, 不得不以GPL开放源代码,贡献回Linux,这样Linux本身才能越来也越壮大而且留住了相当的开发人员,形成了一个 优秀软件->很多使用者和贡献者->贡献->更优秀的软件->更多的使用者和贡献者... 的良性循环。

正如每一个成功的男人背后都有一个女人,每一个成功的开源软件背后都有一个符合它策略的开源许可证。许可证明确的版权划分,明确的版权划分为软件发展提供 了一个良好的环境。正是因为老外重视版权,天天为版权争吵,才会有一个良好的商业软件和自由软件大环境。相对的,漠视版权的中国无论商业还是开源软件,才 会沦落到毫无创新能力,只能给外国打打下手,作点边角外包的境地。

最后,回到射手和QQ,他们都使用的ffmpeg作为解码器。 ffmpeg本身是LGPL的,使用它开发闭源软件是无可厚非的。但是ffmpeg有部分可选GPL的解码器主要是xvid和x264,由于GPL的传染 性,打开了可选的GPL解码器后的ffmpeg也成了GPL的,所以,基于ffmpeg的射手播放器和QQ影音从法律上讲,必须以 GPL发 布源代码,这个是强制的,不是可选项。射手的申明中引用的GPL FAQ的话已经很明确了,GPL软件中使用的动态链接库必须是GPL兼容的,也就是说,射手的字幕模块(它是动态链接到射手播放器本身),也必须是使用 GPL兼容的许可证发布,闭源显然是一个错误。

射手播放器的作者Tomasen发现了这个错误之后,很快开放了这部分的代码,弥补了自己的失误,这为射手播放器以后的发展扫清了一个大障碍,下一个障碍 是把非GPL兼容的CoreAVC商业解码器踢出发行包,这不是一个GPL软件该有的东西。理清了许可证,和赋予开发者的权力,才有可能吸引到开发者。

参考:http://yelinsen.iteye.com/blog/1028318

GPL LGPL Apache2.0 BSD 开源协议扫盲帖相关推荐

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

    Open Source Initiative组织: https://opensource.org/licenses/alphabetical 现今存在的开源协议很多,而经过Open Source In ...

  2. 详细介绍 BSD 开源协议

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

  3. 什么是BSD开源协议

    BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可以"为所欲为",可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布. 但"为所欲为&q ...

  4. 开源协议BSD、Apache2、GPL、LGPL、MIT

    目录 BSD开源协议(original BSD license.FreeBSD license.Original BSD license) Apache Licence 2.0(Apache Lice ...

  5. 【开源协议】BSD、Apache2、GPL、LGPL、MIT

    作为一个开发者,如果你打算开源自己的代码,千万不要忘记,选择一种开源许可证(license). 开源许可证(Open Source License) License就是版权许可证,里面详尽表述了你获得 ...

  6. 重要开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理

    当Adobe.Microsoft.Sun等一系列巨头开始表现出对"开源"的青睐时,"开源"的时代即将到来! 最初来自:sinoprise.com/read.ph ...

  7. 五种开源协议的比较(BSD、Apache、GPL、LGPL、MIT)

    当Adobe.Microsoft.Sun等一系列巨头开始表现出对"开源"的青睐时,"开源"的时代即将到来!现今存在的开源协议很多,而经过Open Source ...

  8. 五种开源协议:GPL, LGPL, APACHE, BSD, MIT

    BSD开源协议(original BSD license.FreeBSD license.Original BSD license) BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可以&q ...

  9. 开源协议比较(BSD,Apache,GPL,LGPL,AGPL,MIT)

    现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有 80种:https://opensource.org/licenses/alphabetical ...

最新文章

  1. Ubuntu安装python3.7,并将python链接指向python3.7
  2. STC单片机的命名规则
  3. 服务器与ssl证书有关吗,选择网站SSL证书和服务器位置有没有关系和影响
  4. (转)Android 使用com.j256.ormlite
  5. Android 开关按钮切换,类似于iphone 效果,view实现
  6. Foundation HTML5 Canvas中的2处错误
  7. php中isdefin,在PHP中定義全局常量數組的最“優雅”方法是什么
  8. linux版azure应用服务,【应用服务 App Service】解决无法从Azure门户SSH登录问题
  9. 电信aep平台是什么意思_江苏天鼎证券:股票平台跳水是什么意思?股票为什么会跳水?...
  10. jenkins 运行 shell脚本报错,Failed to restart tomcat.service: Interactive authentication required
  11. Codeforces Gym 100463A Crossings 逆序数
  12. testflight怎么做版本更新_《动物森友会》万圣节版本更新后,别忘了做这五件事情...
  13. 《电子元器件的可靠性》——3.4节失效分布类型的检验
  14. parentNode,parentElement,offsetParent
  15. 安卓开发 JAVA环境配置
  16. 学习笔记(16):GIS遥感科技论文写作技巧与方法初探-地理探测器
  17. 计算机怎么在桌面显示时间,怎么设置使电脑即显示时间有显示日期
  18. KPPW系统—开源免费的威客建站系统
  19. 物流中的独立节点路由试算
  20. 删除的备忘录怎么恢复

热门文章

  1. 怎样快速将PPT文件转换成Word
  2. 直接将ppt转换成word格式的方法
  3. 证券公司的核心业务及部门
  4. 怎样让java程序在别的电脑上运行_有关java桌面应用如何在别的电脑上运行
  5. 全球及中国表面活性剂行业品牌运营状况与消费需求前景调研报告2022年
  6. 迪赛智慧数——其他图表(矩形树图):人体每日膳食合理摄入结构
  7. Hypermedia模型是什么,举个栗子
  8. 第十篇:什么叫德配位
  9. 【绘制】HTML5 Canvas 虚线和不到20行js代码实现蚂蚁线
  10. OpenStack — Nova