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

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)開源算法,隨著云計算的普及和世界格局的變化,人們對開源模式的接受度上升到了一個新的高度。

主站蜘蛛池模板: 芜湖市| 呼伦贝尔市| 义乌市| 琼结县| 胶州市| 东宁县| 大姚县| 连城县| 肥东县| 深泽县| 德兴市| 阿图什市| 东乡族自治县| 云浮市| 类乌齐县| 宁都县| 云梦县| 湖南省| 莱阳市| 贵州省| 陵水| 扶沟县| 邹平县| 石台县| 普兰店市| 扎赉特旗| 宝鸡市| 永新县| 天祝| 阿克陶县| 洛阳市| 黄梅县| 白银市| 尤溪县| 华坪县| 永嘉县| 高淳县| 定州市| 科技| 宜良县| 乃东县|