开源软件与自由软件

我不知道有多少人纠结于这两个概念。我也曾经被这两个两个概念搞得晕头转向。

可能很多人先入为主的概念就是“开源软件”要比“自由软件”更加“自由”。我也曾想当然地这么认为过。也觉得这与中国的大环境有关。搞过“软件破解”活动的人(比如我)就很容易天真的认为“有了源代码就有了一切”。所以肯定“开源软件”就比“自由软件”更加自由(可以更加自由的使用)。凡是持有这种想法的人都犯了一个致命的错误——没有法律意识。所以不要以为你得到了一个软件的源代码你就的到了一切,因为搞不好有一天就会有哪个人(或组织)把你请上法庭。这就好比专利,每年中国的公司都要向美国的科技公司上交数亿元的专利费用,你以为是中国的公司没有能力搞明白这些专利里面的技巧吗?不是,只不过是没有能力先把这些东西搞懂并申请专利。如果从法律精神的角度——“拥有者拥有其所拥有的物品的一切权利”,如果某个商业公司开发了一个软件并且把它的源代码一起发布,一个很好的例子就是Google 的Andriod。我们可以说Androd是开源软件(它的源代码公开)。但是Andriod并不是自由软件。因为Google必须要通过Andriod来赚(尽可能多的)钱。所以Google会通过法律的手段来声明——"凡是使用Andriod的用户(比如三星)必须给我money!" 千万不要藐视法律!先不要生气,因为google公司还有更气人(或者说虚假)的行为,比如google公司本来可以声明——不允许任何使用Andriod的人修改其中源代码。但是google公司是非常“慷慨”的公司,他会声明——“使用者可以改进Andriod的代码,但是修改之后的代码的利益由修改者与google公司共享!” (Richard Stallman 批评Andriod:http://www.sfw.cn/xinwen/index.asp?iID=344819)

而可能很多人担心自由软件会公开软件的源代码吗?如果你对次产生疑问,这完全不是你的错,而是因为你身处我们这个缺乏自由的国度。你需要认真得理解一下自由的含义,你可以反问一下——一个没有公开源代码的软件,你能够自由自在的使用他吗?你能享受“这个软件里面是否有后门”的“自由”吗?可以说开源是保证自由的必要条件。至于什么是自由软件,这是一个非常复杂的问题,因为“自由”是一个内含十分丰富的主题。读者可以自己去百或谷GNU许可证和BSD许可证这两个概念。我自己的理解,自由软件——没有版权的软件。请注意没有版权并不是说不可收费。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

根据 斯托曼自由软件基金会(FSF)的定义,自由软件赋予使用者 四种自由:

自由之零:不论目的为何,有使用该软件的自由。

自由之一:有研究该软件如何运作的自由,并且得以改写该软件来符合使用者自身的需求。取得该软件之源码为达成此目的之前提。

自由之二:有重新散布该软件的自由,所以每个人都可以借由散布自由软件来敦亲睦邻。

自由之三:有改善再利用该软件的自由,并且可以发表改写版供公众使用,如此一来,整个社群都可以受惠。如前项,取得该软件之源码为达成此目的之前提。

如果一软件的使用者具有上述四种权利,则该软件得以被称之为“自由软件”。也就是说,使用者必须能够自由地、以不收费或是收取合理的散布费用的方式、在任何时间再散布该软件的原版或是改写版在任何地方给任何人 使用。如果使用者不必问任何人或是支付任何的许可费用从事这些行为,就表示她/他拥有自由软件所赋予的自由权利。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

说道这里我想读者肯定都已经对“自由软件”和“开源软件”有了比较清晰的认识。


“开源软件”与"闭源软件"(最著名的就是Windows)看似非常坦诚,纯洁,在法律上也是"合理的",但是它在道德上,在哲学精神上是否符合自由精神呢?


至于"开源软件"与“自由软件”那个更合理。这肯定得分开来看。“开源软件”相对于“闭源软件”,对使用者来说是完全透明的。你可以安心的睡觉,因为"你知道你花钱买了一个什么东西"。再想想Windows能给你这种安全感吗?

再从软件开发的角度来说,开源软件会吸引更多的开发这参与进来,不过这也不是绝对的,毕竟那些闭源的软件,像Apple和微软的产品,他们也可以通过只提供API的方式来支持开发应用程序,API对应开发来说已经足够了。但是开源软件还有一个闭源软件无法比拟的优势——可以让所用使用者来改进软件,这样软件肯定会变得越来越好。


你可能感兴趣的:(开源软件与自由软件)