GNU 計劃的歷史與哲學

此為 1998 年 12 月 5 日於德國帕德博恩大學 CLOWN(工作節點叢集—Debian GNU/Linux 機器的 512 節點叢集專案)以德語發表的演講翻譯稿。

德語原文亦可查閱,建議閱讀原文。


在準備這次演講的過程中,我閱讀了幾份文件並與很多人交談。在這樣做的過程中,我意識到即使是那些工作或多或少直接由 GNU 計劃創造的人,也不知道它的真正意義。在我們目前經歷的整體匆忙之中,似乎對根源的基本認識已經喪失。今晚我希望我能再次揭示其中的一些根源。

起源可以追溯到 70 年代到 80 年代的過渡時期,當時軟體產業變成了我們今天如此樂意接受的樣子。在最初的競爭中,一些公司採取囤積程式碼作為生存策略。在試圖支持這種行為的合法性時,他們創造了諸如「軟體盜版」之類的詞語,因為它們暗示當軟體被複製時,某些東西會遺失。人們被迫屈服於約束他們的許可協議,以確保沒有其他人可以存取這些程式。

當朋友問你是否可以從你那裡複製一個程式時,你立即面臨兩難的境地。複製程式對你沒有任何壞處,而且它在複製過程中不會損壞。如果他請你遞鹽,那將更具限制性,因為你們不能同時使用它。公司的策略迫使你在合法性和友誼之間做出選擇

很多人對此感到不滿,他們中的大多數人還是複製了程式—通常使用蹩腳的藉口,這些藉口主要是為了平息他們自己不安的良知(由公司選擇的措辭引起)。最流行的藉口可能是「如果我更常使用它,我就會付錢」,這句話可能是每個曾經依賴專有軟體的人都曾脫口而出的。

有一個人發現這種情況難以忍受。習慣了早期(他自己所說的)「天堂」,在那裡自由和負責任地使用各種可能性決定了一切,Richard Stallman 構想了一個完全自由系統的概念。很快就清楚地意識到,這個系統將與 Unix 相容,並且它被命名為—遞迴縮寫在當時非常流行—GNU,意思是「GNU's Not Unix」(GNU 不是 Unix)。Stallman 聚集了一些與他一樣對自由系統著迷的人,並創立了 GNU 自由軟體基金會,他至今仍是該基金會的主席。

由於首先 Unix 系統需要大量的組件,因此很明顯,這些是邁向完全自由系統的第一步。GNU FSF 致力於實作它們,到 90 年代初,GNU 系統已經完成(除了核心)。GNU 核心—專案名稱「Hurd」—有一個極其雄心勃勃的佈局,但事實證明它的開發非常緩慢且笨拙。幸運的是,在這個時候,Linus Torvalds 的第一個 Linux 核心正處於測試階段,當他看到 GNU FSF 已經完成的工作時,他將他的核心置於 GNU GPL 之下,並使其成為 GNU 系統的核心。

沒有必要講述剩下的故事了,因為我們大多數人都親身經歷過。

稍早我說過 Richard Stallman 構想了自由軟體的概念。我沒有告訴你的是它背後的哲學。

「自由軟體」中的「自由」一詞不是指價格,而是指自由。這不是一個沒有爭議的話題,最近運動的一些有遠見的人(如 Eric Raymond)開始談論「開放原始碼」,因為對大多數人來說,「自由」聽起來令人不安。「自由」讓人聯想到「讓世界變得更美好」和不安全感。它讓人聯想到改變,而改變會嚇壞許多人。為了麻痺這種恐懼,人們發明了其他自由軟體的許可條款,以便使這個概念更容易被更多人接受,並避免嚇到業界。

這就是 GNU 計劃不喜歡「開放原始碼」這個詞的原因。我們認為消除人們對這個想法的恐懼,而不是模糊這個概念,更有意義。只有當使用者和公司意識到自由的重要性時,我們才能避免重新回到舊模式。

GNU 計劃的哲學認為,每個人都應被授予權利去使用程式、複製程式以及更改程式以使其符合他或她的需求。GNU 通用公共許可證所做的唯一限制是,任何人都無權剝奪其他任何人的這種自由。

當作者將他的程式碼置於 GNU GPL 之下時,自由是他程式不可分割的一部分。當然,這是許多企業眼中釘,因為它阻止他們取得程式碼、修改程式碼,然後將其作為專有程式出售。只要有人試圖實現快速致富的夢想,這種自由就能阻止像微軟這樣的公司腐化我們系統的未來發展。

反對 GNU 哲學最常用的論點可能是,軟體是程式設計師的「智慧財產權」,只有他才能決定程式的發行價格,這才是正確的。這個論點很容易被大家理解,因為這正是過去 20 年來我們被告知要相信的。

然而,現實情況略有不同。可以靠出售自己編寫的軟體為生的私人程式設計師是例外。通常他們會將自己的權利交給他們工作的公司,而這家公司透過限制對該程式的存取來賺錢。實際上,擁有該程式權利並決定其價格的是公司,而不是程式設計師。

一位律師發明了一種特別出色的策略,他無權將其聲稱為他的「智慧財產權」。這種方法任何人都可以自由使用。為什麼我們會如此樂意接受這樣一個概念,即每一行程式碼—無論寫得多麼糟糕或多麼沒有靈感—都是如此獨特和令人難以置信的個人化?對控制的熱衷已經蔓延開來,甚至人類基因也受到專利的約束……儘管通常不是由那些「使用」它們的人獲得專利。真的應該允許對所有事物進行專利和許可嗎?

這個問題是 GNU 計劃的核心思想之一。讓我們想像一下,如果沒有專利軟體這樣的概念,或者軟體專利是不尋常的,因為每個人都根據 GNU GPL 發布他們的程式。

可以輕鬆存取必須一遍又一遍解決的標準問題的解決方案。沒有人需要再次浪費時間來處理同一個問題幾十次—程式設計師可以尋找新的方法並著手解決新的問題。如果一群使用者需要程式中的某項特定功能,他們只需聘請一位程式設計師並讓他實作它即可。擺脫了許可和金錢的限制,只有兩個標準將決定程式的開發:需求和品質。

說到品質—現在越來越多的公司意識到,允許使用者存取原始碼給他們帶來了巨大的優勢。簡單來說:人多好辦事。對一個人來說難以想像的解決方案,對另一個人來說卻顯而易見。由於這種優勢,自由軟體通常比其專有軟體同類產品好得多。現在似乎在某些公司內部建立起來的思路是,讓使用者存取原始碼,但不授予任何其他權利。改進會恭敬地發回給公司,公司會用它們來改進其產品。基本上是一個龐大的免費開發部門。如果我們現在不注意這些事情,可能會發生在 5 年後,我們將不得不為一個透過應用我們自己的修補程式而產生的版本付費。

軟體作為「智慧財產權」的概念本身就帶有毀滅的種子(請原諒我在此處使用了誇張的說法)。只要我們接受這個概念,我們就接受另一家公司將試圖取得控制權的危險。微軟不是像某些人認為的那樣是邪惡的化身。微軟是廣泛接受的系統的自然結果

鋸斷你所坐的樹枝的恐懼也很普遍,但完全是不理性的。更好的程式會帶來更多有其他需求和新想法的使用者,從而創造更多需求。結構將會改變以適應新的情況,但工作量將會增加而不是減少,並且它將變得不那麼常規,因此更有趣。

剩下的最後一個常見恐懼是對缺乏認可的恐懼。好吧,對不同哲學的前鋒人物所抱持的尊重本身就說明了一切。就我個人而言,我寧願像 Linus Torvalds 或 Richard Stallman 那樣受到尊重,也不願擁有 Bill Gates 的聲譽。

誠然,這聽起來像是讓世界變得更美好和理想主義,但許多真正偉大的想法都是由讓世界變得更好一點的願望所驅動的。

為了非常清楚地解決一個問題:不,GNU 計劃並不反對資本主義或一般公司,也不反對軟體公司。我們並不想減少獲利潛力,恰恰相反。我們告訴每家公司,只要他們堅持自由軟體的基本原則,就盡可能從軟體、文件和服務的銷售中賺取更多利潤。這些公司賺得越多,他們就可以投入更多資金來開發新軟體。我們並不想摧毀市場,我們只是想讓它適應時代。

關於基本原則的簡短說明:當然,自由軟體也需要自由文件。解放書本的繼承者—軟體—同時接受對直接數位等價物的控制是沒有任何意義的。自由文件與自由軟體本身一樣重要。

也許有人認為我關於尋求「讓市場適應時代」的說法是一種誇張的說法,但這是 GNU 哲學中的一個重要觀點:軟體僅與少數怪人和一些公司相關的時代早已過去。如今,軟體是通往資訊的途徑。一個阻止通往資訊的途徑,並因此阻止存取資訊本身的系統,必須重新考慮。

當 Eric Raymond 發布所謂的「萬聖節文件」時,它引發了從欣快到偏執的情緒。對於那些沒有讀過它的人:這是一份微軟的內部研究報告,其中分析了自由軟體總體上,尤其是 Linux 的優缺點。作者基本上得出結論,微軟有兩種可能性來應對這種威脅。

第一種是建立新的或修改舊的協定,僅對它們進行粗略或根本不記錄,以便只有基於 Windows 的機器才能擁有可用的實作。

這種策略的一個例子是 HP「Cxi」印表機使用的協定,這些印表機以極其便宜的「Windows 印表機」進入市場。規格僅提供給微軟,因此這些印表機無法被任何其他系統使用。

一位「受過專業訓練」的電腦銷售員告訴我,「for Windows」貼紙表示印表機需要一種非常特殊的 RAM,只有 Windows 機器才具備;這就是為什麼它不能在 Linux 下使用的原因。諸如此類的事情會讓典型的使用者感到困惑,這直接把我帶到第二個描述的策略。

這些策略通常以首字母縮略詞「FUD」(恐懼、不確定、懷疑)來概括,並且在微軟發現它們之前很久就被 IBM 使用了。這個想法很明確:如果你讓人感到足夠的不確定,他或她就不敢做出任何決定,實際上仍然處於他或她目前的位置。這就是他們的想法。

一直以來,教育都是迷信的主要敵人。我們絕不能因為允許自己分裂而阻礙教育。

近代史上最明顯的分裂一直是已經提到的「開放原始碼」和「自由軟體」之間的區別。即使對於大多數業內人士來說,要區分這兩個概念也不是一件容易的事,只有從歷史背景來看才能理解。由於這是一個中心點,我想就此說幾句。

隨著 GNU 系統與 Linux 核心的完成,突然出現了一個完整、強大且自由的系統。這遲早不可避免地會引起公眾的注意。

當這種關注到來時,許多公司對「自由」這個詞感到不安。第一個聯想是「沒錢」,這對他們來說立即意味著「沒有利潤」。當人們試圖告訴他們「自由」真正代表「自由」時,他們完全震驚了。

受到這種不安全感和疑慮的影響,出現了不惜一切代價避免使用「自由」和「freedom」等詞的想法。「開放原始碼」這個詞就誕生了。

誠然,如果你使用「開放原始碼」而不是「自由軟體」這個詞,更容易推銷這個想法。但後果是「菜鳥」不了解或不理解最初的想法。這分裂了運動,並導致了令人難以置信的無效戰壕戰,浪費了大量的創造性能量。

更廣泛的感興趣受眾並不意味著我們應該減少談論其基本哲學。恰恰相反:越多人和公司不明白這種自由也符合他們的利益,我們就越需要談論它。軟體的自由為我們所有人—公司和使用者—提供了巨大的潛力。

我們的計畫不是要消除資本主義或摧毀公司。我們希望改變對軟體的理解,以造福所有參與者,以適應 21 世紀的需求。這是 GNU 計劃的核心。

我們每個人都可以盡自己的一份力量—無論是以程式或文件的形式,還是僅僅透過傳播存在另一種處理事物的方式。

至關重要的是要向公司解釋,自由軟體不是一種威脅,而是一種機會。當然,這不會在一夜之間發生,但是當所有參與者都意識到各種可能性和前景時,我們所有人終將獲勝。因此,如果您在軟體行業工作,請熟悉這個主題,與朋友和同事談論它。並且請不要試圖「傳教」—我知道我們大多數人都有這種傾向—論點本身就說明了一切。給他們時間和安寧來仔細考慮,並讓他們自己接受這個概念。向他們表明,自由的概念並不可怕。

我希望我能夠傳達這種哲學,或者至少激發人們對一些新想法的思考。如果您有問題或想討論一些事情,我將在這裡待一整晚,歡迎所有問題。祝大家度過一個非常有趣的夜晚。謝謝。