morris_2007 發表於 2013-2-9 12:30:43

Google為何緊急封殺阿里雲OS?

近日平媒《商業價值》移動閱讀主編的一篇分析文章,對近日惹人關註的谷歌封殺阿里雲OS事件進行了詳細評論分析,如果你想知道谷歌為何對待阿里雲OS的態度如此激烈,我們推薦你仔細閱讀下文:

在谷歌封殺宏碁推出“阿里雲”手機之後,雙方各就此發表了兩輪聲明。這些聲明也使得事件爆發之初的一些判斷和表態看上去十分可笑,諸如“谷歌封殺是給阿里雲加冕”、“阿里雲因為采用與谷歌相似的web app戰略規劃所以被後者忌憚”等等,有些已經在雙方的聲明中被直接否定,也有些能明顯看出來作者不了解移動操作系統的體系架構以及GPL、ASL等開源協議的規定,所以對一些明顯的問題視而不見。

從安卓之父安迪·魯賓的兩次聲明中,我們可以看到,谷歌封殺阿里雲,其實出於兩大目的:防止安卓陣營的硬件基石開放手機聯盟(OHA)分裂;譴責阿里雲對安卓應用APP的盜版。而阿里雲如果要回應這些指責,光發聲明是不夠的,還需要遵循開源協議,公開雲OS部分代碼。


阿里雲市場的確存在盜版問題

盜版問題比較簡單,我們可以先把這個問題說清楚。安迪•魯賓的第二份聲明中說,“你們(阿里雲)的應用商店中還包括了安卓的應用,包括盜版的。”認真的老外很快找到了證據:科技博客Androidpolice發表了一篇調查文章《確認阿里雲應用市場發布盜版安卓應用,很多來自別的盜版站點》。他們發現在阿里雲的應用市場中,有神廟逃亡(Temple Run)等熱門遊戲的盜版拷貝下載,其署名提供方並非遊戲自己的開發商,而是中國國內某個安卓應用市場,而後者提供了大量其他盜版APP下載;有一些原本是收費的遊戲也在阿里雲的市場中提供免費下載;最有趣的是,一款針對安卓ROM的工具軟件ROM ToolBox Pro也出現在阿里雲市場中——阿裏巴巴方面一直堅稱阿里雲OS並未基於安卓,那在自己的市場中放一款針對安卓ROM的工具有什麼意義呢?

AndroidPolice采訪了一些應用開發者,他們明確表示自己並未將應用APP上傳到阿里雲市場。一款收費遊戲(在阿里雲市場中被標為免費)的開發者表示,“這是我們第一次聽說阿里雲。我們不知道我們的應用被上傳到了那兒”。ROM ToolBox Pro的開發者語氣則比較激烈:“像阿里雲這樣的軟件破解網站只會傷害消費者和開發者”。

在盜版習慣仍然深入人心的中國,免費、開放的安卓平台以及其上的免費應用給很多人一個錯覺,既然免費,就可以隨便用,所以發布一些免費應用APP有什麼不對呢?但這的確是不對的,免費不等於作者放棄了所有權益,他們只是放棄了按份出售應用的做法,但署名權和其他權益比如市場推廣、運營等權益仍然屬於作者本人,上傳到哪個市場、適用於哪些手機的決定權同樣在原作者(這也有保證應用正常運行的考慮)。像上述阿里雲市場中更改應用作者署名、使用非授權版本等行為,已經侵犯了軟件作者的權益。至於把收費軟件改成免費應用放在市場裏的行為,就更不用多說了。

也有些人說谷歌為什麼不去抓中國數量眾多的盜版market,非要跟阿里雲過不去?這裏面有個精力問題,也有個商業策略問題。盜版永無止息,但一旦有商業公司來運作,其破壞力就大得多(因為很容易變現出利益),反過來說侵權主體也好認定。所以反盜版歷來是重拳打擊商業、政府機構的盜版行為,對個人消費者和一些小組織則基本無視。


協議規定安卓和阿里雲都應開源

好。本來挺簡單的盜版認定問題也說了這麼一堆。下面進入稍微復雜一些問題討論,即阿里雲OS是否分裂了安卓陣營。

這個說法成立的前提是,阿里雲OS要是安卓的一分子,這樣才談得上內部分裂。這也是目前為止阿里反對最激烈的一點。無論是阿里雲CEO王堅,還是官方聲明,阿裏都否定了“阿里雲OS屬於安卓陣營”的說法。其中王堅說,阿里雲OS是“獨立的操作系統”;阿裏巴巴副總裁約翰•斯佩裏奇說“阿里雲OS並不是安卓生態系統的一部分”;阿里第二份官方聲明中也說,“阿里雲OS使用了自行研發的虛擬機,這與安卓的Dalvik虛擬機不同。阿裏雲OS的運行環境,也就是OS的核心部分,即有不同於Dalvik的阿里雲自己的JAVA虛擬機,也有阿里雲自行研發的雲應用引擎(cloud app engine),用於支持html5 web應用。阿里雲OS用了一些(開源的)安卓應用的框架和工具僅僅是作為補丁,讓使用雲應用的用戶可以在我們的生態系統中使用其他第三方應用。”

現在雙方都表明立場了,谷歌說阿里雲基於安卓的代碼,阿里說我們的核心是自己開發的(但操作系統的核心是“運行環境”這個奇怪的說法是頭一次聽說),只用了安卓一些應用框架和工具做補丁,然後還要特意強調,這些部分是開源的。雙方各執一詞,按業內的做法,那就對比兩邊的源代碼好了。安卓的大部分源代碼是公開的,阿里雲OS的代碼沒有看到公開,似乎他們也沒說要公開——但是且慢,按照開源協議,阿里雲OS必須公開一部分代碼。

從這場爭論開始到現在,輿論被有意無意地引導到阿裏雲的遠景規劃與谷歌沖突、必須要有自主操作系統以免受制於人這些奇怪的宏大敘事角度去,卻沒看到有基於開源協議來分析阿裏雲義務的聲音。

眾所周知,安卓是一個開源、開放的操作系統,但這二者並不能等同。同時,開源也並不意味著,任何人或者公司都可以拿著公開源代碼回去自己編譯出一個應用來,然後打上自主產權的標簽就可以去報獎立項了。開源代碼有著嚴格的流轉規範體系,使用開源代碼必須基於這些規範,來保護開發者的版權。我們以安卓系統為例,來分析一下這些不同的開源標準,以及阿裏雲應該遵守哪些標準公開代碼。

安卓系統基於Linux操作系統發展而來(阿里雲也自稱基於Linux而非安卓系統)。Linux是一個開源系統,它采用了GPL開源協議,這是我們這裏提到的第一種開源協議。GPL協議規定,遵循該協議的代碼都是開源、免費的;一旦軟件作品中使用了遵循GPL協議的開源代碼,該軟件也必須開源、免費。業內通常管這種特性傳遞叫“傳染性”,只要使用了一行GPL開源代碼,整個軟件都被“傳染”為遵循GPL協議。註意,真正的GPL協議要比這裏的描述復雜、嚴謹不少,為了行文簡潔,本文僅僅選取了與這一問題相關的部分內容進行表述。

GPL使軟件開發者獲得了極大的自由,可以免費閱讀、使用全世界最優秀的程序代碼。但它的強傳染性也削弱了它的商業前景。一些手機制造商如果針對自己的硬件開發一份Linux驅動,它必然要調用一些Linux基本函數、類庫,該驅動因此會被GPL傳染,要公開所有源代碼。但這可能暴露廠商的硬件細節,造成泄密。同樣,一些商業公司也會認為,將自己的獨有技術拿出來支持Linux,會因為GPL的免費開源特性,造成創新成果流失(微軟的鮑爾默就曾經說GPL讓Linux染上了癌癥)。

為了規避這一問題,谷歌除了在操作系統核心使用了Linux代碼之外,在其他專門為安卓開發的相當一部分代碼中,使用了傳染性不那麼強的開源協議:基於Apache的ASL或者基於BSD的BSD協議。這兩種協議的共同點在於對商業應用十分友好,遵循這兩種協議的開源代碼,商業公司可以拿過去用,而開發出的產品不一定需要也開源,可以視情況打包為閉源商業軟件。在安卓系統中,大部分硬件驅動程序,以及谷歌專門為移動設備開發的基本函數庫Bionic,都慷慨地采用了BSD或ASL開源協議,其中包括Dalvik虛擬機等安卓運行庫(runtime)。(整個安卓操作系統各部分所遵循的版權協議見圖)



對比代碼是解答“是否抄襲”的核心

這裏要多說兩句,谷歌為什麼要允許別人閉源使用自己的開源代碼呢,它有啥好處?必須要說明,開源協議的選擇體現了軟件的價值觀,也體現了開發者的商業考量。如果谷歌讓整個安卓系統采用GPL協議,看上去所有開發者的進一步開發都會被開源出來,系統創新的速度可能更快;但這樣有個更大的副作用,就是很多商業公司就不願意介入安卓開發了——一介入就被“傳染”了要開放自己的源代碼了。為了團結其他商業公司,讓更多的手機廠商原意采用安卓、更多的軟件廠商原意為安卓開發豐富多彩的應用APP,谷歌選擇了在Linux核心之外,另行獨立開發出安卓的運行環境與函數庫,並將這部分以更為自由的BSD和ASL協議發布。這樣,開發者基於安卓開發的應用,願意貢獻給社區,就開源;希望保守自己的商業秘密,就閉源。這個策略目前來看相當成功,安卓手機、應用APP這一硬一軟兩個方面,在這幾年突飛猛進地發展,選擇了合適的開源協議功不可沒。

通過安卓的體系設計,我們大概對幾種不同的開源協議有了初步認識。現在就來分析阿里雲OS。阿里雲OS的體系結構如圖所示。可以看到,阿里雲OS同樣基於Linux核心。這就涉及第一個版權問題:這部分代碼按照GPL規定已經被“傳染”,必須開源。目前為止,在公開報道中,我們還沒有找到阿裏雲OS“部分開源”的消息。

在這部分代碼開源之後,業內人就可以對阿里雲和安卓做一個更透徹的比較,看看到底是前者直接使用了後者的代碼,還是真的如阿裏自己所說,是獨立在Linux基礎上開發出來的新操作系統。因為谷歌安卓中的Linux核心,與一般的Linux核心還有不同。為了適應移動設備內存小、CPU頻率低、對耗電量高度敏感的特點,谷歌將這部分Linux核心做了修改,並依據GPL將修改開源。從這篇文章可以看到,谷歌對Linux核心做了至少兩處重大改動:進程間通訊(IPC)模塊Binder,和至關重要的電量管理模塊。阿里雲OS既然也是移動操作系統,必然需要對本來為桌面系統開發的Linux做出相似的處理。這個處理方式,是沿用了谷歌的方式,還是真正的自主開發呢?代碼公布後,自然見分曉。

雙方爭議的另一個核心,是阿里雲OS如何實現了對安卓應用的兼容。安卓系統的開發語言是java,為了精簡java程序使之適用於移動設備,谷歌使用了Dalvik虛擬機。註意Dalvik不是java虛擬機,它是將java程序重新打包為一種更為精簡的形式運行。阿里雲在第二份聲明中說自己用了“不同於Dalvik的java虛擬機”,那不但二者的代碼不同,連工作原理也會有不同了。

包括Dalvik在內的安卓運行庫,采用的是ASL和BSD協議,也就意味著阿里雲就算直接用了這部分代碼,也可以選擇不公開源代碼。但這不等於用了白用:ASL和BSD都規定,使用了遵循該協議的開源代碼,必須以顯要方式標明原開發者的版權歸屬;這種標明方式,通常形式有源代碼中保留原作者的權利聲明和其他原作者規定的說明。阿里雲既然已經披露了自己使用安卓代碼的情況,這部分代碼中是否保留了谷歌的版權聲明,只需要查看相應程序的說明文件即可。

總算把開源協議這部分介紹得差不多了。花費這麼多筆墨的目的在於說明,這次谷歌與阿里雲之爭,不應該像以前業界的一些爭論演變為口水戰,而應該像另外一些爭論一樣,可以讓更多人了解操作系統、開源協議等相關知識,消除許多誤區(這兩類爭論我就不具體點名舉例了),避免被人當技術小白糊弄。要達到這個目的很簡單,阿里雲OS公開指定部分的源代碼,供業內行家與谷歌代碼進行比對即可。這不是強人所難,因為既然依照GPL、ASL、BSD等規範享用了一大批免費開源源代碼,那也應該遵循人家規定的義務。

當然,在中國這個用盜版軟件都異常有理的國家,各類開源協議都是防君子不防小人的,程序源代碼都是純文本文件,你不遵循協議,它也不會鬧脾氣不運行,或者在屏幕上打出一行字來罵你。但無論是阿里,還是另外號稱要做自主操作系統的華為、百度、聯想,都是國際級大公司,應該不會耍這種初級流氓。


安卓用戶與開發者成為贏家

也有一些有技術背景的朋友可能會奇怪,谷歌的安卓系統已經提供了相當寬松的條件,核心全部開源消除了安全隱患,龐大的社區和資金支持保證了系統快速進化,在這種情況下,為什麼這些公司還要一股勁地開發自己的操作系統呢?把精力用在做好跟公司業務有關的平台、APP上不是更好嗎。這個問題很難回答,我也沒有確定的答案。有些微博網友說是因為如果打出自主操作系統的牌子,阿里雲OS就可以獲得國家“核高基”( 核心電子器件、高端通用芯片及基礎軟件產品)資金資助。我查了一下,阿里雲在某些展會上的確出現在核高基成果展區,也有微博上的實名用戶說,阿里雲獲得了863計劃的8000萬元資金,他當時是評委。但這些資金項目與阿里雲舍棄安卓走自主之路之間還暫時找不到官方表述和公開表達,所以建議網友們在找到新的證據之前,不要過於肯定地認定這一點。

最後,來說一下這次爭議對用戶的影響。可以肯定,這對安卓開發者和用戶來說,是個大利好消息,因為谷歌表現出了解決安卓分裂現狀的行動與關註度,而分裂問題一直是安卓系統最大的憂患。資深移動互聯網專家郝培強(@tinyfool)兩年前就在新京報上發表過文章,安卓系統的標準化程度與iOS存在巨大差距,廠商各自推出的不同分辨率、不同操作方式的手機讓開發者和用戶都深受其苦,各類安卓版本之間的兼容、繼承也問題多多。谷歌應對這一問題的方式是組建開放手機聯盟,並在安卓4.0後逐步在系統層面進行統一、限制明顯的分裂行為。

宏碁是開放手機聯盟成員,有權優先獲得最新的安卓系統代碼和接口服務,如果它再去支持一款從底層到應用都與安卓兼容的阿里雲OS,從谷歌的角度來看,擔憂泄密、分裂也的確有其道理。

在市場層面上,阿里雲不到五百萬台的出貨量遠遠說不上威脅谷歌,更不至於像王堅說的那樣“讓谷歌害怕”。但安卓之父兩天內兩次發表聲明來回應這一問題,至少讓開發者、廠商和用戶看到了谷歌對於防止分裂、反對盜版的重視程度。從這個角度說,這次獲利最大的,將是廣大安卓用戶、開發者和正統OS廠商。

http://cloud.watchstor.com/operations-139981.htm

只有公開代碼才會有真相.
頁: [1]
查看完整版本: Google為何緊急封殺阿里雲OS?