Linux、GNU 與自由

由於 Joe Barr 的文章 批評了我與 SIGLINUX 的往來,我想澄清實際發生的情況,並說明我的理由。

當 SIGLINUX 邀請我演講時,它是一個「Linux 使用者群組」;也就是說,一個為 GNU/Linux 系統使用者而設的群組,他們將整個系統稱為「Linux」。所以我禮貌地回覆,如果他們希望 GNU 計劃的人為他們演講,他們應該正確對待 GNU 計劃,並將系統稱為「GNU/Linux」。這個系統是 GNU 的一個變體,而 GNU 計劃是其主要開發者,因此社會慣例要求以我們選擇的名稱稱呼它。除非有強而有力的理由例外,否則我通常會拒絕為不以這種方式給予 GNU 適當讚譽的組織演講。我尊重他們的言論自由,但我也有不演講的自由。

隨後,SIGLINUX 的 Jeff Strunk 試圖改變群組的政策,並要求 FSF 將他的群組列在我們的 GNU/Linux 使用者群組頁面上。我們的網站管理員告訴他,我們不會以「SIGLINUX」這個名稱列出它,因為這個名稱暗示該群組是關於 Linux 的。Strunk 提議將名稱更改為「SIGFREE」,我們的網站管理員同意這樣做是可以的。(Barr 的文章說我們拒絕了這個提議。)然而,該群組最終決定保留「SIGLINUX」。

那時,這件事再次引起我的注意,我建議他們考慮其他可能的名稱。他們可以選擇許多不會將系統稱為「Linux」的名稱,我希望他們能想出一個他們喜歡的名稱。據我所知,事情就到此為止。

正如 Barr 所寫的,有些人是否真的認為這些行為是「施加壓力」,可以與微軟的壟斷力量相提並論?可能是這樣。拒絕邀請並非脅迫,但決心相信整個系統都是「Linux」的人,有時會產生令人驚訝的扭曲觀念。為了使這個名稱看起來合理,他們必須將小土堆視為高山,將高山視為小土堆。如果你可以忽略事實,並相信 Linus Torvalds 從 1991 年開始開發了整個系統,或者如果你可以忽略你通常的公平原則,並相信 Torvalds 應該獲得所有功勞,即使他沒有那樣做,那麼相信當你要求時我欠你一次演講,也只是很小的一步。

請想想:GNU 計劃開始開發一個作業系統,幾年後 Linus Torvalds 加入了一個重要的部分。GNU 計劃說:「請給予我們的計劃同等的提及,」但 Linus 說:「不要給他們分享功勞;以我自己的名字命名整個系統!」現在想像一下,一個可以看待這些事件並指責 GNU 計劃自大的人的心態。需要很強的偏見才能如此嚴重地誤判。

一個有如此偏見的人可以說出各種關於 GNU 計劃的不公平言論,並認為它們是合理的;他的同伴會支持他,因為他們希望彼此支持以維持他們的偏見。異議者可能會被辱罵;因此,如果我拒絕以「Linux」的名義參與活動,他們可能會覺得這是不可原諒的,並讓我為他們之後感受到的惡意負責。當這麼多人希望我將系統稱為「Linux」時,我這個僅僅發起其開發的人,怎麼能不遵守呢?而強行拒絕他們演講,就是強行讓他們不高興。那是脅迫,和微軟一樣糟糕!

現在,你可能會想知道為什麼我不只是躲避這個問題,並避免所有這些痛苦。當 SIGLINUX 邀請我演講時,我可以簡單地說「不,抱歉」,事情就會到此為止。我為什麼不那樣做呢?我願意冒著個人被謾罵的風險,以便有機會糾正削弱 GNU 計劃努力的錯誤。

將這個 GNU 系統的變體稱為「Linux」,正中那些只根據技術優勢選擇軟體,而不關心它是否尊重他們自由的人的下懷。有些人像 Barr 一樣,希望他們的軟體「免於意識形態」,並批評任何說自由重要的人。有些人像 Torvalds 一樣,會強迫我們的社群使用非自由軟體,並挑戰任何抱怨的人立即提供(技術上)更好的程式,否則就閉嘴。有些人說,技術決策不應因考慮其社會後果而「政治化」。

在 70 年代,電腦使用者失去了重新發布和更改軟體的自由,因為他們不重視他們的自由。電腦使用者在 80 年代和 90 年代重新獲得了這些自由,因為一群理想主義者,GNU 計劃,相信自由是使程式變得更好的原因,並願意為我們所相信的而努力。

今天我們擁有部分自由,但我們的自由並不安全。它受到 CBDTPA(前身為 SSSCA)、廣播「保護」討論小組(參見 www.eff.org),該小組提議禁止自由軟體存取數位電視廣播、軟體專利(歐洲現在正在考慮是否實施軟體專利)、微軟針對重要協定的保密協議,以及每個用比現有自由軟體「更好」(技術上)的非自由軟體誘惑我們的人的威脅。如果我們不夠關心去保護它,我們可能會再次失去自由,就像我們第一次失去自由一樣。

我們之中會有足夠的人關心嗎?這取決於許多因素;其中包括 GNU 計劃有多少影響力,以及 Linus Torvalds 有多少影響力。GNU 計劃說:「重視你的自由!」Joe Barr 說:「僅根據技術理由在非自由軟體和自由軟體之間做出選擇!」如果人們認為 Torvalds 是 GNU/Linux 系統的主要開發者,這不僅不準確,也使他的訊息更具影響力——而這個訊息說:「非自由軟體是可以的;我自己也使用和開發它。」如果他們認可我們的角色,他們會更願意聽取我們的意見,而我們將傳達給他們的訊息是:「這個系統的存在是因為有人關心自由。加入我們,重視你的自由,一起我們可以保護它。」請參閱 GNU 計劃 以了解歷史。

當我要求人們將系統稱為 GNU/Linux 時,有些人會以 愚蠢的藉口和稻草人論證 回應。但我們可能沒有失去任何東西,因為他們一開始可能就不友善。同時,其他人認可我給出的理由,並使用這個名稱。透過這樣做,他們幫助其他人意識到 GNU/Linux 系統真正存在的原因,這也提高了我們傳播自由是一個重要價值的觀念的能力。

這就是為什麼我一直頂著偏見、誹謗和悲痛。它們傷害了我的感情,但如果成功,這種努力有助於 GNU 計劃為自由而奮鬥。

由於這是在 Linux(核心)和 Bitkeeper(Linus Torvalds 現在使用的非自由版本控制系統)的背景下提出的,我也想談談這個問題。

Bitkeeper 問題

(請參閱下方的 更新。)

在 Linux 原始碼中使用 Bitkeeper 對自由軟體社群產生了嚴重的影響,因為任何想要密切追蹤 Linux 補丁的人,都只能透過安裝那個非自由軟體來做到。肯定有數十甚至數百名核心駭客這樣做了。他們大多數人正逐漸說服自己使用非自由軟體是可以的,以避免對他們的機器上存在 Bitkeeper 產生認知失調感。對於這種情況可以做些什麼呢?

一個解決方案是為 Linux 原始碼建立另一個儲存庫,使用 CVS 或其他自由版本控制系統,並安排自動將新版本載入其中。這可以使用 Bitkeeper 來存取最新的修訂版,然後將新的修訂版安裝到 CVS 中。這個更新過程可以自動且頻繁地運行。

FSF 無法做到這一點,因為我們不能在我們的機器上安裝 Bitkeeper。我們現在的機器上沒有非自由系統或應用程式,我們的原則是我們必須保持這樣。操作這個儲存庫必須由其他願意在他的機器上安裝 Bitkeeper 的人來完成,除非有人可以找到或創建一種使用自由軟體來完成它的方法。

Linux 原始碼本身在非自由軟體方面有一個更嚴重的問題:它們實際上包含了一些。相當多的裝置驅動程式包含一系列數字,這些數字代表要安裝在裝置中的韌體程式。這些程式不是自由軟體。將一些數字存入裝置暫存器是一回事;二進制形式的大量程式是另一回事。

在 Linux 的「原始碼」檔案中存在這些僅為二進制的程式,這產生了一個次要問題:它使人們質疑 Linux 二進制檔案是否可以合法地重新發布。GPL 要求「完整的相應原始碼」,而整數序列並不是原始碼。同樣地,將這樣的二進制檔案添加到 Linux 原始碼中違反了 GPL。

Linux 開發人員有一個計劃,將這些韌體程式移到單獨的檔案中;這需要幾年才能成熟,但完成後將解決次要問題;我們可以製作一個「自由 Linux」版本,其中不包含非自由韌體檔案。如果大多數人使用非自由的「官方」Linux 版本,那麼這本身不會有太大好處。這種情況很可能發生,因為在許多平台上,沒有非自由韌體,自由版本將無法運行。「自由 Linux」專案將必須弄清楚韌體的作用,並為其編寫原始碼,可能使用組合語言,用於它運行的任何嵌入式處理器。這是一項艱鉅的工作。如果我們多年來一點一點地完成它,而不是讓它累積起來,那麼這項工作就不會那麼令人望而生畏。在招募人員來做這項工作時,我們將必須克服一些 Linux 開發人員散播的觀念,即這項工作不是必要的。

Linux,核心,通常被認為是自由軟體的旗艦,但其當前版本部分是非自由的。這是怎麼發生的?這個問題,就像使用 Bitkeeper 的決定一樣,反映了 Linux 原始開發者的態度,他認為「技術上更好」比自由更重要。

歷史教訓我們,「重視你的自由,否則你將失去它。」「不要用政治來煩我們,」那些不想學習的人回應道。

更新: 自 2005 年以來,BitKeeper 不再用於管理 Linux 核心原始碼樹。請參閱文章 感謝你,Larry McVoy。Linux 原始碼仍然包含非自由韌體 blobs,但截至 2008 年 1 月,現在維護了一個 自由版本的 Linux,用於自由 GNU/Linux 發行版中。