本翻譯可能無法反應當下現況。文章更動時間為 2021-07-21 ,原文為 英文

您應該查閱 更動之處 請參見 翻譯讀我 README 來瞭解維護本文翻譯所需之相關事宜。

自由與非自由軟體的類別

也請參閱你或許想避免的混淆詞語

[軟體的類別]

本圖解說軟體的不同類別,原作者為洪朝貴,後續經許多人更新;此圖解釋了不同軟體類別間的關係。這張圖可透過可縮放向量圖XFig 文件形式取得,授權條款可採用 GNU GPL v2 或後續版本、GNU FDL v1.2 或後續版本、或是創用CC 姓名標示-相同方式分享 v2.0 或後續版本。

自由軟體 (Free software)

自由軟體是允許任何人使用、複製、和/或散布、不論有無修改軟體、亦不論有無收費的軟體。尤其要注意,這代表源始碼必須可以取得,可以這樣說「如果不能有源始碼,它就不算是個軟體」;還請參見完整定義

若程式是自由的,則有潛力收錄到自由的作業系統中,例如 GNU、或是 GNU/Linux 系統中。

有許多方式可以讓程式自由——許多施行上的細節問題,可以有不同的處理方式,但都能讓程式自由。後面有列出一些可能的變化。至於特定自由軟體授權條款的相關資訊,則請見授權方式列表頁面。

自由軟體談的是自由,不是價格。不過專有軟體公司卻經常用英文的「free software」一詞來指價格免費,有時候他們講的是你可以免費取得二進位副本;有時候他們指的是軟體副本在你買電腦時便一併附含在內。上述這兩類都跟我們 GNU 專案所講的自由軟體無關。

因為這樣會造成混淆,所以當一家軟體公司說我們的產品是「free software」時,務必要確認實際的授權條款是不是能讓使用者真正擁有自由軟體所指的全部自由。有時候是真的自由軟體;但也有時候不是。

許多語言與華語(漢語官話)一樣,所謂「自由」跟「免費」是兩個不同意義的詞語;例如:法語裡的自由是「libre」,而免費則是「gratuit」。但英語就不是這樣,雖然英語的「gratis」可以清楚的指明免費,卻沒有個常見的形容詞可以單獨指出自由(freedom)而不會造成誤解。如果你講的是其他語言,我們建議你將自由軟體的「free」翻譯成更清楚、不易混淆的詞語。請參見我們整理的 「自由軟體」詞語翻譯,有各語言的譯文列表。

自由軟體經常比非自由軟體更加可靠

開源軟體 (Open source software)

「開源」軟體是有些人用來描述差不多和自由軟體相同類別的軟體而提出的用語。它所講的這類軟體和自由軟體並非完全相同:他們接受一些我們認為限制過度的授權條款。然而,這類軟體所涵蓋的範圍和自由軟體差異很小:據我們所知只有少數案例中的源始碼屬於開放源始碼但不是自由軟體。從原則上來說,也有可能有自由軟體不被認為是開源軟體,但我們不知道是否有這樣子的案例。

我們偏好採用「自由軟體」這個講法,因為它把「自由」點了出來——這是「開源」二字所辦不到的。

公版軟體 (Public domain software)

公版軟體是未受著作權保護的軟體。如果源始碼為公版著作 (public domain),則其屬於非著作傳自由軟體的特殊案例,代表它的有些軟體副本或修改後的版本可能不再自由。

有些情況下,可執行檔可以是公版著作,但沒有源始碼。這種狀況就不是自由軟體,因為自由軟體必須要能夠取用源始碼。還有,大多數的自由軟體也都不是公版著作;這些自由軟體都受到著作權法保護,如此著作權所有者才能在法律上透過自由軟體授權條款給予任何人授權,允許他人自由運用。

有些人會用「公版」、「公眾領域」的粗略概念來講「自由」或「免費取得」。然而,「公版」是法律用語,而根據其概念上精確來說,就是指「不受著作權保護」。我們建議只在此特定意義下使用「公版」一詞,若指的是其他意思還請用其他詞語來表達,如此才能一清二楚。

根據大多數國家已簽署的伯恩公約 (Berne Convention) 要求,任何著作在創作完成時皆自動受到著作權法保護。這包括程式創作。因此,如果你希望你寫的軟體變成公版著作,你必須做一些法律作為來宣告你放棄著作權;否則,程式便受到著作權法保護。

著作傳保護軟體 (Copylefted software)

著作傳保護軟體是指軟體採用的散布條款能確保所有版本之軟體副本皆能延續差不多一樣的散布條款。舉例來說,這代表著作傳式授權條款通常都不允許他人再對軟體加入額外要求(雖然可以允許加入有限的保障要求),並且要求讓使用者得以取用源始碼。這樣可以保護該程式和其修改後版本,不被常見的專有程式轉換作法奪走自由。

有些著作傳式授權條款,例如 GPL 第 3 版,會阻止用其他作法將軟體轉為專有形式,例如 Tivo 行為

GNU 專案中,我們利用著作傳保護幾乎所有我們撰寫的軟體,因爲我們的要旨是要給予 每一位 使用者「自由軟體」所必含的自由。請見我們的著作傳 (Copyleft) 專文深入瞭解著作傳如何運作,以及我們為何採用。

著作傳是種概念;若要以著作傳保護實際程式,你必須採取明確的散布條款。著作傳式散布條款有許多可行的作法,所以原則上有許多種著作傳式自由軟體授權條款。然而,一般實務上幾乎所有的著作傳保護軟體都採用 GNU 通用公眾授權。兩種不同的著作傳式授權條款通常「無法相容」,代表法律上將兩種不同著作傳式授權的源始碼合併屬於違法行為;因此,對社群而言最好的作法就是大家都採用同一種著作傳式授權條款。

非著作傳保護的自由軟體 (Noncopylefted free software)

非著作傳保護的自由軟體來自於作者除了允許再次散布和修改軟體外,也允許加入一些額外限制。

如果程式是自由軟體,但未受著作傳保護,則其軟體副本或修改後的版本不見得能一直保有自由。軟體公司可以編譯這個程式,無論有無修改,接著再以專有軟體產品的形式散布可執行檔。

X Window System 的案例可用來說明這點。X Consortium 發行了 X11,採用的散布條款使其成為非著作傳保護的自由軟體,後續的開發者幾乎都遵循相同的做法。沿用那些散布條款的軟體副本皆是自由軟體。然而,卻也有些非自由的版本,有些(或至少過去有)受歡迎的工作站電腦或個人電腦顯示卡只能在非自由的版本上正常運行。如果你正好使用這樣的硬體,那麼 X11 對你而言就不是自由軟體。X11 的開發者甚至還曾一度讓 X11 轉為非自由軟體;他們之所以能這麼做,是因為其他人也用相同的非著作傳式授權條款貢獻出程式碼。

放任寬容式授權軟體 (Lax permissive licensed software)

放任寬容式授權包括 X11 授權條款,以及兩種 BSD 授權條款。這些授權條款幾乎允許任意使用程式碼,包括允許散布專有的二進位檔,無論有無修改源始碼。

GPL 保護軟體 (GPL-covered software)

GNU GPL(通用公眾授權) 是將程式以著作傳保護的其中一種特定散布條款。GNU 專案將之用於大多數 GNU 軟體的散布授權條款。

若要說自由軟體等於 GPL 保護軟體無疑是種錯誤。

GNU 作業系統

GNU 作業系統是種 Unix 風作業系統,完全採自由軟體構成,由 GNU 專案的我們從1984年開始開發。

一套 Unix 風作業系統是由許多程式構築而成。GNU 系統含有全部的官方 GNU 軟體包。此外,它也包含許多其他軟體包,例如 X Window System 和 TeX 等,而這些不是 GNU 軟體。

第一次完整 GNU 系統的測試發行版時間在1996年。它採用 GNU Hurd,我們從1990年起開發的內核心。到了2001年,GNU 系統(內含 GNU Hurd)剛開始比較能穩定運行,但 Hurd 還缺少一些重要功能,因此未被廣泛採用。約莫同時,GNU/Linux 系統,一套 GNU 系統的旁系分支出來,改採用 Linux 作為核心,取代了 GNU Hurd,並且自 90 年代起大為風行。從這件事可看出,GNU 系統並非單一不變的程式集合;使用者和散布者皆可以根據其需求和興趣而選擇不同的軟體包,而這樣的成品仍屬於 GNU 系統的變化版。

因為 GNU 的目標就是要自由,所以 GNU 作業系統中的任何組件都是自由軟體,雖然它們不一定都受著作傳保護。只要軟體能幫助我們完成技術目的,合於規範的任何形式自由軟體皆得以接納。

GNU 程式

「GNU 程式 (GNU program)」等同於 GNU 軟體 (GNU software)。一個稱為 Foo 的程式只要是 GNU 軟體,那它就是 GNU 程式。我們有時也稱之為「GNU 軟體包 (GNU package)」。

GNU 軟體

GNU 軟體GNU 專案主導之下發行的軟體。如果某程式是 GNU 軟體,我們也稱之為 GNU 程式或 GNU 軟體包。GNU 軟體包的 README 和手冊中會寫出它屬於 GNU 軟體之一;此外,自由軟體目錄中也會標示出所有的 GNU 軟體包。

大多數 GNU 軟體採取著作傳保護,但並非全都如此;不過,所有的 GNU 軟體都一定是自由軟體

有些 GNU 軟體是自由軟體基金會 (FSF)員工所寫,但大多數的 GNU 軟體都來自多位志工。(有些志工是公司支薪,或由大學支薪,但對我們來說都屬於志工的範疇。)有些人貢獻的軟體其著作權是由自由軟體基金會所有;而有些則是撰寫軟體的貢獻者自身保留著作權。

著作權屬 FSF 之 GNU 軟體

GNU 軟體包的開發者可以將軟體的著作權轉移給 FSF,亦可自行保留著作權。他們能自己選擇。

如果他們將著作權轉移給 FSF,則該程式是為著作權屬於 FSF 的 GNU 軟體 ,而 FSF 可實行其授權條款。如果他們自己保留了著作權,那麼授權條款的實行與否則是他們自身的責任。

FSF 不接受非官方 GNU 軟體包的著作權讓與,這是 FSF 的規則。

非自由軟體 (Nonfree software)

非自由軟體是任何不自由的軟體。這類軟體禁止了使用、再次散布、或修改的權利,或是另行要求你必須請求授權許可,或是限制如此之多以致於你無法有效自由運用。

專有軟體 (Proprietary software)

專有軟體是非自由軟體的別名。過去我們將非自由軟體區分為「半自由軟體 (semifree software)」和「專有軟體」,前者可以在非商業用途下修改軟體並且再次散布,而後者不行。不過我們已放棄這種區分方式,現在我們把「專有軟體」作為非自由軟體的同義詞。

自由軟體基金會遵守不安裝任何專有程式到我們電腦上的守則,只有在我們必須撰寫自由版取代品的特定情況下才能暫時例外。除了這點之外,我們認為並沒有任何藉口安裝專有程式。

舉例來說,我們認為在1980年代期間,將 Unix 安裝到自己的電腦上還算正當,這是因為我們得依靠它才得以撰寫出 Unix 的自由版替代品。時至今日,我們已經有自由的作業系統,所以先前的條件不再適用;我們不會使用任何非自由的作業系統,而且我們在任何新電腦上都只安裝完全自由的作業系統。

但我們不主張 GNU 的使用者、或者 GNU 的貢獻者都必須遵守這條規則生活。這僅是我們為自己所設的守則。當然,我們還是期勉你也能一同遵循,為了你的自由之故。

免費軟體 (Freeware)

「免費軟體」一詞一直以來都沒有清楚、廣為接受的定義,但常見於指稱允許再次散布,但不能修改的軟體包(而且也不會提供源始碼)。這樣的軟體 不是 自由軟體,所以請不要用「免費軟體」這個詞語來指自由軟體。

共享軟體 (Shareware)

共享軟體是允許人們再次散布軟體副本的軟體,但任何人若要繼續使用軟體就 必須 支付授權費用。

共享軟體不是自由軟體,名稱雖有提到共享但還稱不上是半自由軟體。有兩個原因:

私家軟體 (Private software)

私家軟體或自用軟體 (custom software) 是替某一使用者(通常是組織機構,或公司)開發的軟體。使用者自行保留軟體並使用,但不將它以源始碼形式或二進位檔形式公開發行。

私家軟體只要它這個使用者能擁有四大自由就是自由軟體(雖然講起來有點瑣碎)。明確而言,如果軟體的使用者對私家程式能有完整的權利,那程式就是自由軟體。然而,如果這個使用者將軟體副本散布給其他人,卻不隨副本給予他人這四大權利,則這些副本就不是自由軟體。

自由軟體講求的是對於軟體的自由,而非能不能取得軟體。大體而言,我們不認為開發一套軟體但不公開發行有什麼錯。有些情況下某個程式可能相當重要,所以有的人會認為不願放出程式違反人性。然而,這樣的例子非常罕見。絕大多數的程式都沒重大到那種程度,所以拒絕公開發行程式確實沒有什麼對錯可言。因此,自由軟體運動的原則,和開發私家軟體或自用軟體之間沒有任何衝突之處。

幾乎所有的程式設計師職位都在開發私家自用軟體;所以大多數的程式設計工作,都能夠,或可以用與自由軟體運動相容的方式完成。

商業軟體 (Commercial software)

「商業」和「專有」大不相同!商業軟體是指軟體以屬於某營利事業之部分事業形式開發而成。大多數的商業軟體採用專有授權,但也有商業的自由授權軟體,還有非商業、亦非自由的軟體。

舉例而言,GNU Ada 是一公司開發的軟體,並一直採用 GNU GPL 的授權條款散布軟體,因此所有的軟體副本拷貝也都是自由軟體;但它的開發者有銷售軟體的支援合約。 當他們的業務和潛在顧客對談時,有的客戶會說:「我們覺得商業的編譯器軟體比較安全」,此時他們的業務就會回答:「GNU Ada 商業的編譯器;只是剛好也是自由軟體」。

其實就 GNU 專案的觀點而言,輕重剛好相反:重點在於 GNU Ada 是自由軟體,而商業不商業倒其次。不過,GNU Ada 之所以能有更多開發,是源自於商業行為這點毋庸置疑,對社群來說大有助益。

請協助讓更多人知道有自由的商業軟體。最簡單的幫忙方式,就是當你要提「專有軟體」時不要說成「商業軟體」了。