12/20/2009

Linux为什么会比BSD更受到人们的欢迎?

Linux为什么会比BSD更受到人们的欢迎?

来源:http://cnbeta.com/articles/100436.htm

感谢OwnLinux.cn的投递
刚才看了一篇文章《评论:从射手QQ之争看开源许可证的选择》里面讲到了Linux为什么比以BSD成功 下面就来讲讲
说到 Free Software 的 OS,当属 Linux,BSD 相对来讲是冷门多了.但BSD的风评可不会比Linux 差呀?那么是什么原因造成 Linux 比 BSD 更受欢迎呢?
Linux 是出现约在 BSD 官司缠身、以及 Internet 开始风行之际.Linux 的开发者及爱好者正好能透过 Internet 实时得发布新闻、发表新点子、提问讨论、递送程序代码及进行错误回报,这种藉由 Internet 的分布式合作方式带给Linux 惊人的活力和无限的生命力,而经由 Internet 所带来的这种活力和生命力正是 Linux 长久以来能和 BSD 分庭抗礼的主要原因之一.

Linus Torvalds的管理哲学:
也许 Linus Torvalds 并不是像 Bill Joy(BSD 的开创者)那样是个天纵英才的程序设计师,但他无疑的是超一流的领导者.要知道,能参与 Linux Kernel 开发的往往都不是什么泛泛之辈,Linus 如何在这些天资聪颖的计算机怪才之间折冲樽俎是非常耐人寻味的.

硬件支持:
在Linux 现身之时,刚好是人们开始买得起个人计算机时.但糟糕的是,当时的BSD 对于当时的个人计算机所使用的 80386 硬件的支持度并不好,而一般老百姓应该不太会为了玩 BSD 而特地购买高价的服务器设备,因此人们,尤其是穷苦的大学生,若要玩 Unix 时只有 Linux 可供选择,相对来说BSD的吸引力当然就大不如Linux 了.不过说起硬件支持,其实 Linux 和 BSD 也只是难兄难弟,Linux 是较佳,但有些太新太特殊及特定制造商的硬件 Linux 还是无法支持!

GNU 的大力支援
GNU 提供了一个操作系统所需的各式各样必要组件,但最重要的组件 - Kernel 却迟迟没有着落.原本计划好要成为 GNU 官方 Kernel 的 HURD 的发展一直很不顺利,而 Linux 的出现就刚好出现填补了 GNU 这个拼图上最重要的一个大洞.另外,虽然 GNU 的软件质量是毋庸置疑,但 BSD 却希望他们的开发团队所维护的核心工具都能以 BSDL 发行,所以因为授权兼容性的关系,很多GNU 软件就被 BSD 的人们摒除在外了.因此喜爱 GNU 软件的人们除了Linux 之外就似乎别无选择了.Linux 和 GNU 是分不开的:没有 GNU,那么没有任何工具程序的 Linux 根本无用武之地;而没了 Linux,GNU 软件就少了一个可以尽情发挥的舞台了.因此,个人可以接受人们说 Linux 的全名应该是 GNU/Linux.若我们仔细想想 Linux 的发展成长过程,个人认为如此称呼并不为过.

而 Linus 也说过其实他并不是很反对 GNU/Linux 这个名字,饮水思源,毕竟 Linux 的确是藉助了 GNU 太多的核心工具才有今天的成就.若当时没有 GNU 计划,那么 Linux 根本不会出现在这个世界上:当初 Linux 0.0.1 发表时,Linus 就只完成了以下功能:可用 GCC 编译,然后它能做的也只有执行 BASH 这个 Shell 而已,而这2个工具恰巧都是 GNU 的作品.我们可以看到,Linux刚开始就和 GNU 结下不解之缘了.

教堂与市集:
BSD走的是教堂式的学院派路线,而Linux则是代表了市集式的骇客精神;

多样的版本:
Linux 的松散结构也反应在Linux 的发行版上.因为 Linux 并没有什么官方发行版,所以任何人只要有兴趣有能力,都可以自行发行 Linux,这使得我们能轻易得在 Internet 上找到超过 200 种以上的 Linux 发行版,而实际数字恐怕远不止如此.

商业公司的支持:
若 说 Linux 为什么能快速得进入商用市场,我想 Red Hat 的成立应该是一个关键性的因素.对于大型企业而言,或许授权费用的多寡并不是重点,他们要的是能够说服上司及股东的解决方案.透过 Red Hat 所提供的技术支持,信息部门也比较敢将 Linux 列入解决方案之中.这项优势是没什么商业支持的 BSD 所难以匹敌的.

媒体的推波助澜:
若 说到自由软件界的代表人物,我想人们脑海中会浮现的名单应该少不了 Richard M. Stallman、Eric S. Raymond 及 Linus Torvalds 这几位指标性人物.Richard M. Stallman 是公认的自由软件界的精神领袖,他的意见对于 GNU 还是具有一定的影响力.Eric Steven Raymond 则是黑客文化的传道士,他发表了不少像是《教堂与市集》、《提问的智慧》之类对黑客文化影响深远的文章.而 Linus Torvalds 则是 Linux Kernel 项目领导人.这几位指标人物彼此之间似乎总是意见不合,但他们却有一个共通点 - 他们都是 Linux 的拥护者.

也就是说,当几位自由软件界的代表人物都在努力为 Linux 宣传的同时,BSD 自然从人们的雷达范围中消失了.不管 BSD 再怎么棒,但人们不晓得的话也是罔然.

GPL vs. BSDL:
Richard M. Stallman 之所以是自由软件界的精神领袖,除了他发起了 GNU 计划之外,个人认为他为了 GNU 而撰写的 GPL 更是决定性的因素.GPL 是一种偏向于开发者的回馈条款:使用者可以自由运用 GPL 程序代码,但所有修改必须也以 GPL 开放,让所有人(包括原始程序设计者)都能受益.这是能确保程序代码永远能让所有人自由使用的终极手段.相较之下,BSDL 应该是偏于使用者的一种无偿授权:使用者如何自由运用这些程序代码,程序设计师无权置喙,只要宣告这个软件是 BSDL 授权即可.因此,BSDL 的软件可能有一天会变成封闭软件,像 Microsoft 在 Windows 2000 核心里就采用了一些来自 BSD 的网络组件,但 BSD 的人们却没有因而受惠.Microsoft 并没有必要回馈那些修改后的程序代码.

软件的支持:
也许这是互为因果关系,因为 BSD 家族的市占率比 Linux 低多了,BSD 的开发者也相对较少,因此有不少缺乏资源的开放原始码软件就没有多余的心力能放在 BSD 上,这导致很多软件对 BSD 的支持度就没 Linux 那么好了.以 FreeBSD为例好了.FreeBSD 是针对 i386 硬件而开发的 BSD 分支,长久以来 FreeBSD 在功能、稳定、安全、效能等各方面的表现颇受好评,您可以在Google 上找到一篇 "Yahoo! and FreeBSD" 以为佐证.


评论:从射手QQ之争看开源许可证的选择

http://www.cnbeta.com/articles/100413.htm
新闻来源:原创
在射手播放器和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软件该有的东西。理清了许可证,和赋予开发者的权力,才有可能吸引到开发者。




没有评论: