從UNIX到GitHub:十個關于自由和開源軟件歷史的重要事件
本文記錄了自由和開源歷史上的一些重要時刻,也稱得上是 FOSS 歷史上的大事件。從 UNIX 的全盛時期,到 GNU 和 Linux 的誕生,再到 GitHub 將開源“民主化”,以及在它們之間的一切。
現在看來,大家很容易會把開源軟件當作是理所當然的,但事實上,我們應該知道自由和開源軟件是經歷了長達半個世紀的一系列漫長發展的產物。
本文記錄了自由和開源歷史上的一些重要時刻,也稱得上是 FOSS 歷史上的大事件。從 UNIX 的全盛時期,到 GNU 和 Linux 的誕生,再到 GitHub 將開源“民主化”,以及在它們之間的一切。
1969:UNIX 的誕生
1969 年,AT&T 貝爾實驗室的工程師開始開發 UNIX。此后的 10 年,UNIX 在學術機構和大型企業中得到了廣泛的應用,當時的 UNIX 擁有者 AT&T 公司以低廉甚至免費的許可將 UNIX 源碼授權給學術機構做研究或教學之用,許多機構在此源碼基礎上加以擴充和改進。后來 AT&T 意識到了 UNIX 的商業價值,從 1979 年 UNIX 的版本 V7 開始,不再將 UNIX 源碼授權給學術機構,并對之前的 UNIX 及其變種聲明了版權權利。事實上,UNIX 在自由或開源軟件的概念存在之前就已誕生,可以說,UNIX 從來都不是一個自由或開源的操作系統。從某種意義上來說,UNIX 在促進共享源碼方面起了很小的作用。
然而,圍繞 UNIX 而成長起來的文化在后來的自由和開源軟件的意識形態和社區誕生過程中起到了奠基性的作用。UNIX 的開發者和用戶把自己看成是對抗軟件商業化的“反叛者”,他們自由地共享源碼,以分散的方式共同合作開發 UNIX 系統。
1984:AT&T 將 UNIX 商業化
從 UNIX 誕生起的前十五年,UNIX 操作系統的擁有者 AT&T 是被法院禁止從中獲利的。起因是 1958 年 AT&T 為避免美國司法部起訴它違反《反壟斷法》而簽訂的和解協議。AT&T 壟斷了美國長途電話業務,因此它同意不進入計算機行業,不銷售任何與計算機有關的產品,UNIX 是計算機操作系統,所以 AT&T 不能銷售它,任何要求得到源碼的機構,都能免費得到。
然而在 1984 年,事情發生了變化,當時對 AT&T 的限制法令被解除,AT&T 開始以能獲利的價格銷售 UNIX。UNIX 的源碼依然可用,但 AT&T 將 UNIX 從研究性質的項目轉變為一個商業項目,這在 UNIX 黑客社區里產生了危機。他們開始尋找一個可替代的類 UNIX 系統,且不受商業陷阱的阻礙。
1984:GNU 的誕生
在 AT&T 將 UNIX 商業化的同一年,理查德·斯托曼(簡稱 RMS)發起了 GNU 項目(GNU's Not Unix! 的遞歸縮寫),目標是創建一個完全自由且向下兼容 UNIX 的操作系統。RMS 在 1985 年曾說過,GNU 是一個我正在編寫的完全兼容 UNIX 的項目,所以我可以讓每一個使用它的人都能自由地使用。
GNU 項目剛啟動時,自由軟件這一現代概念也才剛剛誕生,即便是 RMS 也沒能充分表達其中“自由”的含義,早期 GNU 項目的追隨者輕易地認為 RMS 只是旨在開發不收任何費用的軟件。
然而,在接下來的幾年里,由于開發者和公司越來越少地在發布程序的同時提供源碼。此時,對于程序員和用戶,GNU 的真正含義開始變得清晰。GNU 的重要性體現在項目承諾所有的源碼都能自由使用。
1985:自由軟件基金會的建立
隨著 RMS 推動自由軟件發展和成熟的愿景日益強烈,他意識到僅通過編寫和分享 GNU 代碼是遠遠不夠的。于是,他建立了自由軟件基金會來協助該計劃。
自由軟件基金會(簡稱 FSF)是一個致力于推廣自由軟件的美國民間非營利性組織。它于 1985 年 10 月由理查德·斯托曼建立。其主要工作是運行 GNU 計劃,開發更多的自由軟件。FSF 幫助創建了保護 GNU 和其他自由軟件項目的法律和制度框架。
1991:Linux 內核的誕生
作為操作系統,GNU 最大的問題是具有完備功能的內核尚未被開發成功。雖然 GNU 項目的開發者成功編寫了大量重要的程序,但他們努力創建一個類似 UNIX 的內核來完善 GNU 的工作卻長期停滯不前。GNU 的內核,稱為 Hurd,是自由軟件基金會發展的重點,今天仍在開發中,經過近三十年的開發,它仍然不能可靠地用于生產環境。同時,BSD 項目的自由軟件內核也受到法律方面問題的困擾。
這為 Linux 內核創建了一個開放的機會。Linux 內核是 1991 年 Linus Torvalds 在其大學時期開發的一個項目,并將代碼貢獻了出來。最初,Linus 采用的是自己擬定的許可證,這個許可證會限制商業使用,后來他轉用了 GNU 項目使用的 GPL 許可證。當時 GNU 項目仍未完成,GNU 系統軟件集與 Linux 內核結合后,GNU 軟件構成了這個 POSIX 兼容操作系統 GNU/Linux 的基礎。
所以,Linux 內核填補了 GNU 用戶需要完整的且使用自由軟件的類 UNIX 系統的空白。
1998:開源峰會 (Open Source Summit)
到了 20 世紀 90 年代后期,GNU,Linux 以及其他重要項目(如 Apache)的自由軟件越來越普及。
由于像 Eric S. Raymond 這樣的黑客們開始擔心 RMS 和 FSF 在推動自由軟件的時候,受意識形態的影響太深,從而與現實脫節。Raymond 和他的追隨者認為,為了自由軟件盡可能大范圍地取得成功,他們應該側重于提供源代碼的實用價值,而不是過多的涉及共享和道德的哲學原則。
同時期,Netscape 宣布將其 Navigator 瀏覽器的源代碼在 Internet 上公布。這一系列舉動使得在 1998 年 2 月 3 日,資深黑客 Eric S. Raymond 邀請了大約十幾個自由軟件社區的著名成員一起開會(RMS 沒被邀請),希望可以促使更多公司能夠理解黑客社區早已行之有時的開放式軟件開發流程的獨特優勢,使這種先進流程能夠得到更廣泛的應用。與會者都認為,這是一個有助于消除過去人們對“自由軟件”存在誤解的大好時機,除了 free(免費?自由?)這個詞的含混之外,還有自由軟件給公眾留下的宗教化和喜對抗的印象,從實際出發,針對企業的顧慮,將自由軟件中實用和有助于業務的核心理念推廣出去。
與會者決定使用“開源軟件(open source software)”來代替“自由軟件(free software)”,以推廣開源這一概念,讓大眾更清晰地明白其與自由軟件之間的差別,并以較少的意識形態方式來傳遞價值。
1999:Red Hat 的 IPO
1999 年 8 月 11 日,紅帽公司正式上市,成為第一家開始公開交易的開源公司,這是自由和開源軟件具有商業意義最有力的證明。
雖然在同一時期上市的其他開源公司 —— 尤其是 VA Linux,它的表現并不好,但紅帽仍然是當今開源市場中的領先公司。
2004:Ubuntu 的推出
到 20 世紀 90 年代末,已經提供了許多 GNU/Linux 發行版。但因為缺少對用戶友好的圖形界面程序,除了極客之外,極少的用戶能熟練使用。
誕生于 2004 年 10 月 20 日的 Ubuntu 改變了這個情況。Ubuntu 由南非慈善家和企業家 Mark Shuttleworth 所創立,被稱為“為人類而生的 Linux”。
Ubuntu 的目標在于為一般用戶提供一個最新同時又相當穩定且擁有友好的界面,主要以自由軟件構建而成的操作系統。Ubuntu 目前擁有蓬勃發展的用戶社區,具有龐大的社區力量支持,用戶可以方便地從社區獲得幫助,是目前使用最廣泛的 GNU/Linux 發行版。
2007:Android 的推出
將自由和開源軟件提供給最多人使用的軟件項目無疑是 Android 移動設備操作系統。Android 是使用最廣泛的移動應用平臺。
雖然大多數 Android 用戶可能不知道 Android 部分是基于 Linux 內核的,然而,很多自由和開源軟件的倡導者抱怨 Android 的許可證沒有提供軟件自由,而且 Android 設備往往會被專有的組件和預裝軟件限制著,類似這種使用的不便,更多人傾向于使用 GNU/Linux。對于這種情況,Android 的開發者認為“Android 不是 Linux”,盡管有這個平臺的根源。
2008:GitHub 將開源“民主化”
最初,大多數自由和開源軟件項目的貢獻者通過電子郵件或私有的版本控制系統(如 Subversion 或 BitKeeper)進行協作。這種做法不僅笨重(因為沒有集中的、精簡的位置來查找開源項目和為其貢獻),而且某些版本控制系統還是專有的。
誕生于 2008 年的 GitHub 改變了這一情況。GitHub 提供使用 Git 進行版本控制的軟件源代碼托管服務。Git 是一個開源的分布式版本控制系統,由 Linus Torvalds 開發,于 2005 年在 GPL 開源許可證下發布。最初目的是為更好地管理 Linux 內核的開發,用于替代他們曾經使用的閉源解決方案 —— BitKeeper。
GitHub 的出現,使得更多開發者能更方便地參與開源項目,為開源項目貢獻,任何人都可以輕松提交自己的代碼,并在 GitHub 上托管自己的開源項目。
因為幾乎所有人都把自己的代碼托管在 GitHub 上,所以更容易查找開源項目,而且協作方式的改變,開發者也不再需要獲得開發者社區的權限才能參與開源項目。