官术网_书友最值得收藏!

  • 開源心法
  • 任旭東等
  • 7字
  • 2025-03-12 18:29:49

第1章 開源簡史

1.1 開源概述

1.1.1 相較于“自由軟件”,為什么是“開源”

在20世紀中期,互聯網技術和電信網絡的研究者們在一種互助的研究氛圍中培養了開放和協作的精神。許多科技公司的軟件也自由地分發。但很快,基于版權和限制性許可證的專有軟件開始興起,并逐漸成為行業的主流。面對自由精神的逐漸喪失,崇尚黑客文化的開發者們開始采取行動。1983年,Richard Stallman啟動了“GNU計劃”,這成為“自由軟件運動”興起的標志性事件。

然而,盡管自由的精神鼓舞人心,但“自由軟件”(Free Software)中Free一詞的雙重含義——既指“自由”也指“免費”——卻構成了對其理解的一個主要障礙。如果人們僅將Free理解為“免費”,這不僅可能偏離自由軟件的初始精神,也可能給軟件的商業實踐帶來挑戰。

那么,如何讓概念聚焦在“開放源代碼”上?這一議題在1998年Foresight Institute的會議上被提出[1]。當時,與會者在探討計算機安全問題時認識到,需要一個新術語來描述那些用戶可以自由訪問和修改源代碼的軟件。Eric S. Raymond參與了會議,并根據討論,他列出了3個可能的選項——Free Software(自由軟件)、Open Source(開源)和Sourceware(源軟件)。最終,與會者決定采用Open Source這一術語。自此,“開源”一詞開始在編程界、產業界和媒體中迅速傳播,并逐漸被廣泛采納。

“開源”作為一個將自由軟件的理念與現代商業實踐相結合的概念,一方面,它界定了在開源框架下軟件的生產和運營等業務活動;另一方面,它延續了自由軟件所倡導的自由權利,即“用戶自由查看源代碼、自由修改、再分發,以及自由獲取和使用源代碼”。

1.1.2 開源定義的確定與許可證的發布

“開源”概念確立后,界定這一概念的任務變得迫切。這一任務由開放源代碼促進會(Open Source Initiative,OSI)完成。OSI基于Debian自由軟件指導方針,制定了開源定義(The Open Source Definition,簡稱OSD),其中包含10項基本原則(更多細節,請參見6.1.1節)。

基于上述定義,OSI發布了首份正式的許可證清單,其中包括GNU通用公共許可證(General Public License,GPL)、GNU寬松通用公共許可證(Lesser General Public License,LGPL)、BSD(Berkeley Software Distribution)許可證等。為了支持新興的Apache Web服務器項目,Apache軟件基金會于1999年成立,并發布了至今仍廣泛使用的Apache許可證。

此外,還有MIT(The MIT License)許可證、MPL(Mozilla Public License)許可證等,這些許可證不僅促進了開源軟件在產業中的廣泛應用,也確保了開源基本原則在實踐中得到貫徹。

2019年,中國發布了首個開源許可證——木蘭寬松許可證(Mulan Permissive Software License,Mulan PSL)。2020年,木蘭寬松許可證2.0版本(Mulan PSL 2.0)獲得OSI的批準,正式成為國際化的開源許可證。

1.1.3 開源內涵的延伸

自開源概念誕生以來,其內涵不斷擴展和深化。最初,開源主要關注軟件領域,但隨著時間推移,它逐漸展現出社會化特征。如今,開源已經涵蓋了開源技術、開源項目、開源社區、開源基金會、開源商業、開源理念、開源文化、開源創新及開源生態等多個方面,共同推動了開源概念的擴展和深化。

開源技術:指的是源代碼可以公開訪問、查看、使用和修改的技術,如Linux操作系統、Python語言、MySQL數據庫、Apache服務器、Kubernetes容器編排技術等。

開源項目:指的是那些源代碼獲得許可并公開可用的項目。在這些項目中,貢獻的代碼是非常重要的,它可以來自公司或個人。開源項目構成了開源社區的基礎,其運營質量直接影響著社區的發展水平。

開源社區:由開源項目、項目發起者、維護者、貢獻者、用戶及項目周邊的生態系統等組成。社區成員通過共享技術、知識、經驗和資源,共同致力于開發、維護和推廣開源項目。

開源基金會:指的是為了維護開源項目、托管代碼,以及推廣開源原則和標準等而成立的非營利組織。自早期的自由軟件基金會成立以來,已經出現了Apache軟件基金會、Linux基金會、Mozilla基金會、Eclipse基金會、OpenInfra基金會等數十個開源基金會,近年來,國內也成立了首個開源基金會——開放原子開源基金會。

開源商業:指的是基于開源軟件和開源項目進行的商業運營和實踐。這種模式包括在提供開源軟件的基礎上,通過付費支持、服務或者特定產品功能來實現盈利,從而成為開源服務提供商;或者將開源軟件作為基礎設施,以減少企業重復開發的成本;此外,還可以通過資助開源項目等方式支持開源生態系統的建設與發展。

開源理念:源于自由、共享和協作等理念。這些理念不僅是人類文明發展中的基因傳承,也是自然界秩序的基本邏輯。

開源文化:包括開源價值觀和行為準則。與開源理念相比,它更側重于個體的主觀價值判斷,并強調集體品質。開源的價值觀及準則包括奉獻精神、感恩意識、開放精神等。

開源創新:指的是將開源的理念和文化作為推動技術進步的創新手段。例如,開源數字化治理就是利用開源所倡導的開放性、透明度和協作精神來推動數字化治理的一種實踐方式。

開源生態:廣義上,包括所有與開源相關的物理層面、社群組織及思想精神,它們共同構建了一個復雜的系統;狹義上,是指以開源項目為核心,通過開發者社區的協作,形成的日常運營的開源生態系統。

從自由軟件的提出到開源概念的出現,再到開源定義的明確化,如今開源的內涵已經非常廣泛,并形成了不斷演化的生態系統。


[1]  Christine Peterson,“How I coined the term ‘open source’”。

主站蜘蛛池模板: 获嘉县| 贡嘎县| 大竹县| 措美县| 兴隆县| 石首市| 芮城县| 都昌县| 巴东县| 康定县| 定日县| 犍为县| 靖西县| 玉门市| 贺兰县| 裕民县| 华蓥市| 卓资县| 嘉峪关市| 英吉沙县| 崇信县| 巴林左旗| 乐昌市| 瑞丽市| 忻州市| 鄂托克旗| 肥城市| 扎兰屯市| 峨边| 河池市| 南昌县| 丰台区| 新竹县| 安仁县| 巩义市| 乌拉特中旗| 双流县| 山丹县| 马公市| 满洲里市| 建昌县|