自由軟體(英語:free software)是允許使用者自由地使用、複製、研究、修改和分發的軟體。自由軟體不限制使用者自由地研究、修改和分發,因此必然是開源軟體。與自由軟體相對的是專有軟件(proprietary software),或譯私有軟體、封閉軟體。這幾類軟體的定義均與是否收取費用無關。自由軟體不禁止商業化,雖然通常免費,但不必須也不一定免費。發行者及所有使用者均可以自由地、無論收費或免費地複製、分發自由軟體。[1]自由軟體受到選定的自由軟體授權協議保護而發佈(或是放置在公有領域),其發布以原始碼為主,二進制檔案可有可無。[2]
用戶
自由軟件對全世界的商業發展特別是硬件有巨大的貢獻,多數嵌入式設備系統廠商鑑於自身無需支付授權費用和實用性方面的原因考慮也會在自由軟件的基礎上開發操作系統。世界上絕大多數操作系統多少都會包含有自由軟件組件(例如BSD的TCP/IP協議棧廣泛被包括MacOS,Windows在內的專有商業操作系統使用)。隨著越來越多的自由軟體支援 Microsoft Windows 平台,還有得益於 Android 平台的普及,目前有上億[3]的用戶在日常生活或工作中使用自由軟體。
自由軟件直接使用者往往是計算機方面的專業人士,或者有能力理解和改變原始碼的人。隨着Ubuntu[4][與來源不符],Manjaro[5][6][與來源不符] 等對普通用戶更友好的 GNU/Linux 操作系統的普及,普通用戶也能在缺少相關知識的情況下開箱即用。
自由軟件許可證
大多數自由軟件都使用類似的自由軟件許可證,使用最多的自由軟件許可如下[7][8]
- The MIT License
- The GNU General Public License v2
- The Apache License
- The GNU General Public License v3
- The BSD License
- The GNU Lesser General Public License(LGPL)
- The Mozilla Public License (MPL)
- The Eclipse Public License
意義與歷史
自由軟體的英文為「free software」。在英文裡「free」一詞有「自由」、「免費」的雙重含意,對於如何區分自由軟體(拉丁語:libre)和免費軟體(拉丁語:gratis),自由軟體運動社區的創始人——里查·史托曼做出了以下的定義:「自由軟體的重點在於自由權,而非價格。要了解其所代表的概念,你應該將「free」想成是「言論自由」(英語:free speech)一詞中的含義,而不是「免費啤酒」(英語:free beer)一詞中的含義。」[9]自由軟體代表用戶可以自由地運行、拷貝、分發、學習、修改並改進該軟件。[10]自由軟件的定義可以追溯至GNU宣言。
大部分自由軟體都在互聯網上自由發佈,往往不收取任何費用。一些或是以離線實體的方式發行,有時會酌情收取的費用(例如:工本費和運輸費),而人們可用任何價格來販售這些軟體。所以,自由軟體也可以是商業軟體:因為自由軟件許可證並不限制販賣軟體[10][11]或者提供商業服務[12],這些並沒有違反例如GPL等自由軟體許可證[13]。因此,「自由軟件」是關乎自由的問題,與價格無關,軟件如何定價並不影響它是否被歸類為自由軟件。[10]
自由軟體的定義
自由軟體基金會(FSF)對自由軟體的定義首次於1989年發表。[14]這份定義後來被布魯斯·裴倫斯(Bruce Perens)改寫為《Debian自由軟件指導方針》[15][與來源不符][16][與來源不符]。
根據斯托曼和自由軟體基金會(FSF)的定義,自由軟件賦予使用者四種自由:[17]
- 自由之零:不論目的為何,有使用該軟件的自由。
- 自由之一:有研究該軟件如何運作的自由,並且得以修改該軟件來符合使用者自身的需求。取得該軟件之源碼為達成此目的之前提。
- 自由之二:有重新散布該軟件的自由,所以每個人都可以藉由散布自由軟件來敦親睦鄰。
- 自由之三:有改善再利用該軟件的自由,並且可以發表修訂後的版本供公眾使用,如此一來,整個社群都可以受惠。如前項,取得該軟件之源碼為達成此目的之前提。
如果一軟件的使用者具有上述四種權利,則該軟件得以被稱之為「自由軟件」。也就是說,使用者必須能夠自由地、以不收費或是收取合理的散布費用的方式、在任何時間再散布該軟件的原版或是改寫版,在任何地方給任何人使用。如果使用者不必問任何人或是支付任何的許可費用從事這些行為,就表示其擁有自由軟件所賦予的自由權利。
大部分的自由軟體可以無需費用自由獲取,並且它的原始碼可以自由修改並散佈,但它並不是沒有版權。版權是當某項作品完成時就自然產生了,不需申請或註冊,而其內涵通常包括署名、發表(公開)、授予他人使用等權利。如合法享有著作權者無條件放棄所有著作權,則該作品就被「釋入公有領域」。需要注意的是,被釋入公有領域後,原著作權持有者就無法再對其他人如何使用該作品施加任何法律上的限制。因此科技巨頭可以合法地使用該等作品進行二次創作(例如製作新軟件),而該等二次創作品則在法律上享有完整的著作權,不受原著作權持有者的支配。
這並不符合自由軟件的定義。自由軟件必須能將「自由」無限傳承下去。因此自由軟件並未「釋入公有領域」,而是將「傳承自由屬性」作為一項允許他人使用自由軟件的條件。如任何人使用了自由軟件二次開發的軟件未向他人開放原始碼,則其對該自由軟件的二次開發,即屬違反著作權法。因此,自由軟體在法律上並未放棄著作權,而是訂明了若干「自由」的定義,並要求使用者如欲行使這些自由,必須對衍生作品維持相同授權。
相反的例子是非自由軟件(封閉軟件)。如果,當使用者付費購買或者免費獲得某套軟體時,所得到的只是「使用權」,使用者必須接受該軟體的軟件許可證才能使用這個軟體;而許可證列明軟體的原作者則仍然保有修改權,未經原作者同意進行修改屬違反許可證之行為,則該等軟件屬於封閉軟件。請注意,自由軟件也有許可證,常見的如GNU通用公共許可證,但這些許可證不會限制你獲取原始碼或者限制你修改軟件,唯一的要求是你對修改後的軟件必須應用同樣的或更寬鬆的許可證。即你修改後形成的新軟件,其他人也可以獲取其原始碼並修改,你不得限制他們這樣做,否則你當初的修改行為就因不符合GNU通用公共許可證而構成侵犯(之前參與編寫這個軟件的人所享有的)著作權。[18]
封閉軟體通常會使用專屬的封閉格式,並且不允許使用者分發,這極大地限制了使用者的自由。而自由軟體則完全不同,由於自由軟體的原始碼是公開的,所以它所使用的任何格式都是透明的。自由軟體永遠不會只發布專屬的封閉格式軟件來限制使用者修改的自由。[來源請求]
自由軟體的精神領袖
自由軟體的精神領袖是理查德·馬修·斯托曼。他被人稱為「最後的真正黑客」,他認為一個好的軟體,應該自由自在地讓人取用。軟體不應該拿來做為相互傾軋、剝削的工具。所以他起草GNU通用公共許可證來保障自由軟體的自由,並創辦了自由軟體基金會來貫徹他的理念。領袖們有時被稱作終身仁慈獨裁者。[來源請求]
自由軟件與開源軟件
最早的開放源代碼定義是在1998年創建,來自Debian自由軟件指導方針。雖然大多數的開放原始碼軟體同時也是自由軟體,但是,GNU項目認為「開源」這個詞並沒有抓住自由軟件的真正涵義,容易讓人過於着重軟件的質量、流行與成功而忽視或拋棄自由軟件精神的道德觀和社會價值,力主自由軟件是一個道德底線。[19]
FreeBSD、OpenBSD以及NetBSD的社群人員往往認為「Copyleft」是一種對自由的過度限制,是一種自由的侵害,因此他們傾向於使用較為寬鬆的BSD、MIT類似的協議,然而這類協議因為缺少相關的說明並不能避免其成果被專利流氓利用。[20]一些公司/群體為了避免專利流氓的侵害而且也不想使用例如GPLv3、MPL2.0等Copyleft協議的情況下會選擇使用Apache2.0協議。
對於BSD、MIT這類較為寬鬆的自由軟件協議,GNU項目認為這是對專有軟件的鬆懈(英語:lax)和寬容式(英語:permissive)[21][22],因為這些協議不能避免其衍生作品成為限制用戶自由的專有軟件,一旦你允許他們這麼做,那麼你就無法捍衛其他人的自由了。[23][22][與來源不符],例如FreeBSD在PlayStation 4系統軟件的使用以及BSD的TCP/IP協議棧在專有軟件的使用等。
開源軟件與自由軟體是兩個不同的概念,只要符合開源軟件定義的軟件就能被稱為開源軟件。而自由軟件有比開源軟件更嚴格的概念,因此所有自由軟件都是開放源代碼的,但不是所有的開源軟件都能被稱為「自由」。但一般,絕大多數開源軟件也都符合自由軟件的定義。
- 開放原始碼作用是,使用開放的開發方式,儘可能的使軟件最佳化,而自由軟件則將尊重用戶自由作為道德標準。
- 如果說「自由軟體」會引起誤解,(因為英文「Free」一詞有「自由」、「免費」的雙重含意),那麼「開放原始碼」的名字則會引起的誤解則更多。「開源」很容易讓人認為是只要把原始碼「公開」出來就算是開源了,即「你可以看到源代碼」。但是如果使用者的自由仍然得不到尊重,那麼即使公開原始碼也沒有意義。有的軟體公司只是為了想找使用者幫它除錯、吸收社區貢獻的功能,這樣子會破壞了自由軟體的原意。一個例子是Tivo公司生產的機頂盒。雖然它基於GNU/Linux,TiVo公司也按照許可證發布了源代碼,但是卻禁止用戶在機頂盒上運行自己的程序,或重新安裝系統。[19]
- 自由軟體的原意就是要給予使用者運用軟體的自由,這個『自由』就是自由軟體的精神所在。但是一些商業化開放的原始碼卻故意忽略了這個最重要的精神,反而無法讓使用者體認到『自由』的真意,那麼開源這一個替代自由軟體的辭句反而把自由的原意除去了。
自由軟體的精神領袖理查德·馬修·斯托曼很反對人們把開放原始碼和自由軟體混為一談。[24]。
自由軟件與免費軟件
免費軟體(英語:freeware)是一種不須付費就可取得的軟體,但是通常有其他的限制,使用者並沒有使用、複製、研究、修改和分發的自由。該軟體的原始碼不一定會公開,有些免費軟件即使所謂開源但是因為有會限制用戶軟件自由如限制用戶修改重分發或者限定/限制特定人群使用等行為的限制性條款存在並不是自由軟件。
Tivo化
Tivo化 是一種限制軟件自由的行為,即通過檢測可執行文件簽名,禁止用戶安裝或運行修改後的可執行文件,這種行為被 Richard Stallman 稱為「專制暴君」(英語:tyrants)[19]。這個名字源自於Tivo公司在其數字視頻錄像機的產品中使用了GNU和Linux內核的源碼但是其從設計上限制了用戶的軟件自由,用戶不能在其產品上自由運行和使用修改後的系統。因此自由軟件基金會出版了GPLv3,GNU項目軟件的授權協議也隨之升級,然而因為各種因素很多Linux內核開發者對升級表示反對。
數字限制管理
數字限制管理(英語:Digital Restrictions Management)或數字限制機制(英語:Digital Restrictions Mechanisms)是自由軟件社群對數字版權管理的一種諷刺性說法,因為這種行為限制了用戶的軟件自由權利。[25][與來源不符]自由軟件基金會針對此種從設計上就限制用戶軟件自由的行為發起了Defective By Design[26]運動。[原創研究?]
JavaScript陷阱
JavaScript陷阱(英語:The JavaScript Trap)指用戶在瀏覽器中使用專有軟件卻毫不知情的現象,RMS在GNU項目網站上給出了具體的定義[27]。
為了解決這個問題,GNU項目創造了提供探測並攔截用戶訪問的網頁上非自由、非平凡的JavaScript功能的GNU LibreJS給重視軟件自由的用戶使用。[27]一些自由軟件社群,為了解決此類問題也作出了一些努力,例如由自由軟件基金會支持的LibrePlanet為此專門成立了行動小組[28]。
參見
- 自由軟件,自由社會:理查德·斯托曼選集
- Copyleft
- GNU
- GNU寬通用公共許可證
- 理查德·馬修·斯托曼
- GNU/Linux
- 開放原始碼
- Linux的採用
- 自由開源軟體列表
- 自由及開放原始碼軟體許可證比較
- 海盜黨
- 分享主義
參考文獻
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.