開(kāi)源項(xiàng)目閉源了,我們?cè)趺崔k?
今天不談技術(shù),我也來(lái)八卦一下。最近信息系統(tǒng)基礎(chǔ)設(shè)施國(guó)產(chǎn)化的浪潮興起,大量的國(guó)產(chǎn)化IT基礎(chǔ)設(shè)施廠(chǎng)商因此受益。不過(guò)也有一些不同的聲音,認(rèn)為國(guó)產(chǎn)IT基礎(chǔ)設(shè)施大多數(shù)依賴(lài)于開(kāi)源代碼,因此都是假?lài)?guó)產(chǎn)。似乎只要不是從第一行代碼寫(xiě)起的軟件,都說(shuō)不上是國(guó)產(chǎn)。哪怕是大部分代碼都是自己寫(xiě)的,也是抄襲,算不得什么。最近也經(jīng)常聽(tīng)到“如果開(kāi)源項(xiàng)目閉源了,那么國(guó)產(chǎn)化就一地雞毛了”。用不用開(kāi)源,利用開(kāi)源項(xiàng)目算不算國(guó)產(chǎn)化,在之前我已經(jīng)表達(dá)過(guò)自己的觀點(diǎn)了,這里不多做表述。每個(gè)人從自己的角度出發(fā),對(duì)這個(gè)問(wèn)題的看法也不同,這都很正常,很多事情本來(lái)就是需要用十幾年甚至幾十年時(shí)間才能看得清的,現(xiàn)在下結(jié)論還為時(shí)尚早。
目前國(guó)產(chǎn)IT基礎(chǔ)設(shè)施中大量使用開(kāi)源代碼,這是事實(shí)。因?yàn)槲覀冊(cè)谶@方面的起步較晚,一直處于追趕階段,如果再?gòu)念^開(kāi)始,恐怕差距就更大了。所以選擇相對(duì)容易跟上大時(shí)代的方式可能是我們不得不采用的。大量使用開(kāi)源既然不可避免,那么開(kāi)源社區(qū)如果閉源了,我們?cè)撛趺崔k呢?實(shí)際上,這個(gè)問(wèn)題在多年前,我們的企業(yè)就已經(jīng)遇到過(guò)了。南大通用的分布式數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)GBASE 8A的存儲(chǔ)引擎中就使用了inforbright標(biāo)準(zhǔn)版的開(kāi)源代碼,不過(guò)2015年左右inforbright修改了開(kāi)源協(xié)議,產(chǎn)品變成閉源產(chǎn)品了。不過(guò)GBASE 8A這個(gè)產(chǎn)品并沒(méi)有消失,近些年發(fā)展的風(fēng)生水起,在國(guó)產(chǎn)數(shù)倉(cāng)領(lǐng)域的市場(chǎng)占有率也節(jié)節(jié)攀升。實(shí)際上南大通用也不是簡(jiǎn)單的把inforbright的開(kāi)源代碼拿來(lái)就能拼湊出一個(gè)分布式數(shù)據(jù)倉(cāng)庫(kù)產(chǎn)品的。因?yàn)殚_(kāi)源的inforbright是單機(jī)版的,并不支持集群。我想通過(guò)這些年的發(fā)展,南大通用已經(jīng)基本上掌握了inforbright存儲(chǔ)引擎的關(guān)鍵代碼。
開(kāi)源項(xiàng)目會(huì)改變開(kāi)源協(xié)議,這些年我們遇到的已經(jīng)不是inforbright這一家了,2019年的REDIS修改開(kāi)源協(xié)議讓大家虛驚一場(chǎng)。后來(lái)發(fā)現(xiàn)只是一些高級(jí)組件改成了自己定義的RSAL許可證協(xié)議,核心的REDIS組件還是保留為APACHE V2,這家多次修改開(kāi)源協(xié)議的企業(yè)其每次修改都是和融資之類(lèi)的商業(yè)活動(dòng)有一定關(guān)聯(lián)性的。實(shí)際上這些年MongoDB和ES的開(kāi)源協(xié)議改為更為商業(yè)的協(xié)議,也都和融資上市等行為有關(guān)。并不是企業(yè)在收割用戶(hù),而是企業(yè)的第一要?jiǎng)?wù)是為股東創(chuàng)造利潤(rùn),這種行為都是正常的商業(yè)行為。
因?yàn)殚_(kāi)源協(xié)議是會(huì)被改變的,所以在選擇開(kāi)源項(xiàng)目的時(shí)候也是要十分小心的。如果某個(gè)開(kāi)源產(chǎn)品是一家主要的企業(yè)主導(dǎo)開(kāi)發(fā)的,核心代碼都掌握在這家企業(yè)里,那么因?yàn)樯虡I(yè)利益,企業(yè)修改開(kāi)源協(xié)議的可能性就更大一些,而那些開(kāi)源社區(qū)中沒(méi)有明顯的企業(yè)控制的開(kāi)源項(xiàng)目,其風(fēng)險(xiǎn)就會(huì)小一些。
回頭來(lái)看看我們所關(guān)心的Linux,實(shí)際上連我都差點(diǎn)忘了,最著名的Linux開(kāi)源發(fā)行版的全稱(chēng)是GNU/Linux,這個(gè)發(fā)行版是現(xiàn)在大多數(shù)Linux發(fā)行版的源頭。有些朋友可能以為GNU代表了GPL開(kāi)源,實(shí)際上不是的。GNU/Linux是兩部分軟件的組合,Linux是一個(gè)類(lèi)UNIX的核心,其代碼量在Linux發(fā)行版中是極小的,而GNU是Linux核心外的整個(gè)操作系統(tǒng)。GNU也是最早的開(kāi)源組織,GPL就是該組織的開(kāi)源協(xié)議,Linux的核心與GNU結(jié)合后,替代了GNU中那個(gè)寫(xiě)得不夠好的核心HURD,從此Linux核心也遵循GPL開(kāi)源協(xié)議了。
到目前為止數(shù)萬(wàn)個(gè)組織和個(gè)人都在參與Linux代碼的貢獻(xiàn),每個(gè)貢獻(xiàn)者都可以獨(dú)立決定自己提供的這部分代碼的開(kāi)源協(xié)議,只不過(guò)這些開(kāi)源協(xié)議必須是和GPL兼容的,代碼才會(huì)被收錄。實(shí)際上目前我們使用的Linux發(fā)行版中,有不少代碼也不是遵循GPL開(kāi)源協(xié)議的。從目前來(lái)看,想要改變GNU/Linux的整體開(kāi)源協(xié)議,是一個(gè)極小概率的事件。某個(gè)組件要修改成與GPL不兼容的開(kāi)源許可,開(kāi)源社區(qū)立即會(huì)選擇其他的替代方案來(lái)進(jìn)行替代。因此GNU/Linux閉源的可能性是極低的。
雖然暫時(shí)不存在GNU/Linux等關(guān)鍵開(kāi)源項(xiàng)目閉源的可能性,我們的企業(yè)也不能躺在開(kāi)源項(xiàng)目上賺錢(qián)。積極參與開(kāi)源社區(qū),貢獻(xiàn)高質(zhì)量的原創(chuàng)代碼是每個(gè)利用開(kāi)源項(xiàng)目發(fā)行商用版本的企業(yè)的責(zé)任,我們?cè)陂_(kāi)源社區(qū)貢獻(xiàn)越大,我們?cè)陂_(kāi)源社區(qū)的話(huà)語(yǔ)權(quán)也就越大。同時(shí)基于開(kāi)源項(xiàng)目發(fā)行商用版本的企業(yè)也應(yīng)該嚴(yán)格遵守開(kāi)源協(xié)議,比如使用GNU/Linux代碼的企業(yè),也應(yīng)該繼續(xù)開(kāi)源自己的代碼。除非你準(zhǔn)備完全脫離開(kāi)業(yè)社區(qū),重構(gòu)代碼,開(kāi)發(fā)自己的閉源產(chǎn)品,否則必須嚴(yán)格遵守開(kāi)源協(xié)議,否則必然存在被開(kāi)源社區(qū)拉黑的可能性。
除此之外,目前大家對(duì)一些國(guó)產(chǎn)軟件廠(chǎng)商最大的不滿(mǎn)在于他們封裝開(kāi)源代碼,并以此盈利,但是他們并沒(méi)有承擔(dān)一個(gè)產(chǎn)品原廠(chǎng)應(yīng)有的服務(wù)職責(zé)。用戶(hù)遇到問(wèn)題后基本上無(wú)法獲得任何售后服務(wù)。大家都知道,如果我們購(gòu)買(mǎi)了紅帽的RHEL,那么遇到問(wèn)題,到紅帽的官網(wǎng)上,大概率能找到解決問(wèn)題的辦法,或者可以將問(wèn)題提交上去,等待紅帽發(fā)補(bǔ)丁來(lái)解決。同樣都是依靠開(kāi)源社區(qū)來(lái)發(fā)財(cái)?shù)钠髽I(yè),紅帽能做到的,希望我們的國(guó)產(chǎn)軟件廠(chǎng)商也能做到。只有這樣,才能形成一個(gè)良好的生態(tài),我們的國(guó)產(chǎn)軟件廠(chǎng)商才真正摘掉“套殼”的帽子。



























