開源軟件支持與Linux的誕生!
80年代,自由軟件在個(gè)人電腦的普及下蓬勃發(fā)展。...
80年代,自由軟件在個(gè)人電腦的普及下蓬勃發(fā)展。1983年麻省理工學(xué)院人工智能實(shí)驗(yàn)室的斯托曼通過網(wǎng)絡(luò)郵件群組,聯(lián)合散布于世界各地的程序員發(fā)起了自由軟件運(yùn)動(dòng),目標(biāo)是通過志愿者共同努力開發(fā)出從操作系統(tǒng)、編譯器,到基本應(yīng)用程序一整套開源軟件生態(tài)系統(tǒng),也就是影響后世的GNU Project。操作系統(tǒng)是整個(gè)計(jì)劃的核心部分。斯托曼希望志愿者們能夠合作開發(fā)出一個(gè)完整的開放源代碼操作系統(tǒng),使所有人都可以自由地修改其源代碼,與他人分享,并且發(fā)布自己的修改版本而不受限制。這一理念充分體現(xiàn)在他的GNU宣言里。
斯托曼代表的開源軟件運(yùn)動(dòng)對(duì)計(jì)算機(jī)產(chǎn)業(yè)的影響除了軟件本身之外,還逐漸形成了一系列對(duì)源代碼控制程度不同的協(xié)議以及對(duì)應(yīng)的許可證制度,這是對(duì)整個(gè)知識(shí)產(chǎn)權(quán)領(lǐng)域的重要貢獻(xiàn)。比如針對(duì)GNU項(xiàng)目,為了進(jìn)一步防止開源軟件在未來被主張所有權(quán),所有GNU涉及的軟件都被放到GNU通用許可證GPL(General Public License)的保護(hù)之下。此方式成為最早的開源軟件知識(shí)產(chǎn)權(quán)管理方式之一。它授權(quán)給任何人以任何目的(包括惡意)免費(fèi)使用軟件源代碼,但是要求任何使用GNU授權(quán)下的開源軟件代碼開發(fā)出來的軟件必須沿用同一授權(quán)許可證。除了GPL開源協(xié)議,還有在這之前和之后出現(xiàn)的眾多開源軟件協(xié)議。如果從對(duì)源代碼的控制程度來劃分,這些協(xié)議大致可以分成三類,它們的代表分別是MIT許可證協(xié)議、Apache許可證協(xié)議和GPL許可證協(xié)議。
MIT協(xié)議是最為寬松的一類。它允許任何人以任何方式使用源代碼,包括用于商業(yè)目的,而且衍生出來的軟件可以閉源。與其類似的協(xié)議還有伯克利UNIX版本使用的BSD 3。Apache協(xié)議相對(duì)寬松,因?yàn)樗匀徊粡?qiáng)制衍生軟件使用相同的許可證發(fā)布。但是衍生軟件必須對(duì)所有未修改的部分使用相同的許可證。而且在每個(gè)許可文件中,必須保留再分發(fā)代碼中的所有原始著作權(quán)和更改說明。而GPL協(xié)議則相對(duì)嚴(yán)格一點(diǎn),它要求所有衍生軟件產(chǎn)品必須沿用同一許可證。也就是說如果使用GPL協(xié)議的開源軟件來開發(fā)新的軟件產(chǎn)品,那么新的軟件產(chǎn)品必須也是開源的,而且需要使用GPL協(xié)議來管理。
從創(chuàng)立歷史來看,1988年推出的代表早期黑客精神的MIT協(xié)議出現(xiàn)的最早,其目的是讓更多的人使用開源軟件;隨后是1989年斯托曼倡導(dǎo)的開源運(yùn)動(dòng)推出的GPL協(xié)議,其目的是在一個(gè)開源平臺(tái)上產(chǎn)生更多的開源軟件;2000年才出現(xiàn)的Apache協(xié)議則更像前兩種協(xié)議的折中版本,是為了滿足中間用戶的需求。這些寬容程度不同的許可證協(xié)議為軟件開源運(yùn)動(dòng)提供了多樣的管理方式,不但有利于更多開源軟件的出現(xiàn),也為不同用戶提供了不同的選擇。
1984年斯托曼等人不斷用C和LISP語言開發(fā)GNU軟件。截止到1989年,GNU計(jì)劃中包括編輯器Emacs、編譯器、Shell在內(nèi)的大部分應(yīng)用軟件都已經(jīng)開發(fā)完成。由于和UNIX的兼容性,這些軟件被廣泛使用,但是唯獨(dú)操作系統(tǒng)還沒有被開發(fā)出來。1990年在開源軟件基金會(huì)推動(dòng)下,GNU重啟開發(fā)操作系統(tǒng)的計(jì)劃并將其命名為Hurd,但是開發(fā)進(jìn)程依舊緩慢。事實(shí)上Hurd很快就不再被需要,因?yàn)橐荒旰蠓姨m的一個(gè)學(xué)生在開源軟件運(yùn)動(dòng)的影響下協(xié)調(diào)眾多網(wǎng)絡(luò)志愿者成功開發(fā)出了一套開源操作系統(tǒng)。該系統(tǒng)加入了GNU生態(tài)圈成為其操作系統(tǒng)的核心,這就是Linux。
Linux的出現(xiàn)和UNIX息息相關(guān)。1987年荷蘭計(jì)算機(jī)教授、操作系統(tǒng)專家譚寧邦(Andrew Tanenbaum)為了給學(xué)生講解操作系統(tǒng)原理,自己編寫了一款模擬UNIX的16位字元MINX操作系統(tǒng),并且將其作為開源軟件發(fā)布。MINX影響了很多學(xué)生。但是由于當(dāng)時(shí)已經(jīng)出現(xiàn)了32位字元的386微處理器,所以大家希望能有一款32位元的開源操作系統(tǒng)。1991年芬蘭赫爾辛基大學(xué)學(xué)生托沃茲在MINIX操作系統(tǒng)上用GNU的C語言編譯器開發(fā)出了UNIX的終端模擬器,用來連接學(xué)校里的UNIX服務(wù)器。但是不久他意識(shí)到自己已經(jīng)在編寫操作系統(tǒng)內(nèi)核的部分,索性開始正式編寫32位元的操作系統(tǒng)。
基本編寫完成后,托沃茲在USENET上關(guān)于MINIX的群組討論中發(fā)布了自己的新程序。他的朋友把內(nèi)核源代碼上傳到赫爾辛基大學(xué)的FTP服務(wù)器上并將其命名為L(zhǎng)inux。Linux立刻吸引了眾多開源軟件志愿者。擅長(zhǎng)編程的志愿者開始為L(zhǎng)inux添加不同的模塊和新功能,計(jì)算機(jī)新手或者是用戶則負(fù)責(zé)系統(tǒng)的測(cè)試工作。隨著新功能和模塊的不斷增加,Linux的更新速度也越來越快,有時(shí)達(dá)到每天一個(gè)新版本。為了讓Linux有一個(gè)相對(duì)集中的發(fā)展方向,托沃茲設(shè)立了Linux管理小組,對(duì)志愿者提供的新功能模塊進(jìn)行篩選,把符合發(fā)展方向的模塊融入到Linux的下一個(gè)正式版本中。
不久Linux內(nèi)核通過幾百名志愿者的共同開發(fā)成功地發(fā)展成為功能豐富的操作系統(tǒng),其可靠性也因?yàn)閿?shù)千名志愿用戶的不斷使用和反饋而遠(yuǎn)遠(yuǎn)高于同時(shí)期的微軟視窗。開源軟件運(yùn)動(dòng)也因?yàn)長(zhǎng)inux的成功而被主流媒體關(guān)注。雷蒙在他總結(jié)開源運(yùn)動(dòng)的《大教堂與市集》一書中對(duì)此有詳細(xì)的描述。
Linux作為開源軟件的操作系統(tǒng)核心給軟件行業(yè)帶來的另一個(gè)重要?jiǎng)?chuàng)新是,把所有在它之上運(yùn)行的各種開源應(yīng)用程序,集中到幾個(gè)服務(wù)器平臺(tái)上供用戶自動(dòng)下載使用。這樣做的好處是可以對(duì)平臺(tái)上的應(yīng)用程序的安全性做出保證,防止用戶從第三方網(wǎng)站下載被惡意軟件植入的程序。蘋果公司學(xué)習(xí)這軟件組織方式形成了蘋果的App Store。Linux在PC機(jī)市場(chǎng)的占有率在90年代一直不及微軟視窗。但是90年代末因?yàn)殚_源優(yōu)勢(shì),Linux被用來作為搭建云計(jì)算平臺(tái)的單機(jī)操作系統(tǒng)。隨著谷歌、亞馬遜等云計(jì)算平臺(tái)的崛起, Linux越來越流行。2000年以后計(jì)算機(jī)產(chǎn)業(yè)進(jìn)入到移動(dòng)計(jì)算時(shí)代,為新的操作系統(tǒng)占據(jù)主導(dǎo)提供了機(jī)會(huì)。有意思的是這次世代變遷所產(chǎn)生的兩大移動(dòng)操作系統(tǒng)都可以溯源到開源版本的UNIX:蘋果的iOS系統(tǒng)移植于macOs,而安卓系統(tǒng)使用的則是Linx內(nèi)核。
推薦閱讀:湖南在線網(wǎng)