- 企業(yè)開源實踐之旅:基于紅帽客戶的開源建設實踐案例
- 劉翔 任衛(wèi)海等編著
- 1572字
- 2024-04-15 11:51:18
1.1.2 什么是開源軟件
談到開源軟件,就不得不從自由軟件(free software)說起。開源軟件的發(fā)展史有三個重要的時間點,即1970年、1985年和1991年,分別對應UNIX、GNU和Linux的發(fā)展。
1. UNIX
最初用于科學計算的計算機和我們今天看到的計算機有很大的區(qū)別,當時需要一次性地把指令、數(shù)據(jù)輸入計算機中,然后等待處理結(jié)果,這種計算機在每個時刻只能專注處理一件事情。20世紀60年代,貝爾實驗室、麻省理工學院和美國通用電氣公司為了解決實時計算問題,合作開發(fā)了一個多任務、多用戶的操作系統(tǒng)Multics,為UNIX操作系統(tǒng)的誕生創(chuàng)造了條件。20世紀70年代,UNIX相繼推出V1~V6版本,并向社會開放源代碼。
貝爾實驗室的母公司AT&T意識到UNIX的商業(yè)價值后,不再將UNIX源碼授權(quán)給學術(shù)機構(gòu)。1977年開始進入“后UNIX”時代,UNIX演化為UNIX(閉源,即AT&T UNIX)和BSD(開源,即BSD UNIX)。想要獲取UNIX的源代碼,需要與AT&T達成協(xié)議才能獲得許可,AIX、Solaris、HP-UX、IRIX、OSF、Ultrix等知名商業(yè)UNIX都是由AT&T授權(quán)的UNIX System V發(fā)展而來的。而另外一個分支BSD也有眾多衍生版,主流的開源BSD操作系統(tǒng)有386BSD、FreeBSD、NetBSD、OpenBSD,蘋果公司的Mac OS和iOS均是BSD衍生產(chǎn)品,采用了BSD的內(nèi)核。
2. GNU
1984年,麻省理工學院的研究員Richard Stallman提出了自由軟件的概念,并于1985年10月成立了自由軟件基金會(Free Software Foundation,F(xiàn)SF)。如果一個軟件提供了以下4項自由,它就是自由軟件:使用者可以自由地運行該軟件;使用者有研究和修改該軟件的自由;使用者有分發(fā)副本使其他人共享該軟件的自由;使用者有改進程序使他人受益的自由。Richard接下來開始實施GNU計劃,以挑戰(zhàn)UNIX的封閉性,GNU的設計類似UNIX,但它不包含享有著作權(quán)的UNIX代碼。
與GNU的發(fā)展模式不同,BSD中原本就存在大量的UNIX代碼,所以BSD在初期發(fā)展非常迅猛,但是這也造成了在20世紀90年代初UNIX系統(tǒng)實驗室(UNIX System Laboratories,USL)和加州大學伯克利分校之間有關BSD中UNIX專有代碼的訴訟,雖然這一訴訟最后由于USL被Novell收購,在Novell CEO的主導下達成和解,但是也在一定程度上延誤了BSD的發(fā)展速度。
自由軟件在20世紀80年代雖然得到了發(fā)展,但主要還是圍繞著破除UNIX操作系統(tǒng)上的壟斷。《大教堂與集市》的作者Eric Steven Raymond受到網(wǎng)景(Netscape)公司的啟示,認為可以將自由軟件引入商業(yè)世界中。但自由軟件容易令人聯(lián)想到免費軟件,在商業(yè)上很難被接受。Eric等人引入了開源軟件(open source software)這一新的概念,并獲得了成功。1998年2月,旨在推廣開源軟件的開放源代碼促進會(Open Source Initiative,OSI)在美國加州成立。
自由軟件與開源軟件有時被合稱為自由開源軟件(Free and Open Source Software,F(xiàn)OSS)。這雖然并不嚴謹,但是可以粗略地認為自由軟件適用的是著佐權(quán)(copyleft)許可證,而除此之外,開源軟件還可以適用寬松許可證。
3. Linux
GNU項目一直想打破UNIX的壟斷,開發(fā)了大量類UNIX OS的程序,但是始終缺少一個能夠有效運作的UNIX內(nèi)核。使用BSD不但仍需獲得AT&T的許可,而且用戶不得隨意修改并重新發(fā)布BSD中AT&T擁有產(chǎn)權(quán)的代碼部分。對GNU項目所開發(fā)的類UNIX OS來說,只差一個內(nèi)核,就可以成為真正意義上的自由軟件。
1991年,芬蘭赫爾辛基大學的學生Linus Torvalds在學習中接觸到一款小型的類UNIX的OS內(nèi)核——Minix。Minix的開發(fā)者是荷蘭大學的一位教授,他為了教學將Minix連同源碼完全開放。數(shù)月后,Torvalds開發(fā)出一個UNIX內(nèi)核“雛形”,可以編譯并運行各種GNU程序。為求得其他程序員的幫助,Torvalds在網(wǎng)上公布了系統(tǒng)的源碼并且一呼百應,建立起第一個以開源社區(qū)方式開發(fā)的操作系統(tǒng)——Linux。
Linux在發(fā)展過程中同樣受到了來自閉源世界的訴訟,并且時間更持久。2003年3月,SCO公司控告IBM非法將MONTEREY項目中的UNIX代碼貢獻到Linux發(fā)行版中,這場官司在2021年4月落下帷幕,以1425萬美元達成和解。可以說,開源軟件從誕生的第一天起,既備受關注,又充滿挑戰(zhàn),但是隨著時間的推移,它已經(jīng)成為越來越主流的基礎軟件發(fā)展模式。開源不僅存在于軟件領域,在硬件領域有開源嵌入式系統(tǒng)、開源呼吸機,在專利領域有特斯拉的開源專利,在指令方面有RISC-V開源指令集,下一步還會出現(xiàn)開源算法,隨著云計算的普及和世界格局的變化,人們對開源模式的接受度上升到了一個新的高度。