從Solaris到illumos-技術(shù)權(quán)力抗?fàn)帯㈤_(kāi)源以及夢(mèng)想的故事
今天看了現(xiàn)任 Joyent 工程副總裁 Bryan Cantrill 的演講:Fork Yeah! The Rise and Development of illumos,講述 illumos 項(xiàng)目的來(lái)龍去脈,披露了不少關(guān)于 Sun 、 Oracle 以及開(kāi)源社區(qū)的信息,據(jù)說(shuō) Cantrill 在做這個(gè)演講的時(shí)候,與會(huì)者很「動(dòng)容」。而其中的陳年往事咀嚼起來(lái)很是值得思考。
首先說(shuō)說(shuō)這位 Bryan Cantrill ,「他曾榮登 MIT 《科技創(chuàng)業(yè)》35位35周歲以下頂尖技術(shù)專家榜,并被 InfoWorld 評(píng)為年度杰出創(chuàng)新家。在加盟 Joyent 團(tuán)隊(duì)之前,Cantrill 是Sun公司的杰出工程師。他在Sun公司花了十多年的時(shí)間研究了系統(tǒng)軟件,包括從內(nèi)核到瀏覽器客戶端代碼,以及和內(nèi)核相關(guān)的多種組件。最有名的便是 Cantrill 聯(lián)合設(shè)計(jì)并實(shí)現(xiàn)了DTrace?!?refer) 在 Oracle 收購(gòu) Sun 之后,Cantrill 于 2010 年 7 月離開(kāi)的 Oracle,加入了 Joyent 。
在 Bryan Cantrill 的演講中,他先是從個(gè)人的角度回顧了一下「歷史」:從 SunOS 4.x 到 Solaris 的轉(zhuǎn)換過(guò)程中,有很多優(yōu)秀的工程師離開(kāi),導(dǎo)致這個(gè)問(wèn)題的主要原因是引入了不成熟的 SCM 工具,Network Software Environment (NSE) -- 可見(jiàn),技術(shù)官僚的錯(cuò)誤決定在哪里都是極有破壞性的。NSE 的糟糕引來(lái)了工程師的「逆襲」,Larry McVoy 干脆開(kāi)發(fā)了一套 NSE 輕量級(jí)的變種,NSElite。通過(guò) NSElite 以及后來(lái)的 Teamware , Roger Faulkner、Tim Marsland、Joe Kowalski 以及 Jeff Bonwick 等人領(lǐng)導(dǎo)的 Solaris 2.3 項(xiàng)目基本達(dá)到了還可以的并行開(kāi)發(fā)的效率,不過(guò)到了 Solaris 2.4 就無(wú)能為力了,質(zhì)量再次滑坡。
Solaris 2.5 的開(kāi)發(fā)則是背水一戰(zhàn),只許成功,不許失敗。這個(gè)時(shí)候,Sun 有了新的硬件 UltraSPARC-I 。為確保開(kāi)發(fā)質(zhì)量,工程師們進(jìn)行了「接管」: Jeff Bonwick 擔(dān)當(dāng)起代碼看門(mén)人的角色,堅(jiān)持「if it's broken, rip it out」的原則,確保了 Solaris 2.5 按時(shí)發(fā)布,并且確保了軟件質(zhì)量。經(jīng)此一役,工程師們?cè)僖膊辉敢馐?duì)操作系統(tǒng)開(kāi)發(fā)上的控制。
到了 1990 年代中期,一個(gè)無(wú)法回避的論斷是 Unix 必將死于 Windows NT 之手,而令人無(wú)法相信的是,Sun 居然是唯一一家意圖對(duì)抗 Windows NT 的操作系統(tǒng)開(kāi)發(fā)商。新一代「Bonwick Youth」的加入,天才們互相吸引,期待給操作系統(tǒng)帶來(lái)革新,就像當(dāng)年的 Xerox PARC 實(shí)驗(yàn)室那樣。到了 2001 年年中,新的激進(jìn)的開(kāi)發(fā)開(kāi)始了,這些新的操作系統(tǒng)功能包括:DTrace、ZFS、Zones、FMA、SMF 等。這些激動(dòng)人心的特性并非由市場(chǎng)或是管理層驅(qū)動(dòng),而完全是工程師的想法。
ZFS,號(hào)稱「終極文件系統(tǒng)」,首席設(shè)計(jì)師即為 Jeff Bonwick。
而這個(gè)時(shí)候,Linux 以及開(kāi)源運(yùn)動(dòng)已經(jīng)興起,對(duì) Sun 不可能沒(méi)有沖擊,內(nèi)部也在反思。但是出于知識(shí)產(chǎn)權(quán)方面的限制,討論了未有定論。2005 年,時(shí)任 CEO 的 Jonathan Schwartz 做出決定將操作系統(tǒng)開(kāi)源,先是 Dtrace 開(kāi)源,然后是 OpenSolaris ,時(shí)間是 2005 年 6 月。遺憾的是,有些小的但是至關(guān)重要的軟件則無(wú)法開(kāi)源(比如有些驅(qū)動(dòng)程序含有第三方知識(shí)產(chǎn)權(quán)),為此 Sun 制定了 CDDL 許可協(xié)議,不過(guò)與 GPL 不兼容。
2007 年開(kāi)始,Sun 決定創(chuàng)建一個(gè)全新的基于 OpenSolaris 的發(fā)布,名字仍然叫做 OpenSolaris,接下來(lái)的幾年,Sun 與 OpenSolaris 管理委員會(huì)(OGB) 陷入了諸多摩擦,相互牽制。OpenSolaris 發(fā)展緩慢。
隨著 2009 年 Oracle 宣布收購(gòu) Sun,到 2010 年收購(gòu)?fù)瓿墒召?gòu)。OpenSolaris 的命運(yùn)已經(jīng)很清楚了:Oracle 對(duì)此毫無(wú)興趣。
2010 年的夏天,存儲(chǔ)廠商 Nexenta 的 Garrett D'Amore 在 Rich Lowe、Jason King 等人的幫助下,發(fā)起了 illumos 項(xiàng)目, D'Amore 等人針對(duì)版權(quán)限制的軟件,或是從頭寫(xiě)代碼,或是從 BSD 系統(tǒng)移植,2010 年 8 月 3 日,illumos 正式可用。「Illumos」這個(gè)詞來(lái)自 Illuminare,也即拉丁語(yǔ)的 Illuminate,「照明、照亮」的意思,可謂深有用意。
illumos 項(xiàng)目的最終目標(biāo)有兩個(gè):一是使用開(kāi)源代碼取代所有仍在 OpenSolaris 使用的專有代碼,二是圍繞之前的OpenSolaris 代碼庫(kù)建立一個(gè)獨(dú)立的社區(qū)。嚴(yán)格來(lái)說(shuō),并非 OpenSolaris 的分支項(xiàng)目。
2010 年 8 月 13 日,星期五,Oracle 內(nèi)部泄露出來(lái)的郵件寫(xiě)到「在企業(yè)版Solaris系統(tǒng)完整發(fā)布后,我們將會(huì)向得到許可的 CDDL 或其他開(kāi)源授權(quán)發(fā)布更新。通過(guò)這種方式,技術(shù)創(chuàng)新將會(huì)首先出現(xiàn)在我們發(fā)布的版本中。我們將不再實(shí)時(shí)發(fā)布整個(gè)Solaris系統(tǒng)的源代碼?!?/p>
Oracle 的對(duì)待 OpenSolaris 的冷漠乃至不作為導(dǎo)致了 Solaris 團(tuán)隊(duì)的大范圍流失,比如前文提到的 Jeff Bonwick 也在 2010年 9 月 30號(hào) 離職。在不到 90 天內(nèi),DTrace 團(tuán)隊(duì)全部成員離開(kāi) Oracle,其他關(guān)鍵特性的開(kāi)發(fā)人員亦紛紛離職。好消息是,這些離開(kāi)的工程師全部加入了支持 illumos 項(xiàng)目的公司,比如 Nexenta、Joyent 、Delphix 等。關(guān)于 DTrace、ZFS 、Zones 等操作系統(tǒng)特性的創(chuàng)新將由 illumos 傳承,但不會(huì)再次出現(xiàn)在 Solaris 上。illumos 軟件庫(kù)將成為記錄操作系統(tǒng)技術(shù)危機(jī)的一個(gè)活標(biāo)本。
從 Oracle 離開(kāi)的 OpenSolaris 工程師們絕大多數(shù)活躍于 illumos 社區(qū),給 ZFS 、DTrace、Zones 等帶來(lái)了更多激動(dòng)人心的特性?;?illumos 的發(fā)布包括 OpenIndian、SmartOS、illumian 等,這些發(fā)布版面向不同用戶群,互為補(bǔ)充,發(fā)展勢(shì)頭不錯(cuò)。
但是,發(fā)展中的 illumos 項(xiàng)目依然矛盾重重,去年 LWN 雜志的一篇題為 Illumos: the successor to the OpenSolaris community 的文章揭示了開(kāi)源社區(qū)的一些明爭(zhēng)暗斗。開(kāi)發(fā)者 Stamos Tolias 抨擊 illumos 項(xiàng)目的「思維狹隘,ZFS中心獨(dú)裁以及大教堂式的開(kāi)發(fā)模式」,并且企圖另建分支。Illumos 的發(fā)展被認(rèn)為不夠開(kāi)放,缺乏獨(dú)立性,而 Oracle 的潛在訴訟也正在威脅 illumos 的命運(yùn)。誰(shuí)都知道 Oracle 公司打官司的「威力」。
也正是因?yàn)?illumos 項(xiàng)目由幾家商業(yè)公司支持,暫時(shí)來(lái)看,怕是很難擺脫「大教堂」模式的開(kāi)發(fā)弊病,而這引起了技術(shù)社區(qū)的批評(píng)。在這里,只能期待這些支持 illumos 項(xiàng)目的商業(yè)公司不要短視。祝愿 illumos 在將來(lái)能有更好的發(fā)展吧。
如諸君所見(jiàn),illumos 項(xiàng)目寄托了一代技術(shù)精英的夢(mèng)想。從 SunOS 到 Solaris ,從 OpenSolaris 再到 illumos ,期間發(fā)生的故事不知道有多少,關(guān)于 Sun 跌宕起伏的命運(yùn),關(guān)于技術(shù)權(quán)力抗?fàn)?、開(kāi)源以及夢(mèng)想的故事,或許將來(lái)能有人詳細(xì)如實(shí)的記錄下來(lái),一定非常有借鑒意義。
原文鏈接:http://www.dbanotes.net/opensource/Solaris_Illumos.html
【編輯推薦】