自由软体的英文为“free software”,“free”一词有“自由”、“免费”的双重含意,因此要如何分辨自由软体(libre)和免费软体(gratis)?自由软体运动的创始人——理查德·斯托曼提供了以下的定义:‘自由软体的重点在于自由权,而非价格。要了解其所代表的概念,你应该将“自由”想成是“言论自由”,而不是“免费啤酒”’。更精确地说,自由软体代表电脑使用者拥有选择和任何人合作之自由、拥有掌控他们所用的软体之自由。在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)的定义,自由软件赋予使用者四种自由:
自由之零:不论目的为何,有使用该软件的自由。
自由之一:有研究该软件如何运作的自由,并且得以改写该软件来符合使用者自身的需求。取得该软件之源码为达成此目的之前提。
自由之二:有重新散布该软件的自由,所以每个人都可以借由散布自由软件来敦亲睦邻。
自由之三:有改善再利用该软件的自由,并且可以发表改写版供公众使用,如此一来,整个社群都可以受惠。如前项,取得该软件之源码为达成此目的之前提。
如果一软件的使用者具有上述四种权利,则该软件得以被称之为“自由软件”。也就是说,使用者必须能够自由地、以不收费或是收取合理的散布费用的方式、在任何时间再散布该软件的原版或是改写版,在任何地方给任何人使用。如果使用者不必问任何人或是支付任何的许可费用从事这些行为,就表示她/他拥有自由软件所赋予的自由权利。
GPL
主条目:GNU通用公共许可证
使用者必须接受软体的‘软体授权’,才能使用该软体,而在自由软体中,最常见的授权方式就是 GPL - GNU General Public License 了。
因为使用者是免费取得了自由软体的原始码,那么如果使用者修改了它的原始码,基于公平互惠的原则,使用者也必须公开其修改的成果。而这就是GPL的精神──自由、分享、互惠。
BSD许可证
主条目:BSD许可证
BSD许可证(Berkeley Software Distribution license),是自由软件(开源软件的一个子集)中使用最广泛的许可证之一。BSD软件就是遵照这个许可证来发布,该许可证也因此而得名。
BSD套件最初所有者是加州大学的董事会,这是由于BSD源自柏克莱加州大学。BSD开始后,BSD许可证得以修正,使得以后许多BSD变种,都采用类似风格的许可证。
跟其他许可证相比,从GNU通用公共许可证(GPL)到限制重重的著作权(Copyright),BSD许可证比较宽松,甚至跟公有领域更为接近。事实上,BSD许可证被认为是copycenter(中间版权),界乎标准的copyright与GPL的copyleft之间。"Take it down to the copy center and make as many copies as you want"。
大部分的自由软体可以免费取得,并且它的原始码可以自由修改并散布但它并不是没有版权。版权是当某项作品完成时就自然产生了,不需申请或注册。以本文为例,本文在写作的同时,作者即拥有版权,任何人皆无法剥夺。而当使用者花钱购买某套软体时,所购买的只是‘使用权’,使用者必须接受该软体的‘软体授权’,才能使用这个软体;而软体的原作者则仍然保有其‘版权’。
封闭软体通常会使用专属的封闭格式,但这会极大地限制了使用者的自由度。而自由软体则完全不同,由于自由软体的原始码是公开的,所以它所使用的任何格式都是透明的。自由软体永远不会利用专属的封闭格式来限制使用者分发或修改的自由。
自由软体的精神领袖是理查德·马修·斯托曼。他被人称为‘最后的真正骇客’,他认为一个好的软体,应该自由自在地让人取用。软体不应该拿来做为相互倾轧、剥削的工具。所以他起草GNU通用公共许可证来保障自由软体的自由,并创办了自由软体基金会来贯彻他的理念。领袖们有时被称作“Benevolent Dictators”。
严格地说来,开放原始码(open source)软体与自由软体是两个不同的概念,只要符合开源软件定义的软件就能被称为开放源代码软件。自由软件是一个比源软件更严格的概念,因此所有自由软件都是开放源代码的,但不是所有的源软件都能被称为“自由”。但在现实上,绝大多数开源软件也都符合自由软件的定义。比如,遵守GPL和BSD许可的软件都是开放的并且是自由的。
若要具体区分,可作这数项比较: 开放原始码的规定较宽松,而自由软体的规定较严苛。很多的开放原始码所认可的授权根本不算是自由软体,所以自由软体不得不和开放原始码划清界线了。
如果说“自由软体”会引起误解,(因为英文“Free”一词有“自由”、“免费”的双重含意),那么“开放原始码”的名字会引起的误解则更多。zh-hant:开放原始码很容易让人以为只要把原始码“公开”出来就算是开放原始码了,但是如果使用者无法自由运用这些原始码,那么即使公开原始码也没有意义。有的软体公司只是为了想找使用者帮它除虫、帮它追踪编码,这样子会破坏了自由软体的原意。
自由软体的原意就是要给予使用者运用软体的自由,这个‘自由’就是自由软体的精神所在。但是为了商业化开放原始码却故意忽略了这个最重要的精神,反而无法让使用者体认到‘自由’的真意,那么开放原始码这一个替代自由软体的辞句反而把自由的原意除去了。
而自由软体的精神领袖理查德·马修·斯托曼也很反对人们把开放原始码和自由软体混为一谈。
自由软件因此并不是「非商业软件」。自由软件必须适用於商业用途。自由软件的相关图书商业开发模式已很常见;这样的自由商业软件相当重要。
如果不影响到后来的使用者发行改写的权利规定,则额外加入的规范如何将一个改写后的自由软件制作为套件的相关规定亦可行。同理,像这类「如果你用这种方式发行软件,你必须让这个软件也能在这种情况下可得」的措辞也是在许可之下的(这类规定也让使用者有该不该发行该软件的选择)。如果许可证要求「在当你发行修订版时,若先前的开发者要求一份拷贝,则你必须提供」的条件,它也是符合自由的。
在 GNU 工程中,我们使用 copyleft 这类许可方式来保护每个使用者都享有这些软件自由,但是 非 copyleft 的自由软件 也同时存在。我们相信有某些重要的原因使得 copyleft 的许可方式较其它自由软件许可方式要好 ,但是如果你的软件不是 在 copyleft 的许可之下,我们也使用它。
欲知自由软件、以 copyleft 许可的软件、和其它种类的软件的相连性,请见 「自由软件的种类」 一文。
有时候,政府 外销管制 和交易许可的规定会限制使用者全球性散布软件的权利和自由,虽然软件开发者/作者没有权力去排除或是消弭这些限制,但是,她/他们可以、 也必须拒绝将这些条件列入自由软件的使用法则中,如此这般,这些官方规定将不会影响到使用者的软件自由,和自由软件相关的人、事、物也因此不在这些政府部门管辖范围之内。
大部份的自由软件的许可证是基於 copyleft ,而可以加诸於其上的要求类型是有限制的。如果一份基於版权的许可证遵守了如上所述的自由时,那么就不太可能会遇上我们从未预期过的其它类型的问题(虽然偶尔还是会有)。不过,有一些自由软件的许可证是基於合同的条款,而合同可以被加诸较大程度的可能限制。这表示像是这样的许可证,会有许多可能的方式变得受限到无法接受,因而成为「非自由」的。
我们实在无法列出所有无法接受的可能的合同限制。如果一份基於合同的许可证,以一种基於版权的许可证所无法的不寻常方式,限制了使用者,并且不能如本文所述的视为合格〔的自由条款〕,我们将会试著审度这合同,并且很有可能认定它是非自由的。
当谈到自由软件时,最好避免使用「给」或是「免费」这类的措辞,因为这些措辞会给人给人「free」是指「价格上的免费」的误导,而忽略了使用软件自由的真义。有些词语像 「盗版」就有类似的涵义,我们希望自由软件的使用者不会想被这样指称。有关讨论这些措辞的用法,详见 「容易混淆的词语,请尽量避免」 一文,我们也有 「自由软件一词的翻译」 的多种语言版本。
最后,请注意,这些有关自由软件定义的标准需要审慎的诠释。我们根据某一软件选定的许可方式是否符合上述四点软件自由的精神和重点文字,来决定该软件是否符合自由软件的标准。如果某一软件含有不公平、违背上述四点自由软件精神的限制,就算该软件发行了,我们拒绝使用它。有时候,一份许可证会引发一些讨论,在接受它成为一份自由软件许可证之前,需要我们和一些律师法律专家们共同来判断和思考,当我们达成共识的时候,我们会更新自由软件标准,让使用者更容易了解什么许可方式是符合或是不符合自由软件定义的。