自由软件

软件分类 来自维基百科,自由的百科全书

自由软件

自由軟體(英語:free software)是允許使用者自由地使用、複製、研究、修改和分發的軟體

Thumb
GNU計劃的自由軟體之標誌。
Thumb
自由軟體心智圖

用戶

自由软件对全世界的商业发展(特別是硬件)有巨大的贡献。

多數嵌入式设备系统厂商,鉴于自身无需支付授權費用和实用性方面的原因考虑,也会在自由软件的基础上开发操作系统。

世界上绝大多數操作系统多少包含有自由軟件组件,例如BSDTCP/IP协议栈广泛,被包括MacOSWindows在内的专有商业操作系统使用。

隨著越來越多的自由軟體支援 Microsoft Windows 平台,還有得益於 Android 平台的普及,目前有上億[1]的用戶在日常生活或工作中,使用自由軟體。

自由軟件直接使用者,往往是计算机方面的专业人士,或者有能力理解、改變原始碼的人。隨着Ubuntu[2]Manjaro[3][4] 等对普通用户更友好的 GNU/Linux 操作系统的普及,普通用户也能在缺少相关知识的情况下开箱即用

自由软件许可证

大多数自由软件都使用类似的自由软件许可证,使用最多的自由软件许可如下[5][6]

意義與歷史

自由軟體的英文為「free software」;在英文里「free」一詞有「自由」、「免費」的雙重含意。

自由软件的定义可以追溯至GNU宣言,代表用户可以自由地运行、拷贝、分发、学习、修改,并改进该软件[7]。对于如何区分自由軟體(拉丁語libre)和免費軟體(拉丁語gratis),自由軟體運動社区的創始人理查德·斯托曼做出了以下的定義[8][9]

“自由軟體的重點在於自由權,而非價格。要了解其所代表的概念,你應該將「free」想成是「言論自由」(英語:free speech)一词中的含义,而不是「免費啤酒」(英語:free beer)一词中的含义。”

大部分自由軟體都在互聯網上自由發佈,往往不收取任何費用。一些或是以離線實體的方式發行,有時會酌情收取的費用(例如:工本費和運輸費),而發行者及所有使用者可用任何價格,販售、分發這些軟體[10]

自由軟體可以是商業軟體,也不禁止商業化,因其许可证并不限制販賣軟體[8][11]、自由地研究、修改和分發,或者提供商业服务[12],这些并没有違反GPL等自由軟體许可证[13];如何定价,并不影响它是否被归类为自由软件[8]

自由軟體受到選定的自由軟體授權協議保護而發佈(或是放置在公有領域),其發布以原始碼為主,二進制檔案可有可無。[14]

自由軟體的定義

自由軟體基金會(FSF)對自由軟體的定義首次於1989年發表[15],後來被布魯斯·裴倫斯改寫為《Debian自由软件指导方针[16][17]

根據斯托曼和自由軟體基金會(FSF)的定義,自由软件赋予使用者四种自由:[18]

  • 自由之零:不论目的为何,有使用该软件的自由。
  • 自由之一:有研究该软件如何运作的自由,并且得以修改该软件来符合使用者自身的需求。取得该软件之源码为达成此目的之前提。
  • 自由之二:有重新散布该软件的自由,所以每个人都可以藉由散布自由软件来敦亲睦邻。
  • 自由之三:有改善再利用该软件的自由,并且可以发表修訂後的版本供公众使用,如此一来,整个社群都可以受惠。如前项,取得该软件之源码为达成此目的之前提。

如果一软件的使用者具有上述四种权利,则该软件得以被称之为「自由软件」。

也就是说,使用者必须能够自由地、以不收费或是收取合理的散布费用的方式、在任何时间再散布该软件的原版或是改写版,在任何地方给任何人使用。如果使用者不必问任何人或是支付任何的许可费用从事这些行为,就表示其拥有自由软件所赋予的自由权利。

自由軟體不是沒有版权

大部分的自由軟體可以无需费用自由获取,並且它的原始碼可以自由修改並散佈,但它並不是沒有版权;自由軟體在法律上并未放弃著作权,而是订明了若干“自由”的定义,并要求使用者如欲行使这些自由,必须对衍生作品維持相同授權。

版权是當某項作品完成時就自然產生了,不需申請或註冊,而其内涵通常包括署名、发表(公开)、授予他人使用等权利。

如合法享有著作权者无条件放弃所有著作权,则该作品就被“释入公有领域”。需要注意的是,被释入公有领域后,原著作权持有者就无法再对其他人如何使用该作品施加任何法律上的限制。因此,科技巨头可以合法地使用该等作品,进行二次创作(例如制作新软件),而该等二次创作品则在法律上享有完整的著作权,不受原著作权持有者的支配。

然而,这并不符合自由软件的定义。自由软件必须能将“自由”无限传承下去。因此自由软件并未“释入公有领域”,而是将“传承自由属性”作为一项允许他人使用自由软件的条件。如任何人使用了自由软件二次开发的软件,未向他人开放原始码,则其对该自由软件的二次开发,即属违反著作权法。

相反的例子是非自由软件(封闭软件)。如果,當使用者付费購買或者免费获得某套軟體時,所得到的只是“使用權”,使用者必須接受該軟體的软件许可证,才能使用這個軟體;而许可证列明軟體的原作者則仍然保有修改权,未经原作者同意进行修改属违反许可证之行为,则该等软件属于封闭软件。

请注意,自由软件也有许可证,常见的如GNU通用公共许可证,但这些许可证不会限制你获取原始码或者限制你修改软件,唯一的要求是你对修改后的软件,必须应用同样的或更宽松的许可证。即你修改后形成的新软件,其他人也可以获取其原始码并修改,你不得限制他们这样做,否则你当初的修改行为就因不符合GNU通用公共许可证,而构成侵犯(之前参与编写这个软件的人所享有的)著作权。[19]

自由軟體不使用封閉格式

封閉軟體通常會使用專屬的封閉格式,并且不允许使用者分发,這極大地限制了使用者的自由。

自由軟體則完全不同;由於自由軟體的原始碼是公開的,所以它所使用的任何格式都是透明的。自由軟體永遠不會只发布專屬的封閉格式软件,限制使用者修改的自由。

自由軟體的精神領袖

自由軟體的精神領袖是理查德·马修·斯托曼,被人稱為「最後的真正黑客」,認為一個好的軟體,应该自由自在地讓人取用。

軟體不應該拿來做為相互傾軋、剝削的工具,所以他起草GNU通用公共许可证,保障自由軟體的自由,並創辦了自由軟體基金會,貫徹他的理念;领袖们有时被称作终身仁慈独裁者

自由软件与开源软件

最早的開放源代碼定義是在1998年創建,來自Debian自由软件指导方针。虽然大多數的開放原始碼軟體同時也是自由軟體,但是,GNU项目认为“开源”这个词并没有抓住自由软件的真正涵义,容易让人过于着重軟件的质量、流行与成功而忽视或抛弃自由软件精神的道德观和社会价值,力主自由软件是一个道德底线。[20]

FreeBSDOpenBSD以及NetBSD的社群人员往往認為「Copyleft」是一種對自由的過度限制,是一種自由的侵害,因此他们倾向于使用较为宽松的BSDMIT类似的协议,然而这类协议因为缺少相关的说明并不能避免其成果被专利流氓利用。[21]一些公司/群体为了避免专利流氓的侵害而且也不想使用例如GPLv3MPL2.0等Copyleft协议的情况下会选择使用Apache2.0协议

对于BSDMIT这类较为宽松的自由软件协议,GNU项目认为这是对专有软件的松懈(英語:lax)和宽容式(英語:permissive[22][23],因为这些协议不能避免其衍生作品成为限制用户自由的专有软件,一旦你允許他們這麼做,那麼你就無法捍衛其他人的自由了。[24][23][與來源不符],例如FreeBSD在PlayStation 4系统软件的使用以及BSD的TCP/IP协议栈在专有软件的使用等。

形式上的差異

开源软件與自由軟體是兩個不同的概念,只要符合开源软件定义的软件,就能被称为开源软件

而自由软件有比開源软件更严格的概念,因此所有自由软件都是开放源代码的,必然是開源軟體

但不是所有的開源软件都能被称为「自由」。但一般,绝大多数开源软件也都符合自由软件的定义。

兩者內涵的差異

  1. 開放原始碼作用是,使用开放的开发方式,儘可能的使軟件最佳化,而自由軟件則將尊重用户自由作為道德標準。
  2. 如果說「自由軟體」會引起誤解,(因為英文「Free」一詞有「自由」、「免費」的雙重含意),那麼「開放原始碼」的名字则會引起的誤解則更多。“开源”很容易讓人认为是只要把原始碼「公開」出來就算是开源了,即“你可以看到源代码”。但是如果使用者的自由仍然得不到尊重,那麼即使公開原始碼也沒有意義。有的軟體公司只是為了想找使用者幫它除错、吸收社區貢獻的功能,這樣子會破壞了自由軟體的原意。一个例子是Tivo公司生产的机顶盒。虽然它基于GNU/Linux,TiVo公司也按照许可证发布了源代码,但是却禁止用户在机顶盒上运行自己的程序,或重新安装系统。[20]
  3. 自由軟體的原意就是要給予使用者運用軟體的自由,這個『自由』就是自由軟體的精神所在。但是一些商業化開放的原始碼卻故意忽略了這個最重要的精神,反而無法讓使用者體認到『自由』的真意,那麼开源這一個替代自由軟體的辭句反而把自由的原意除去了。

自由軟體的精神領袖理查德·马修·斯托曼很反對人們把開放原始碼和自由軟體混為一談。[25]

自由软件与免费软件

自由及开放源代码软件列表

免費軟體(英語:freeware)是一種不須付費就可取得的軟體,但是通常有其他的限制。

該軟體的原始碼不一定會公開;有些免费软件即使所谓开源,但是因为有會限制用户软件自由,如限制用户修改、重新分发或者限制特定人群使用等行为的限制性条款存在,并不是自由软件。

Tivo化

Tivo化英语Tivoization 是一种限制软件自由的行为,即通过检测可执行文件签名,禁止用户安装或运行修改后的可执行文件,这种行为被 Richard Stallman 称为“专制暴君”(英語:tyrants)[20]

这个名字源自于Tivo公司在其数字视频录像机的产品中,使用了GNULinux内核的源码,但是其从设计上限制了用户的软件自由;用户不能在其产品上自由运行、使用修改后的系统。

因此,自由软件基金会出版了GPLv3,GNU项目软件的授权协议也随之升级。然而,因各種因素,很多Linux内核开发者反对升级。

数字限制管理

数字限制管理(英語:Digital Restrictions Management)或数字限制机制(英語:Digital Restrictions Mechanisms)是自由软件社群对数字版权管理的一种讽刺性说法,因这种行为限制了用户的软件自由权利[26]

自由软件基金会针对此种从设计上就限制用户软件自由的行为,发起了Defective By Design[註 1]运动。

JavaScript陷阱

JavaScript陷阱(英語:The JavaScript Trap)指用户在浏览器中使用专有软件,却毫不知情的现象,RMS在GNU项目网站上给出了具体的定义[27]

为了解决这个问题,GNU项目创造了提供探测并拦截用户访问的网页上非自由、非平凡的JavaScript功能的GNU LibreJS,给重视软件自由的用户使用。[27]

一些自由软件社群,为了解决此类问题,也作出了一些努力,例如由自由软件基金会支持的LibrePlanet英语LibrePlanet为此专门成立了行动小组[28]

參見

参考文献

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.