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

1.2 開源簡史

開源作為一個術語可以追溯到1998年2月3日,但其精神和理念可以追溯到幾十年前。下面讓我們一起回顧一下開源的歷?史。

查看、修改和分享,以及開放協作的概念,可以追溯到互聯網和計算機出現之前。這在黑客和創客文化中很常見,兩者都根植于工匠精神。數百年來,新的技術和創新都是在彼此分享思想的過程中誕生的,在每個發展階段中都能看到前人所打下的基礎。唯一的挑戰就是思想的傳播能力,古登堡發明了印刷機,加速了知識的傳播,進而開啟了文藝復興時?代。

協作精神和商業化之間一直存在著一種天然的緊張關系。15世紀和16世紀建立專利制度的初衷是保護發明者,但在許多情況下,這一行為也造成了扼殺開放協作的壟斷。一個典型的例子是在汽車領域,George B. Selden成功申請了兩沖程發動機的專利。Henry Ford挑戰了該專利并獲勝,這推動了發動機的創新,并形成了一個協會,使競爭對手可以共享汽車發動機知識(該協會也達成了最早的專利協議之一,成員們同意自由分享專利許可),這使得20世紀初的汽車業繁榮發?展。

1.2.1 將開源的根源追溯到大型機社群

在計算機領域,開源可以追溯到1955年加利福尼亞州洛杉磯市的一個房間里。國際商業機器公司(International Business Machines Corporation,IBM)發布了被認為是第一臺大型計算機的產品——IBM701 電子數據處理機。該機器的早期用戶聚集在一起,共同研究如何使用它,彼此分享信息、見解、代碼和知識,這與如今開源社群所做的事情非常相似,只是不通過互聯網分享,而是通過打孔卡片和磁帶。因此,SHARE社群誕生了——以其座右銘SHARE命名,SHARE不是一個縮寫,而是他們所做的事?情。

這些用戶的群體會議持續了多年,創建了一個名為SHARE操作系統的共享資源。這種共享文化已經超越了這些共享資源,人們需要一個地方來收集這些代碼,不僅是為了共享,還需要一個中央存儲庫來跟蹤它們。1975年,當時在康涅狄格銀行信托公司工作的Arnold(Arnie) Casinghino開始收集這些代碼,并將其錄制到磁帶上,分發給任何有需要的人。此外,如果有人想要將某些內容添加到磁帶上,可以將其發送給Arnie,內容經過審查后會被添加進去。我們可以稱之為開源項目的早期示例,其中包括維護者(Arnie)、開放協作和去中心化社群。有趣的是,這個項目至今仍在進行中;Arnie早已退休,但大型機社群的其他人已經接手維護這個磁帶了。現在可以通過互聯網下載磁帶內容,你也可以郵寄幾美元給維護者,之后他們會給你寄一盤磁?帶。

在20世紀50年代和60年代,隨著計算機技術的興起,以及在學術界的應用,開放協作和去中心化社群成為常態。與此同時,隨著計算機變得更加復雜,為這些計算機開發軟件的成本也在增加。正是在這個時候,我們看到了軟件公司的誕生,它們與IBM等硬件制造商的意見產生了分歧,后者免費將軟件與硬件捆綁在一起,因為它們認為這是銷售硬件的必要條件。美國政府對此有不同的看法,于1969年對IBM提起了反壟斷訴訟。盡管該案最終在1982年被撤回,但它促使IBM將軟件從硬件中分離出來,這對軟件公司來說是一個福音。該過程得到了美國新科技應用版權著作委員會的幫助,該委員會在1974年認定軟件是受版權保護的,在后來的蘋果訴富蘭克林案中,則認為目標代碼是受版權保護的,就像文學書籍一樣。由此,自由、公共領域和可共享軟件的想法似乎已經成為過?去。

1.2.2 自由軟件的出現

20世紀70年代末到80年代初,布告欄系統(Bulletin Board System,BBS)開始興起。愛好者們當時能夠在家中使用計算機并相互分享軟件,就像20世紀50年代和60年代那樣。這個時期有兩個人非常重?要。

其中一個人是Richard Stallman,他于1983年啟動了GNU項目,旨在編寫一個完整的、不受軟件公司源代碼許可限制的操作系統。最值得注意的是,項目包括以下內容:

GNU編譯器套件(GNU Compiler Collection,GCC);

GNU調試器;

GNU Emacs。

該項目直到今天都非常受歡迎。這也開啟了最早的開源許可證之一——GNU通用公共許可證,它非常符合Stallman創建軟件共同體的理想。隨著時間的推移,Stallman一直直言不諱,有時甚至在自由和開源軟件領域引起爭議,因為他傾向于更自由的軟件方法(意味著許可證應確保代碼和衍生作品仍然是自由軟件),而不是更寬松的許可證方法。

另一個人是Linus Torvalds,他在1991年發布了一個名為Linux的UNIX克隆版本。Stallman的工作為如今的開源項目奠定了基礎,而Linus的工作則將開源和自由軟件帶入了主流。Linux還為像Red Hat和SUSE這樣的Linux發行版提供商,推出商業應用的IBM、Sun和Oracle,以及今天的云和基礎架構供應商,如VMware、亞馬遜、谷歌(Google)、微軟等,帶來了價值數十億美元的收入流和經濟發展。Linux的獨特之處在于,除了商業應用和成功,業余愛好者和技術愛好者社群也同樣強大;Debian Linux和Slackware是早期的發行版,但至今仍擁有龐大的用戶?群。

1.2.3 開源作為一個術語被創造出來

1997年,自由軟件的主要影響者之一Eric Raymond寫了一篇文章《大教堂和集市》(“The Cathedral and the Bazaar”),講述了他作為早期自由軟件項目維護者的經歷以及他對Linux社群的觀察。這是早期的關于業余愛好者和黑客文化及精神的文獻之一,描述了當時兩種自由軟件的開發模式。其中一種模式被稱為“大教堂”,軟件在閉門開發后公開發布(如各種GNU項目)。另一種模式被稱為“集市”,軟件是在公眾視野中通過互聯網(當時仍然是一個新概念)公開開發的(如Linux社群的模式)。本書將深入探討我從這篇文章中獲得的見解和經?驗。

從歷史的角度來看,開源被認為是促進網景通信公司在1998年1月發布Netsuite Communicator源代碼并啟動Mozilla項目的推動力。如今,公司發布其商業產品的開源版本是司空見慣的。然而,在那時,這一行為吸引了科技界的目光(這在第一次瀏覽器戰爭期間也發生過,因此還有其他吸引人的因素)。參與這些早期開發項目的人認識到他們有機會發起一個更大的運動,他們希望將開源的精神和做法在20世紀80年代的自由軟件運動中推廣開來,讓更多人接受與使?用。

1998年2月3日,Todd Anderson、Chris Peterson(來自前瞻協會)、John“maddog”Hall和Larry Augustin(均來自Linux International)、Sam Ockman(來自硅谷Linux用戶組)和Eric Raymond參加了在帕洛阿爾托舉行的一次會議。該會議致力于將自由軟件運動與自由軟件區別開來,并且更加包容商業軟件供應商——自由軟件運動的精神和許可被認為是不友好的,并且有些人對自由軟件的商業用途懷有敵意。在頭腦風暴和討論過程中,Chris Peterson提出將這種區別于自由軟件的新型軟件稱為開源的想法,并且參加會議的每個人都一致同意這個想法,至此開源正式誕生?了。

1.2.4 為開源提供一個供應商中立的家園

1994年和1995年,當Linux開始在商業領域取得一些初步進展時,一些公司試圖注冊Linux這個術語的商標。Linus盡其所能與他們抗爭,并最終獲得了Linux的商標。隨后,Linus與Linux International達成合作,使該組織成為持有Linux商標的機?構。

這引發了一個重要的問題——開源項目如何得到最好的法律保護?我們將在第3章深入探討這個話題,簡單來說,就是讓一些非營利實體(基金會)來幫助這些項目保管商標(在某些情況下,還包括版權持有者)。這些基金會的初衷是為商標、版權和其他關鍵法律資產提供信托管理,但隨著時間的推移,它們逐漸發展為為這些項目提供專業服務,包括但不限于開發和協作基礎設施、市場推廣和外聯支持、籌款和活動管?理。

Apache軟件基金會(Apache Software Foundation,ASF)是早期的開源基金會之一,它成立于1999年,是一個依據US 501(c)(3)標準成立的慈善組織。Apache軟件基金會采用了接受企業和個人捐贈與贊助的資金模式,為項目提供法律支持,以及開發和溝通基礎設施。ASF 的成功主要依靠志愿者的努力,并且引入了一項重大創新,即阿帕奇之道(Apache Way),它為托管項目制定了一個清晰的治理模式,該模式是根據20世紀90年代更具Bazaar風格的開源項目的經驗而建立的。很快,許多其他重要的開源項目也開始成立基金會,包括GNOME、KDE、Eclipse,以及圍繞新開源的Netscape Communicator源代碼成立的Mozilla基金?會。

在接下來的幾年里,人們認識到這些基金會的許多功能是重疊的,通過建立聯合基礎設施可以提升效率和節約成本。這就是Linux基金會通過創建基礎基金會模型進行創新的地方,該模式也催生了一些關鍵的基金會,如云原生計算基金會(Cloud Native Computing Foundation,CNCF)。除了CNCF,Linux基金會支持了一些較小的基金會(如Academy Software Foundation、Hyperledger、LF Energy、Open Mainframe Project等),為其提供頂尖的專業人員支持,以更高的效率支持不斷增長的社群,同時減少了人員開銷,這樣可以將節省下來的資金投入社群本身。

了解了開源的歷史后,下面讓我們探討一下開源的使用方?式。

主站蜘蛛池模板: 自贡市| 平果县| 通化市| 平顶山市| 宁南县| 新龙县| 景德镇市| 苍南县| 屏东县| 大邑县| 玉屏| 长宁区| 宁陕县| 会同县| 玛沁县| 抚州市| 九寨沟县| 大石桥市| 遂宁市| 阿克苏市| 宜丰县| 涡阳县| 神农架林区| 壶关县| 砀山县| 安溪县| 康平县| 梓潼县| 常州市| 高碑店市| 涿州市| 敦化市| 淮南市| 灌云县| 黄浦区| 英吉沙县| 钟山县| 图们市| 临夏市| 蓬溪县| 张家港市|