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

1.1.2 什么是開源軟件

談到開源軟件,就不得不從自由軟件(free software)說起。開源軟件的發展史有三個重要的時間點,即1970年、1985年和1991年,分別對應UNIX、GNU和Linux的發展。

1. UNIX

最初用于科學計算的計算機和我們今天看到的計算機有很大的區別,當時需要一次性地把指令、數據輸入計算機中,然后等待處理結果,這種計算機在每個時刻只能專注處理一件事情。20世紀60年代,貝爾實驗室、麻省理工學院和美國通用電氣公司為了解決實時計算問題,合作開發了一個多任務、多用戶的操作系統Multics,為UNIX操作系統的誕生創造了條件。20世紀70年代,UNIX相繼推出V1~V6版本,并向社會開放源代碼。

貝爾實驗室的母公司AT&T意識到UNIX的商業價值后,不再將UNIX源碼授權給學術機構。1977年開始進入“后UNIX”時代,UNIX演化為UNIX(閉源,即AT&T UNIX)和BSD(開源,即BSD UNIX)。想要獲取UNIX的源代碼,需要與AT&T達成協議才能獲得許可,AIX、Solaris、HP-UX、IRIX、OSF、Ultrix等知名商業UNIX都是由AT&T授權的UNIX System V發展而來的。而另外一個分支BSD也有眾多衍生版,主流的開源BSD操作系統有386BSD、FreeBSD、NetBSD、OpenBSD,蘋果公司的Mac OS和iOS均是BSD衍生產品,采用了BSD的內核。

2. GNU

1984年,麻省理工學院的研究員Richard Stallman提出了自由軟件的概念,并于1985年10月成立了自由軟件基金會(Free Software Foundation,FSF)。如果一個軟件提供了以下4項自由,它就是自由軟件:使用者可以自由地運行該軟件;使用者有研究和修改該軟件的自由;使用者有分發副本使其他人共享該軟件的自由;使用者有改進程序使他人受益的自由。Richard接下來開始實施GNU計劃,以挑戰UNIX的封閉性,GNU的設計類似UNIX,但它不包含享有著作權的UNIX代碼。

與GNU的發展模式不同,BSD中原本就存在大量的UNIX代碼,所以BSD在初期發展非常迅猛,但是這也造成了在20世紀90年代初UNIX系統實驗室(UNIX System Laboratories,USL)和加州大學伯克利分校之間有關BSD中UNIX專有代碼的訴訟,雖然這一訴訟最后由于USL被Novell收購,在Novell CEO的主導下達成和解,但是也在一定程度上延誤了BSD的發展速度。

自由軟件在20世紀80年代雖然得到了發展,但主要還是圍繞著破除UNIX操作系統上的壟斷。《大教堂與集市》的作者Eric Steven Raymond受到網景(Netscape)公司的啟示,認為可以將自由軟件引入商業世界中。但自由軟件容易令人聯想到免費軟件,在商業上很難被接受。Eric等人引入了開源軟件(open source software)這一新的概念,并獲得了成功。1998年2月,旨在推廣開源軟件的開放源代碼促進會(Open Source Initiative,OSI)在美國加州成立。

自由軟件與開源軟件有時被合稱為自由開源軟件(Free and Open Source Software,FOSS)。這雖然并不嚴謹,但是可以粗略地認為自由軟件適用的是著佐權(copyleft)許可證,而除此之外,開源軟件還可以適用寬松許可證。

3. Linux

GNU項目一直想打破UNIX的壟斷,開發了大量類UNIX OS的程序,但是始終缺少一個能夠有效運作的UNIX內核。使用BSD不但仍需獲得AT&T的許可,而且用戶不得隨意修改并重新發布BSD中AT&T擁有產權的代碼部分。對GNU項目所開發的類UNIX OS來說,只差一個內核,就可以成為真正意義上的自由軟件。

1991年,芬蘭赫爾辛基大學的學生Linus Torvalds在學習中接觸到一款小型的類UNIX的OS內核——Minix。Minix的開發者是荷蘭大學的一位教授,他為了教學將Minix連同源碼完全開放。數月后,Torvalds開發出一個UNIX內核“雛形”,可以編譯并運行各種GNU程序。為求得其他程序員的幫助,Torvalds在網上公布了系統的源碼并且一呼百應,建立起第一個以開源社區方式開發的操作系統——Linux。

Linux在發展過程中同樣受到了來自閉源世界的訴訟,并且時間更持久。2003年3月,SCO公司控告IBM非法將MONTEREY項目中的UNIX代碼貢獻到Linux發行版中,這場官司在2021年4月落下帷幕,以1425萬美元達成和解。可以說,開源軟件從誕生的第一天起,既備受關注,又充滿挑戰,但是隨著時間的推移,它已經成為越來越主流的基礎軟件發展模式。開源不僅存在于軟件領域,在硬件領域有開源嵌入式系統、開源呼吸機,在專利領域有特斯拉的開源專利,在指令方面有RISC-V開源指令集,下一步還會出現開源算法,隨著云計算的普及和世界格局的變化,人們對開源模式的接受度上升到了一個新的高度。

主站蜘蛛池模板: 宁德市| 沅陵县| 诸暨市| 白银市| 西昌市| 天津市| 南靖县| 安庆市| 察雅县| 贵溪市| 印江| 天峻县| 宜阳县| 石台县| 平遥县| 大关县| 舒兰市| 巴塘县| 犍为县| 黄浦区| 扶余县| 电白县| 河间市| 奇台县| 曲阜市| 苗栗县| 黄冈市| 运城市| 海安县| 桑植县| 金秀| 出国| 永寿县| 麟游县| 新平| 清涧县| 湘西| 漳平市| 新邵县| 宁乡县| 峨眉山市|