FOSS 簡介/簡介
David Wheeler
簡而言之,OSS/FS 程式是其許可證賦予使用者以下自由的程式:出於任何目的執行程式,研究和修改程式,以及重新分發原始程式或修改後的程式的副本(無需向以前開發者支付版稅)。 [1]
自由和開源軟體 (FOSS) 已成為一種國際現象,在短短幾年內從相對默默無聞發展成為最新的流行語。然而,人們對真正構成 FOSS 的內容以及這一新概念的影響仍然缺乏瞭解。為了更好地解釋這種現象,我們將考察 FOSS 背後的哲學和開發方法。
FOSS 世界中存在兩種主要哲學:自由軟體基金會 (FSF) 哲學和開源倡議 (OSI) 哲學。由於其歷史優先地位(參見下一節,“FOSS 簡史”)和在運動中的先驅地位,我們將從 FSF 哲學開始。
根據 FSF,自由軟體是關於保護四項使用者自由
- 出於任何目的執行程式的自由;
- 研究程式的工作原理並將其適應個人需求的自由。訪問原始碼是實現此目的的先決條件;
- 重新分發副本,以便您可以幫助您的鄰居的自由;以及
- 改程序序並將您的改進發布到公眾的自由,以便整個社群從中受益。訪問原始碼是實現此目的的先決條件。 [2]
FSF 的核心是合作的自由。由於非自由(自由是指自由,而不是價格)軟體限制了合作的自由,因此 FSF 認為非自由軟體是不道德的。FSF 還反對軟體專利以及對現有版權法的額外限制。所有這些都限制了上面列出的四項使用者自由。有關為什麼軟體需要自由的更詳細解釋,請參閱 FSF 解釋,“為什麼軟體應該是自由的”,可在 http://www.gnu.org/philosophy/shouldbefree.html 找到。
OSI 哲學有所不同
開源背後的基本理念非常簡單:當程式設計師能夠讀取、重新分發和修改軟體原始碼時,該軟體就會不斷發展。人們改進它,人們適應它,人們修復錯誤。而這一切發生的速率之快,如果人們習慣了傳統軟體開發的緩慢速度,就會令人驚訝。 [3]
OSI 關注的是建立強大可靠軟體的技術價值,並且比 FSF 更友好企業。它不太關注自由軟體的道德問題,而更多地關注 FOSS 分散式開發方法的實際優勢。
雖然這兩個運動的基本哲學不同,但 FSF 和 OSI 在軟體開發、反對專有軟體、軟體專利等方面在實踐層面上共享相同的空間並進行合作。正如理查德·斯托爾曼所說,自由軟體運動和開源運動是同一個社群中的兩個政黨。
FOSS 開發模型是獨一無二的,只有在網際網路出現以及由此帶來的通訊繁榮之後才成為可能。教堂和集市類比用於將 FOSS 開發模型與傳統的軟體開發方法進行對比。 [4]
傳統的軟體開發類似於古代建造大教堂的方式。一小群技藝精湛的工匠精心計劃了設計,並在孤立的環境中進行一切建造。建成後,大教堂便完工了,幾乎沒有進行過進一步的修改。軟體傳統上也以類似的方式構建。程式設計師團隊在孤立的環境中工作,經過精心計劃和管理,直到他們的工作完成並將程式釋出到全世界。一旦釋出,程式就被認為已完成,隨後對其進行的修改工作很少。
相比之下,FOSS 開發更像一個集市,它是有機生長的。最初的商販來了,建立了自己的結構,並開始做生意。後來的商販來了,建立了自己的結構,集市以看似非常混亂的方式發展。商販主要關心的是建造一個最低限度可行的結構,以便他們能夠開始交易。隨後的補充會根據情況新增。同樣,FOSS 開發也是從高度非結構化的狀態開始的。開發人員將早期最低限度可行的程式碼釋出給公眾,然後根據反饋修改他們的程式。其他開發人員可能會參與進來,修改或擴充套件現有程式碼。隨著時間的推移,一個完整的作業系統和應用程式套件會不斷地開發和演變。
事實證明,集市式的開發方法具有以下幾個優點:
- 減少重複工作
- 透過早期釋出程式並授予使用者修改和重新分發原始碼的權利,FOSS 開發人員可以重複使用同行的成果。規模經濟可能非常大。不是讓 10 家公司中的 5 名軟體開發人員編寫一個網路應用程式,而是有可能讓 50 名開發人員共同努力。減少重複工作可以讓 FOSS 開發擴充套件到涉及全球數千名開發人員的巨大、前所未有的規模。
- 建立在其他人的工作基礎之上
- 有了現有的原始碼可以借鑑,開發時間就會縮短。許多 FOSS 專案依賴於其他專案構建的軟體來提供所需的功能。例如,Apache Web 伺服器專案使用 OpenSSL 專案的實現,而不是編寫自己的加密程式碼,從而節省了數千小時的編碼和測試工作。即使在無法直接整合原始碼的情況下,現有的原始碼也能讓開發人員學習另一個專案是如何解決類似問題的。
- 更好的質量控制
- “足夠多的眼睛,所有缺陷都淺顯易見” [5] 是 FOSS 世界中經常被引用的名言。這意味著如果足夠多的合格開發人員使用應用程式並檢查原始碼,就會更快地發現並修復錯誤。專有應用程式可能會接受錯誤報告,但由於使用者被拒絕訪問原始碼,因此使用者只能報告症狀。FOSS 開發人員經常發現,可以訪問原始碼的使用者不僅會報告問題,還會準確地指出原因,並在某些情況下提供修復程式。這大大減少了開發和質量控制時間。
- 降低維護成本
- 任何軟體包的維護成本往往會等於或超過最初的軟體開發成本。 [6] 當單個組織必須維護軟體時,這可能是一項極其昂貴的任務。然而,在 FOSS 開發模型中,維護成本可以在軟體應用程式的數千個潛在使用者之間分攤,降低了每個組織的成本。同樣,增強功能可以由在該領域擁有最佳專業知識的組織/個人進行,從而更有效地利用資源。
自由/開源軟體運動簡史: [7]
自由/開源軟體運動起源於 20 世紀 60 年代和 70 年代美國計算機科學實驗室(斯坦福大學、伯克利大學、卡內基梅隆大學和麻省理工學院)的“駭客”文化。
程式設計師社群規模較小,關係密切。程式碼在社群成員之間來回傳遞——如果你做出了改進,你應該將程式碼提交給開發者社群。不分享程式碼被認為是不合時宜的——畢竟,你從朋友們的作品中獲益,你應該有所回報。
自由/開源軟體運動簡史
[edit | edit source]FOSS 運動可以追溯到計算機行業的最早期,儘管當時還沒有正式定義或概念化。直到 20 世紀 70 年代末和 80 年代初,軟體共享才真正開始與專有軟體發生衝突。早期關於專有軟體的參考資料之一是由威廉·亨利·蓋茨三世在其著名的“致愛好者的公開信”中提出的。[8] 這封信寫於 1976 年 2 月 3 日,他在信中痛斥了當時盛行的軟體共享文化。
為什麼呢?大多數愛好者都應該知道,你們中的大多數人都在偷軟體。硬體必須付費,但軟體是可以共享的。誰在乎那些為它工作的人是否得到報酬呢?
多年來,專有軟體會獲得更大的動力。在 20 世紀 80 年代初開拓性的麻省理工學院人工智慧實驗室,一家名為 Symbolics 的公司成立,並將其免費提供的程式碼(LISP 程式語言)變成專有軟體。在這個過程中,它消滅了當時麻省理工學院實驗室的軟體共享文化。[9] 然而,這種破壞最終導致了 FSF 和今天 FOSS 文化的誕生。
理查德·斯托曼,當時麻省理工學院實驗室的成員之一,對事態的轉變感到震驚。它將塑造他對專有軟體的看法,並使他決心建立一個自由的作業系統。GNU(GNU 代表 GNU 不是 Unix,是一個遞迴縮寫)專案誕生於 1984 年 的一月,在接下來的十年中,它建立了許多關鍵工具,這些工具構成了作業系統的一部分。FSF 誕生於一年後,旨在推廣自由軟體和GNU 專案。然而,直到 1991 年,GNU 專案還沒有釋出一個完全自由的軟體系統,因為缺少一個關鍵部分:核心。
核心是作業系統的核心。在 1991 年,林納斯·託瓦茲,當時是赫爾辛基大學的二年級研究生,編寫併發布了一個類 Unix 核心。以 FOSS 開發的方式,它被廣泛傳播,得到改進,並很快被改編為GNU/Linux 作業系統的核心。
當時還有其他正在進行的 FOSS 專案,包括 BIND、Perl 和 BSD 作業系統。所有這些專案最終都合併或交叉授粉。
GNU/Linux 作業系統將在功能和能力方面持續增長。在 1997 年,Linux 爆發到了媒體的聚光燈下,國際資料公司 (IDC) 指出,GNU/Linux 已經佔有 25% 的伺服器市場份額[10],並且以每年 25% 的複合增長率增長。
在 1998 年,為了回應 Netscape 釋出其 Netscape Navigator 程式碼作為 FOSS,一群 FOSS 開發者走到一起,建立了“開源”標籤。這導致了 開源倡議 和 開源定義 的形成。該倡議的主要目的是讓企業界關注 FOSS 開發流程,並引導其遠離自由軟體運動的“對抗性”態度。[11]
在 1999 年,GNU/Linux 發行商 紅帽 的首次公開募股 (IPO) 大獲成功,使其市值達到 48 億美元。當年其他成功的 IPO 包括 VA Linux(70 億美元)、Cobalt Networks(31 億美元)和 Andover.net(7.12 億美元)。[12] 作為 FOSS 的典範,GNU/Linux 的成功意味著 FOSS 已經真正到來。
腳註
[edit | edit source]- ↑ Wheeler, David, “Why OSS/FS? Look at the Numbers!” [home page online]; available from http://www.dwheeler.com/oss_fs_why.html ; Internet; accessed on November 7, 2003.
- ↑ “The Free Software Definition”[home page online]; available from http://www.fsf.org/philosophy/free-sw.html Internet; accessed on November 9, 2003.
- ↑ Open Source Initiative [home page online]; available from http://www.opensource.org ; Internet; accessed November 8, 2003.
- ↑ Raymond, Eric S., “The Cathedral and the Bazaar” [home page online]; available from http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ ; Internet; accessed on November 7, 2003.
- ↑ Raymond, Eric S., “The Cathedral and the Bazaar” [home page online]; available from http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html; Internet; accessed on November 7, 2003.
- ↑ Bengtsson, Lassing, Bosch, van Vliet, “Analyzing Software Architectures for Modifiability”; available from http://www.cs.rug.nl/~bosch/papers/SAAModifiability.pdf ; Internet; accessed on November 7, 2003.
- ↑ “A Brief History of Free/Open Source Software Movement” [home page online]; available from http://www.openknowledge.org/writing/open-source/scb/brief-open-source-history.html; Internet; accessed on November 7, 2003.
- ↑ “An Open Letter To Hobbyists by Bill Gates – 1976”; available from http://www.tranquileye.com/cyber/1976/gates_open_letter_to_hobbyists.html; Internet; accessed on November 7, 2003.
- ↑ Moody, Glyn, “Rebel Code”, Penguin Books, London, England, 2001.
- ↑ Rasch, Chris, “A Brief History of Free/Open Source Software Movement”; available from http://www.openknowledge.org/writing/open-source/scb/brief-open-source-history.html ; Internet; accessed on November 7, 2003.
- ↑ “History of the OSI” [home page online]; available from http://www.opensource.org/docs/history.php ; Internet; accessed on November 7, 2003.
- ↑ Scannell, Ed. “Linux takes the operating system scene by storm”, Infoworld.com; available from http://archive.infoworld.com/supplements/99poy_drv/99poy_linux.html ; Internet; accessed on November 7, 2003.