在谷歌封殺宏碁推出“阿里云”手機(jī)之后,雙方各就此發(fā)表了兩輪聲明。 這些聲明也使得事件爆發(fā)之初的一些判斷和表態(tài)看上去十分可笑,諸如“谷歌封殺是給阿里云加冕”、“阿里云因?yàn)椴捎门c谷歌相似的web app戰(zhàn)略規(guī)劃所以被后者忌憚”等等,有些已經(jīng)在雙方的聲明中被直接否定,也有些能明顯看出來(lái)作者不了解移動(dòng)操作系統(tǒng)的體系架構(gòu)以及GPL、ASL等開(kāi)源 協(xié)議的規(guī)定,所以對(duì)一些明顯的問(wèn)題視而不見(jiàn)。
從安卓之父安迪•魯賓的兩次聲明中,我們可以看到,谷歌封殺阿里云,其實(shí)出于兩大目的:防止安卓陣營(yíng)的硬件基石開(kāi)放手機(jī)聯(lián)盟(OHA)分裂;譴責(zé)阿里云對(duì)安卓應(yīng)用APP的盜版。而阿里云如果要回應(yīng)這些指責(zé),光發(fā)聲明是不夠的,還需要遵循開(kāi)源協(xié)議,公開(kāi)云OS部分代碼。
阿里云市場(chǎng)的確存在盜版問(wèn)題
盜版問(wèn)題比較簡(jiǎn)單,我們可以先把這個(gè)問(wèn)題說(shuō)清楚。安迪•魯賓的第二份聲明中說(shuō),“你們(阿里云)的應(yīng)用商店中還包括了安卓的應(yīng)用,包括盜版的。”認(rèn)真的老外很快找到了證據(jù):科技博客Androidpolice發(fā)表了一篇調(diào)查文章《確認(rèn)阿里云應(yīng)用市場(chǎng)發(fā)布盜版安卓應(yīng)用,很多來(lái)自別的盜版站點(diǎn)》。 他們發(fā)現(xiàn)在阿里云的應(yīng)用市場(chǎng)中,有神廟逃亡(Temple Run)等熱門(mén)游戲的盜版拷貝下載,其署名提供方并非游戲自己的開(kāi)發(fā)商,而是中國(guó)國(guó)內(nèi)某個(gè)安卓應(yīng)用市場(chǎng),而后者提供了大量其他盜版APP下載;有一些原本 是收費(fèi)的游戲也在阿里云的市場(chǎng)中提供免費(fèi)下載;最有趣的是,一款針對(duì)安卓ROM的工具軟件ROM ToolBox Pro也出現(xiàn)在阿里云市場(chǎng)中——阿里巴巴方面一直堅(jiān)稱阿里云OS并未基于安卓,那在自己的市場(chǎng)中放一款針對(duì)安卓ROM的工具有什么意義呢?
AndroidPolice 采訪了一些應(yīng)用開(kāi)發(fā)者,他們明確表示自己并未將應(yīng)用APP上傳到阿里云市場(chǎng)。一款收費(fèi)游戲(在阿里云市場(chǎng)中被標(biāo)為免費(fèi))的開(kāi)發(fā)者表示,“這是我們第一次聽(tīng) 說(shuō)阿里云。我們不知道我們的應(yīng)用被上傳到了那兒”。ROM ToolBox Pro的開(kāi)發(fā)者語(yǔ)氣則比較激烈:“像阿里云這樣的軟件破解網(wǎng)站只會(huì)傷害消費(fèi)者和開(kāi)發(fā)者”。
在盜版習(xí)慣仍然深入人心的中國(guó),免費(fèi)、開(kāi)放的安卓 平臺(tái)以及其上的免費(fèi)應(yīng)用給很多人一個(gè)錯(cuò)覺(jué),既然免費(fèi),就可以隨便用,所以發(fā)布一些免費(fèi)應(yīng)用APP有什么不對(duì)呢?但這的確是不對(duì)的,免費(fèi)不等于作者放棄了所 有權(quán)益,他們只是放棄了按份出售應(yīng)用的做法,但署名權(quán)和其他權(quán)益比如市場(chǎng)推廣、運(yùn)營(yíng)等權(quán)益仍然屬于作者本人,上傳到哪個(gè)市場(chǎng)、適用于哪些手機(jī)的決定權(quán)同樣 在原作者(這也有保證應(yīng)用正常運(yùn)行的考慮)。像上述阿里云市場(chǎng)中更改應(yīng)用作者署名、使用非授權(quán)版本等行為,已經(jīng)侵犯了軟件作者的權(quán)益。至于把收費(fèi)軟件改成 免費(fèi)應(yīng)用放在市場(chǎng)里的行為,就更不用多說(shuō)了。
也有些人說(shuō)谷歌為什么不去抓中國(guó)數(shù)量眾多的盜版market,非要跟阿里云過(guò)不去?這里面有個(gè) 精力問(wèn)題,也有個(gè)商業(yè)策略問(wèn)題。盜版永無(wú)止息,但一旦有商業(yè)公司來(lái)運(yùn)作,其破壞力就大得多(因?yàn)楹苋菀鬃儸F(xiàn)出利益),反過(guò)來(lái)說(shuō)侵權(quán)主體也好認(rèn)定。所以反盜 版歷來(lái)是重拳打擊商業(yè)、政府機(jī)構(gòu)的盜版行為,對(duì)個(gè)人消費(fèi)者和一些小組織則基本無(wú)視。
協(xié)議規(guī)定安卓和阿里云都應(yīng)開(kāi)源
好。本來(lái)挺簡(jiǎn)單的盜版認(rèn)定問(wèn)題也說(shuō)了這么一堆。下面進(jìn)入稍微復(fù)雜一些問(wèn)題討論,即阿里云OS是否分裂了安卓陣營(yíng)。
這個(gè)說(shuō)法成立的前提是,阿里云OS要是安卓的一分子,這樣才談得上內(nèi)部分裂。這也是目前為止阿里反對(duì)最激烈的一點(diǎn)。無(wú)論是阿里云CEO王堅(jiān),還是官方聲明,阿里都否定了“阿里云OS屬于安卓陣營(yíng)”的說(shuō)法。其中王堅(jiān)說(shuō),阿里云OS是“獨(dú)立的操作系統(tǒng)”; 阿里巴巴副總裁約翰•斯佩里奇說(shuō)“阿里云OS并不是安卓生態(tài)系統(tǒng)的一部分”;阿里第二份官方聲明中也說(shuō),“阿里云OS使用了自行研發(fā)的虛擬機(jī),這與安卓的 Dalvik虛擬機(jī)不同。阿里云OS的運(yùn)行環(huán)境,也就是OS的核心部分,即有不同于Dalvik的阿里云自己的JAVA虛擬機(jī),也有阿里云自行研發(fā)的云應(yīng) 用引擎(cloud app engine),用于支持html5 web應(yīng)用。阿里云OS用了一些(開(kāi)源的)安卓應(yīng)用的框架和工具僅僅是作為補(bǔ)丁,讓使用云應(yīng)用的用戶可以在我們的生態(tài)系統(tǒng)中使用其他第三方應(yīng)用。”
現(xiàn) 在雙方都表明立場(chǎng)了,谷歌說(shuō)阿里云基于安卓的代碼,阿里說(shuō)我們的核心是自己開(kāi)發(fā)的(但操作系統(tǒng)的核心是“運(yùn)行環(huán)境”這個(gè)奇怪的說(shuō)法是頭一次聽(tīng)說(shuō)),只用了 安卓一些應(yīng)用框架和工具做補(bǔ)丁,然后還要特意強(qiáng)調(diào),這些部分是開(kāi)源的。雙方各執(zhí)一詞,按業(yè)內(nèi)的做法,那就對(duì)比兩邊的源代碼好了。安卓的大部分源代碼是公開(kāi) 的,阿里云OS的代碼沒(méi)有看到公開(kāi),似乎他們也沒(méi)說(shuō)要公開(kāi)——但是且慢,按照開(kāi)源協(xié)議,阿里云OS必須公開(kāi)一部分代碼。
從這場(chǎng)爭(zhēng)論開(kāi)始到現(xiàn)在,輿論被有意無(wú)意地引導(dǎo)到阿里云的遠(yuǎn)景規(guī)劃與谷歌沖突、必須要有自主操作系統(tǒng)以免受制于人這些奇怪的宏大敘事角度去,卻沒(méi)看到有基于開(kāi)源協(xié)議來(lái)分析阿里云義務(wù)的聲音。
眾所周知,安卓是一個(gè)開(kāi)源、開(kāi)放的操作系統(tǒng),但這二者并不能等同。同時(shí),開(kāi)源也并不意味著,任何人或者公司都可以拿著公開(kāi)源代碼回去自己編譯出一個(gè)應(yīng)用來(lái),然后打上自主產(chǎn)權(quán)的標(biāo)簽就可以去報(bào)獎(jiǎng)立項(xiàng)了。開(kāi)源代碼有著嚴(yán)格的流轉(zhuǎn)規(guī)范體系,使用開(kāi)源代碼必須基于這些規(guī)范,來(lái)保護(hù)開(kāi)發(fā)者的版權(quán)。我們以安卓系統(tǒng)為例,來(lái)分析一下這些不同的開(kāi)源標(biāo)準(zhǔn),以及阿里云應(yīng)該遵守哪些標(biāo)準(zhǔn)公開(kāi)代碼。
安 卓系統(tǒng)基于Linux操作系統(tǒng)發(fā)展而來(lái)(阿里云也自稱基于Linux而非安卓系統(tǒng))。Linux是一個(gè)開(kāi)源系統(tǒng),它采用了GPL開(kāi)源協(xié)議,這是我們這里提 到的第一種開(kāi)源協(xié)議。GPL協(xié)議規(guī)定,遵循該協(xié)議的代碼都是開(kāi)源、免費(fèi)的;一旦軟件作品中使用了遵循GPL協(xié)議的開(kāi)源代碼,該軟件也必須開(kāi)源、免費(fèi)。業(yè)內(nèi) 通常管這種特性傳遞叫“傳染性”,只要使用了一行GPL開(kāi)源代碼,整個(gè)軟件都被“傳染”為遵循GPL協(xié)議。注意,真正的GPL協(xié)議要比這里的描述復(fù)雜、嚴(yán) 謹(jǐn)不少,為了行文簡(jiǎn)潔,本文僅僅選取了與這一問(wèn)題相關(guān)的部分內(nèi)容進(jìn)行表述。
GPL使軟件開(kāi)發(fā)者獲得了極大的自由,可以免費(fèi)閱讀、使用全世界 最優(yōu)秀的程序代碼。但它的強(qiáng)傳染性也削弱了它的商業(yè)前景。一些手機(jī)制造商如果針對(duì)自己的硬件開(kāi)發(fā)一份Linux驅(qū)動(dòng),它必然要調(diào)用一些Linux基本函 數(shù)、類庫(kù),該驅(qū)動(dòng)因此會(huì)被GPL傳染,要公開(kāi)所有源代碼。但這可能暴露廠商的硬件細(xì)節(jié),造成泄密。同樣,一些商業(yè)公司也會(huì)認(rèn)為,將自己的獨(dú)有技術(shù)拿出來(lái)支 持Linux,會(huì)因?yàn)镚PL的免費(fèi)開(kāi)源特性,造成創(chuàng)新成果流失(微軟的鮑爾默就曾經(jīng)說(shuō)GPL讓Linux染上了癌癥)。
為了規(guī)避這一問(wèn)題, 谷歌除了在操作系統(tǒng)核心使用了Linux代碼之外,在其他專門(mén)為安卓開(kāi)發(fā)的相當(dāng)一部分代碼中,使用了傳染性不那么強(qiáng)的開(kāi)源協(xié)議:基于Apache的ASL 或者基于BSD的BSD協(xié)議。這兩種協(xié)議的共同點(diǎn)在于對(duì)商業(yè)應(yīng)用十分友好,遵循這兩種協(xié)議的開(kāi)源代碼,商業(yè)公司可以拿過(guò)去用,而開(kāi)發(fā)出的產(chǎn)品不一定需要也 開(kāi)源,可以視情況打包為閉源商業(yè)軟件。在安卓系統(tǒng)中,大部分硬件驅(qū)動(dòng)程序,以及谷歌專門(mén)為移動(dòng)設(shè)備開(kāi)發(fā)的基本函數(shù)庫(kù)Bionic,都慷慨地采用了BSD或 ASL開(kāi)源協(xié)議,其中包括Dalvik虛擬機(jī)等安卓運(yùn)行庫(kù)(runtime)。(整個(gè)安卓操作系統(tǒng)各部分所遵循的版權(quán)協(xié)議見(jiàn)圖)
對(duì)比代碼是解答“是否抄襲”的核心
這 里要多說(shuō)兩句,谷歌為什么要允許別人閉源使用自己的開(kāi)源代碼呢,它有啥好處?必須要說(shuō)明,開(kāi)源協(xié)議的選擇體現(xiàn)了軟件的價(jià)值觀,也體現(xiàn)了開(kāi)發(fā)者的商業(yè)考量。 如果谷歌讓整個(gè)安卓系統(tǒng)采用GPL協(xié)議,看上去所有開(kāi)發(fā)者的進(jìn)一步開(kāi)發(fā)都會(huì)被開(kāi)源出來(lái),系統(tǒng)創(chuàng)新的速度可能更快;但這樣有個(gè)更大的副作用,就是很多商業(yè)公 司就不愿意介入安卓開(kāi)發(fā)了——一介入就被“傳染”了要開(kāi)放自己的源代碼了。為了團(tuán)結(jié)其他商業(yè)公司,讓更多的手機(jī)廠商原意采用安卓、更多的軟件廠商原意為安 卓開(kāi)發(fā)豐富多彩的應(yīng)用APP,谷歌選擇了在Linux核心之外,另行獨(dú)立開(kāi)發(fā)出安卓的運(yùn)行環(huán)境與函數(shù)庫(kù),并將這部分以更為自由的BSD和ASL協(xié)議發(fā)布。 這樣,開(kāi)發(fā)者基于安卓開(kāi)發(fā)的應(yīng)用,愿意貢獻(xiàn)給社區(qū),就開(kāi)源;希望保守自己的商業(yè)秘密,就閉源。這個(gè)策略目前來(lái)看相當(dāng)成功,安卓手機(jī)、應(yīng)用APP這一硬一軟 兩個(gè)方面,在這幾年突飛猛進(jìn)地發(fā)展,選擇了合適的開(kāi)源協(xié)議功不可沒(méi)(關(guān)于谷歌選擇開(kāi)源協(xié)議的分析,阮一峰翻譯了一篇文章,可以用來(lái)作為背景學(xué)習(xí))。
通過(guò)安卓的體系設(shè)計(jì),我們大概對(duì)幾種不同的開(kāi)源協(xié)議有了初步認(rèn)識(shí)。現(xiàn)在就來(lái)分析阿里云OS。阿里云OS的體系結(jié)構(gòu)如圖所示。可以看到,阿里云OS同樣基于Linux核心。這就涉及第一個(gè)版權(quán)問(wèn)題:這部分代碼按照GPL規(guī)定已經(jīng)被“傳染”,必須開(kāi)源。目前為止,在公開(kāi)報(bào)道中,我們還沒(méi)有找到阿里云OS“部分開(kāi)源”的消息。
在 這部分代碼開(kāi)源之后,業(yè)內(nèi)人就可以對(duì)阿里云和安卓做一個(gè)更透徹的比較,看看到底是前者直接使用了后者的代碼,還是真的如阿里自己所說(shuō),是獨(dú)立在Linux 基礎(chǔ)上開(kāi)發(fā)出來(lái)的新操作系統(tǒng)。因?yàn)楣雀璋沧恐械腖inux核心,與一般的Linux核心還有不同。為了適應(yīng)移動(dòng)設(shè)備內(nèi)存小、CPU頻率低、對(duì)耗電量高度敏 感的特點(diǎn),谷歌將這部分Linux核心做了修改,并依據(jù)GPL將修改開(kāi)源。從這篇文章可 以看到,谷歌對(duì)Linux核心做了至少兩處重大改動(dòng):進(jìn)程間通訊(IPC)模塊Binder,和至關(guān)重要的電量管理模塊。阿里云OS既然也是移動(dòng)操作系 統(tǒng),必然需要對(duì)本來(lái)為桌面系統(tǒng)開(kāi)發(fā)的Linux做出相似的處理。這個(gè)處理方式,是沿用了谷歌的方式,還是真正的自主開(kāi)發(fā)呢?代碼公布后,自然見(jiàn)分曉。
雙 方爭(zhēng)議的另一個(gè)核心,是阿里云OS如何實(shí)現(xiàn)了對(duì)安卓應(yīng)用的兼容。安卓系統(tǒng)的開(kāi)發(fā)語(yǔ)言是java,為了精簡(jiǎn)java程序使之適用于移動(dòng)設(shè)備,谷歌使用了 Dalvik虛擬機(jī)。注意Dalvik不是java虛擬機(jī),它是將java程序重新打包為一種更為精簡(jiǎn)的形式運(yùn)行。阿里云在第二份聲明中說(shuō)自己用了“不同 于Dalvik的java虛擬機(jī)”,那不但二者的代碼不同,連工作原理也會(huì)有不同了。
包括Dalvik在內(nèi)的安卓運(yùn)行庫(kù),采用的是ASL和 BSD協(xié)議,也就意味著阿里云就算直接用了這部分代碼,也可以選擇不公開(kāi)源代碼。但這不等于用了白用:ASL和BSD都規(guī)定,使用了遵循該協(xié)議的開(kāi)源代 碼,必須以顯要方式標(biāo)明原開(kāi)發(fā)者的版權(quán)歸屬;這種標(biāo)明方式,通常形式有源代碼中保留原作者的權(quán)利聲明和其他原作者規(guī)定的說(shuō)明。阿里云既然已經(jīng)披露了自己使 用安卓代碼的情況,這部分代碼中是否保留了谷歌的版權(quán)聲明,只需要查看相應(yīng)程序的說(shuō)明文件即可。
總算把開(kāi)源協(xié)議這部分介紹得差不多了。花費(fèi) 這么多筆墨的目的在于說(shuō)明,這次谷歌與阿里云之爭(zhēng),不應(yīng)該像以前業(yè)界的一些爭(zhēng)論演變?yōu)榭谒畱?zhàn),而應(yīng)該像另外一些爭(zhēng)論一樣,可以讓更多人了解操作系統(tǒng)、開(kāi)源 協(xié)議等相關(guān)知識(shí),消除許多誤區(qū)(這兩類爭(zhēng)論我就不具體點(diǎn)名舉例了),避免被人當(dāng)技術(shù)小白糊弄。要達(dá)到這個(gè)目的很簡(jiǎn)單,阿里云OS公開(kāi)指定部分的源代碼,供業(yè)內(nèi)行家與谷歌代碼進(jìn)行比對(duì)即可。這不是強(qiáng)人所難,因?yàn)榧热灰勒誈PL、ASL、BSD等規(guī)范享用了一大批免費(fèi)開(kāi)源源代碼,那也應(yīng)該遵循人家規(guī)定的義務(wù)。
當(dāng) 然,在中國(guó)這個(gè)用盜版軟件都異常有理的國(guó)家,各類開(kāi)源協(xié)議都是防君子不防小人的,程序源代碼都是純文本文件,你不遵循協(xié)議,它也不會(huì)鬧脾氣不運(yùn)行,或者在 屏幕上打出一行字來(lái)罵你。但無(wú)論是阿里,還是另外號(hào)稱要做自主操作系統(tǒng)的華為、百度、聯(lián)想,都是國(guó)際級(jí)大公司,應(yīng)該不會(huì)耍這種初級(jí)流氓。
安卓用戶與開(kāi)發(fā)者成為贏家
也 有一些有技術(shù)背景的朋友可能會(huì)奇怪,谷歌的安卓系統(tǒng)已經(jīng)提供了相當(dāng)寬松的條件,核心全部開(kāi)源消除了安全隱患,龐大的社區(qū)和資金支持保證了系統(tǒng)快速進(jìn)化,在 這種情況下,為什么這些公司還要一股勁地開(kāi)發(fā)自己的操作系統(tǒng)呢?把精力用在做好跟公司業(yè)務(wù)有關(guān)的平臺(tái)、APP上不是更好嗎。這個(gè)問(wèn)題很難回答,我也沒(méi)有確 定的答案。有些微博網(wǎng)友說(shuō)是因?yàn)槿绻虺鲎灾鞑僮飨到y(tǒng)的牌子,阿里云OS就可以獲得國(guó)家“核高基”( 核心電子器件、高端通用芯片及基礎(chǔ)軟件產(chǎn)品)資金資助。我查了一下,阿里云在某些展會(huì)上的確出現(xiàn)在核高基成果展區(qū),也有微博上的實(shí)名用戶說(shuō),阿里云獲得了863計(jì)劃的8000萬(wàn)元資金,他當(dāng)時(shí)是評(píng)委。但這些資金項(xiàng)目與阿里云舍棄安卓走自主之路之間還暫時(shí)找不到官方表述和公開(kāi)表達(dá),所以建議網(wǎng)友們?cè)谡业叫碌淖C據(jù)之前,不要過(guò)于肯定地認(rèn)定這一點(diǎn)。
最后,來(lái)說(shuō)一下這次爭(zhēng)議對(duì)用戶的影響。可以肯定,這對(duì)安卓開(kāi)發(fā)者和用戶來(lái)說(shuō),是個(gè)大利好消息,因?yàn)楣雀璞憩F(xiàn)出了解決安卓分裂現(xiàn)狀的行動(dòng)與關(guān)注度,而分裂問(wèn)題一直是安卓系統(tǒng)最大的憂患。資深移動(dòng)互聯(lián)網(wǎng)專家郝培強(qiáng)(@tinyfool) 兩年前就在新京報(bào)上發(fā)表過(guò)文章,安卓系統(tǒng)的標(biāo)準(zhǔn)化程度與iOS存在巨大差距,廠商各自推出的不同分辨率、不同操作方式的手機(jī)讓開(kāi)發(fā)者和用戶都深受其苦,各 類安卓版本之間的兼容、繼承也問(wèn)題多多。谷歌應(yīng)對(duì)這一問(wèn)題的方式是組建開(kāi)放手機(jī)聯(lián)盟,并在安卓4.0后逐步在系統(tǒng)層面進(jìn)行統(tǒng)一、限制明顯的分裂行為。
宏碁是開(kāi)放手機(jī)聯(lián)盟成員,有權(quán)優(yōu)先獲得最新的安卓系統(tǒng)代碼和接口服務(wù),如果它再去支持一款從底層到應(yīng)用都與安卓兼容的阿里云OS,從谷歌的角度來(lái)看,擔(dān)憂泄密、分裂也的確有其道理。
在市場(chǎng)層面上,阿里云不到五百萬(wàn)臺(tái)的出貨量遠(yuǎn)遠(yuǎn)說(shuō)不上威脅谷歌,更不至于像王堅(jiān)說(shuō)的那樣“讓谷歌害怕”。但安卓之父兩天內(nèi)兩次發(fā)表聲明來(lái)回應(yīng)這一問(wèn)題,至少讓開(kāi)發(fā)者、廠商和用戶看到了谷歌對(duì)于防止分裂、反對(duì)盜版的重視程度。從這個(gè)角度說(shuō),這次獲利最大的,將是廣大安卓用戶、開(kāi)發(fā)者和正統(tǒng)OS廠商。