自由軟件(英語: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]
- 自由軟件的原意就是要給予用戶運用軟件的自由,這個『自由』就是自由軟件的精神所在。但是一些商業化開放的原始碼卻故意忽略了這個最重要的精神,反而無法讓用戶體認到『自由』的真意,那麼開源這一個替代自由軟件的辭句反而把自由的原意除去了。
自由軟件與免費軟件
免費軟件(英語: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]。
參見
參考文獻
外部連結
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.