自由软件现在我终于明白了自由软件的意义了,可是我还是搞不清楚为什么那么多自由软件的收费情况啊。很多宣传自由软件的人都把它说成是免费软件,以此来吸引人,殊不知,这样却千万了更多的误解,谁能来解疑啊???
注:这些内容是我自己的理解,不保证准确,很可能有误导性。关于GPL和BSD许可证的内容请参阅
-*-*-*-*-*-*-
先说说“免费软件”,举个例子,MSN、QQ、IE都给人免费使用,但它的许可协议禁止反编译禁止对其进行修改禁止复制传播等等。 (详见这些软件的《最终用户许可协议》)
不管软件在其他方面上是否“自由”,软件都可以“免费”。
自由软件,有很多种。
执行《GNU通用公共许可证》(简称为GPL)发布的软件,允许绝大多数在私有软件中禁止的事项。 但有一条极端强制的内容:在这些软件的基础上改进、制作的软件,也必须使用GPL许可。
“GPL不会授予许可证接受人无限的权利。再发行权的...全部
注:这些内容是我自己的理解,不保证准确,很可能有误导性。关于GPL和BSD许可证的内容请参阅
-*-*-*-*-*-*-
先说说“免费软件”,举个例子,MSN、QQ、IE都给人免费使用,但它的许可协议禁止反编译禁止对其进行修改禁止复制传播等等。
(详见这些软件的《最终用户许可协议》)
不管软件在其他方面上是否“自由”,软件都可以“免费”。
自由软件,有很多种。
执行《GNU通用公共许可证》(简称为GPL)发布的软件,允许绝大多数在私有软件中禁止的事项。
但有一条极端强制的内容:在这些软件的基础上改进、制作的软件,也必须使用GPL许可。
“GPL不会授予许可证接受人无限的权利。再发行权的授予需要许可证接受人开放软件的源代码,及所有修改。且复制件、修改版本,都必须以GPL为许可证。
”
而BSD许可证则给予接受者更大的权力,你甚至可以在修改后将它作为非自由软件再发布。
比较著名的例子如微软产品中引入了BSD网络部分的代码,Mac OS X中使用了不少FreeBSD的组件。
无论执行GPL还是BSD许可证,软件都可以卖钱。其中GPL强制要求任何相关后续产品使用GPL。
还有一种比GPL还严格的许可协议,它甚至禁止任何人利用其谋利。这使得以利益优先的公司企业不愿参与其中。
仅仅依赖“不吃不喝”的高手们,限制了这些软件的发展。
GPL让参与的企业可以在自由软件项目中获利,又严格禁止它们“吃了又兜着走”。
BSD许可证则“随你便”
还有一种常常混淆的:开源软件
使用GPL的软件必须开源。
开源的软件未必是自由软件。
例如一个软件可以把源代码开放给你看,却在许可证中严禁你修改、再制。有什么意见你可以联络作者,却不能自己动手修改后发布。
(这些都是说合法情况。从技术角度来说“没有什么不可以”,当然,有吃官司赔钱的风险。
)
-*-*-*-*-*-*-
*-*-*-*-*-*-*
-*-*-*-*-*-*-
以下内容转载自wikipedia(维基百科)
原始地址
其文本内容在GNU自由文档许可证下发布
由于内容属于开放编辑,不保证准确性。
-*-*-*-*-*-*-
自由软件
自由软件,根据自由软件基金会的定义,是一种可以不受限制地自由使用、复制、研究、修改和分发的软件。这方面的不受限制正是自由软件最重要的本质,与自由软件相对的是非自由软件(proprietary software),也常被称为私有软件、封闭软件(其定义与是否收取费用无关)。
要将软件以自由软件的形式发表,通常是让软件以“自由软件授权协议”的方式被分配发布(或是放置在公共领域),以及公开的软件原始码。 自由软件对全世界的商业发展有巨大的贡献。 从装饰性的绸带的制造者到从事研究的科学家,自由软件使成千上万的人的日常工作更加便利, 为了满足用户的各种应用需要,它以一种不可思议的速度发展。
自由软件的主要许可证有GPL许可证和BSD许可证两种。
使用定义
自由软件的英文为“free software”,“free”一词有“自由”、“免费”的双重含意,因此要如何分辨自由软件(libre)和免费软件(gratis)?自由软件运动的创始人——理查德·斯托曼提供了以下的定义:‘自由软件的重点在于自由权,而非价格。
要了解其所代表的概念,你应该将“自由”想成是“自由演讲”,而不是“免费啤酒”’。[1]更精确的说,自由软件代表电脑使用者拥有选择和任何人合作之自由、拥有掌控他们所用的软件之自由。在GNU宣言(GNU Manifesto)中包含了斯托曼在一开始对自由软件使用定义的混淆。
大部分的自由软件都是在在线(online)发布,并且不收任何费用;或是以离线(off-line)实体的方式发行,有时会酌收最低限度的费用(例如:工本费),而人们可用任何价格来贩售这些软件。
然而,自由软件与商业软件是可以共同并立存在的︰因为禁止贩卖软件是违反了自由软件的定义。
最早的开放源代碼(Open source)定义是在1998年创建,来自Debian的自由软件指引。当时大多数的开放源代碼软件同时也是自由软件,反之亦然。
基于自由BSD的操作系统都是使用类似自由软件的授权协议,FreeBSD、OpenBSD以及NetBSD,不同的是它们对于“Copyleft”的阐述。这些操作系统的使用者常认为“Copyleft”是一种对自由的过度限制,是一种自由的侵害。
“免费软件”(freeware)是一种不须付费就可取得的软件,但是通常有其他的限制,使用者并没有使用、复制、研究、修改和分发的自由。该软件的源代碼不一定会公开,也有可能会限制重制及发再行的自由,所以免费软件的重点是不需要花钱,而不是自由的软件。
自由软件基金会(FSF)对免费软件的定义首次于1989年发表[1]。这份定义后来被布鲁斯·裴伦斯(Bruce Perens)改写为《Debian Free Software Guidelines》(DFSG,Debian自由软件指引)。
自由软件授权
根据斯托曼和自由软件基金会(FSF)的定义,软件的授权协议必须包含以下四种自由界定,才能被认证为“自由”(free):
* 自由阶段 0:任何人皆有因任何目的执行该软件的自由。
* 自由阶段 1:任何人皆可自由的研究该程序的源代碼并且依照自己的需求加以更改。
* 自由阶段 2:任何人皆可自由的再将该软件散发来帮助自己周遭的人。
* 自由阶段 3:任何人皆可自由的改进该程序,并将改变对大众发表,如此整个社群都将受惠。
如要满足自由阶段 1以及自由阶段 3则该软件必需让使用者能够观看/修改源代碼。也就是说,满足自由阶段 1以及自由阶段 3的软件可被称为开放源代碼软件。但是如果是要成为自由软件则 自由阶段 0~3 皆需满足。
由此可知,自由软件的领导者认为,自由软件必须给予人们在软件上的使用、学习、散布、修改等自由。如果有一个软件宣称它是自由软件,它就必须符合以上四个条件。
GPL
主条目:GNU通用公共许可证
使用者必须接受软件的‘软件授权’,才能使用该软件,而在自由软件中,最常见的授权方式就是 GPL - GNU General Public License 了。
因为使用者是免费取得了自由软件的源代碼,那麽如果使用者修改了它的源代碼,基于公平互惠的原则,使用者也必须公开其修改的成果。而这就是 GPL 的精神 - 自由、分享、互惠。
BSD许可证
主条目:BSD许可证
BSD license(BSD许可证)是"Berkeley Software Distribution license 的首字母缩写,是自由软件(开源软件的一个子集)中使用使用最广泛的许可证之一。
BSD软件就是遵照这个许可证来发布,该许可证也因此而得名。
BSD套件最初所有者是加州大学的董事会,这是由于BSD源自柏克莱加州大学。BSD开始后,BSD许可证得以修正,使得以后许多BSD变种,都采用类似风格的许可证。
跟其他许可证相比,从GNU通用公共许可证到限制重重的版权所有,BSD许可证比较宽松,甚至跟公有领域更为接近。事实上,BSD许可证被认为是copycenter(中间版权),界乎标准的版权所有与GPL的版权属左之间。
"Take it down to the copy center and make as many copies as you want"。[2]
自由软件并不是没有版权
自由软件可以免费取得,并且它的源代碼可以自由修改并散布但它并不是没有版权。
版权是当某项作品完成时就自然产生了,不需申请或注册。以本文为例,本文在写作的同时,作者即拥用版权,任何人皆无法剥夺。而当使用者花钱购买某套软件时,所购买的只是‘使用权’,使用者必须接受该软件的‘软件授权’,才能使用这个软件;而软件的原作者则仍然保有其‘版权’。
自由软件并不使用封闭格式
封闭软件通常会使用专属的封闭格式,但这会极大地限制了使用者的自由度。而自由软件则完全不同,由于自由软件的源代碼是公开的,所以它所使用的任何格式都是透明的。自由软件永远不会利用专属的封闭格式来限制使用者分发或修改的自由。
自由软件的精神领袖
自由软件的精神领袖是理查德·马修·斯托曼。他被人称为‘最后的真正黑客’,他认为一个好的软件,便该自由自在的让人取用。软件不应该拿来做为相互倾轧、剥削的工具。所以他起草GNU通用公共许可证来保障自由软件的自由,并创辨了自由软件基金会来贯彻他的理念。
开放源代碼软件与自由软件
严格地说来,开放源代碼(open source)?件(开源?件)与自由软件是两个不同的概念,只要符合开源软件定义的软件就能被称为开放源代碼软件。自由软件是一个比开源软件更严格的概念,因此所有自由软件都是开放源代碼的,但不是所有的开源软件都能被称为“自由”。
但在现实上,绝大多数开源软件也都符合自由软件的定义。比如,遵守 GPL和BSD许可的软件都是开放的并且是自由的。
若要具体区分,可作这数项比较︰
1。 开放源代碼的规定较宽松,而自由软件的规定较严苛。
很多的开放源代碼所认可的授权根本不算是自由软件,所以自由软件不得不和开放源代碼划清界线了。
2。 如果说“自由软件”会引起误解,(因为英文“Free”一词有“自由”、“免费”的双重含意),那麽“开放源代碼”的名字会引起的误解则更多。
开放源代碼很容易让人以为只要把源代碼“公开”出来就算是开放源代碼了,但是如果使用者无法自由运用这些源代碼,那麽即使公开源代碼也没有意义。有的软件公司只是为了想找使用者帮它除虫、帮它追纵编码,这样子会破坏了自由软件的原意。
3。 自由软件的原意就是要给予使用者运用软件的自由,这个‘自由’就是自由软件的精神所在。但是为了商业化开放源代碼却故意忽略了这个最重要的精神,反而无法让使用者体认到‘自由’的真意,那麽开放源代碼这一个替代自由软件的辞句反而把自由的原意除去了。
而自由软件的精神领袖理查德·马修·斯托曼也很反对人们把开放源代碼和自由软件混为一谈。(请参见:《Why Free Software is better than Open Source》一文)。
注释
[1]。 ↑ 原文如下:Free software is a matter of liberty, not price。 To understand the concept, you should think of 'free' as in 'free speech', not as in 'free beer'
[2]。
↑ 引用自:
-*-*-*-*-*-*-
最后的最后,如果你真的有耐心的看到这里(或者你是从下往上看的……),我问个问题:
你“明白了自由软件的意义”,那是什么?
-*-*-*-*-*-*-
*-*-*-*-*-*-*
-*-*-*-*-*-*-
源代码……
现在的电脑,其实仍然只能识别“0101010110”这样的二进制数据。
很早的时候,人们只能通过摆弄大堆的开关、电线来让计算机计算。干这行的人都属于[数学+物理+体力]劳动者。
后来有了“编”程——摆弄某种类似编织机的东西,弄好后它在纸带上打孔……
……
……
这些都是二进制编程。
假如说“加”这个指令的代号是10101010,那1+1就要
关关关关关关关开开关开关开关开关关关关关关关关开
纸纸纸纸纸纸纸孔孔纸孔纸孔纸孔纸纸纸纸纸纸纸纸孔
000000011010101000000001
实际上还会更复杂
……
后来有了“汇编”,用几个字母代替指令(例如“加”)。
写好后存成文本文件,用一个叫“编译器”的程序来“编译”它——可以理解为翻译,把那几个字母换成10101010
……
汇编仍然很接近机器码(二进制),让活人犯晕,让电脑舒服
后来就逐渐发展出所谓的“高级语言”——更接近人语(英语)
这类语言人们写起来相对容易,编译器的“翻译”工作就比较辛苦(编写编译器的人就更辛苦……)
编译器将要处理的文本文件就是“源代码”,编译器“翻译”之后生成的可以叫机器码,通常就是可执行程序。
开放源代码简单来说就是把未经处理的原始文本文件开放给大家看。
不开源就是仅仅将编译好的程序发放出来。源代码自己藏好。
理论上,有了二进制的程序文件,就可以反向编译(反编译)来得到文本代码文件。
然而对于稍微复杂一点的程序,这就几乎是不可能完成的任务。
开源将程序的一切展示给所有人。虽然不是所有人都看得懂,但大侠总是有的。有什么漏洞,会很容易被人发现,通常也会很快的被修补(发现错误的人通知原作者,或者干脆自己把代码中的错误改好发出来(需要版权所有者在开源时允许他人修改发行,否则“大侠”就违法了))
不仅仅是挑错误,还有许多热心人帮忙添加新功能,改善已有功能……
甚至,如果你开发了一个unix下使用的软件——开源并允许修改再发行——大家又觉得它很优秀,很快就会有人把它改改挪到Linux里(32位的,64位的,PC的,苹果的,还有那些根本没听说过的服务器CPU的),如果在windows里用的上,也会有人改改代码(以适应不同的运行环境),编译成windows版。
著名的自由文本编辑器vim(vi)几乎在所有操作系统中都有可运行版本。
著名的开源HTTP服务器软件Apache的常用版本包括FreeBSD(unix),Linux,Windows …… …… ……
还有许多许多开源、自由软件……
很流行的 电骡(eMule)P2P下载软件就是以GPL许可证释出的。
开发了适合中国用户的verycd版eMule(仅适用于Windows),另外还有很多很多其他的基于eMule的软件。例如aMule,我在Linux下就可以用它参与eMule的P2P共享。它还比verycd的eMule多几个小功能……但是也少了几个小功能……不过基本功能还是完全一致、互相兼容的。
就是因为它们都是基于“正宗”的eMule修改而来。
。收起