谷歌封殺阿里云出于兩大目的:防止安卓陣營的硬件基石開放手機聯盟(OHA)分裂;譴責阿里云對安卓應用APP的盜版。阿里云如果要回應這些指責,光發聲明是不夠的,還需要遵循開源協議,公開云OS部分代碼。
在谷歌封殺宏碁推出“阿里云”手機之后,雙方各就此發表了兩輪聲明。這些聲明也使得事件爆發之初的一些判斷和表態看上去十分可笑,諸如“谷歌封殺是給阿里云加冕”、“阿里云因為采用與谷歌相似的web app戰略規劃所以被后者忌憚”等等,有些已經在雙方的聲明中被直接否定,也有些能明顯看出來作者不了解移動操作系統的體系架構以及GPL、ASL等開源協議的規定,所以對一些明顯的問題視而不見。
阿里云市場的確存在盜版問題
盜版問題比較簡單,我們可以先把這個問題說清楚。安迪魯賓的第二份聲明中說,“你們(阿里云)的應用商店中還包括了安卓的應用,包括盜版的。”認真的老外很快找到了證據:科技博客Androidpolice發表了一篇調查文章《確認阿里云應用市場發布盜版安卓應用,很多來自別的盜版站點》。他們發現在阿里云的應用市場中,有神廟逃亡(temple run)等熱門游戲的盜版拷貝下載,其署名提供方并非游戲自己的開發商,而是中國國內某個安卓應用市場,而后者提供了大量其他盜版APP下載;有一些原本是收費的游戲也在阿里云的市場中提供免費下載;最有趣的是,一款針對安卓ROM的工具軟件ROM ToolBox Pro也出現在阿里云市場中——阿里巴巴方面一直堅稱阿里云OS并未基于安卓,那在自己的市場中放一款針對安卓ROM的工具有什么意義呢?
在盜版習慣仍然深入人心的中國,免費、開放的安卓平臺以及其上的免費應用給很多人一個錯覺,既然免費,就可以隨便用,所以發布一些免費應用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同樣基于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://www.geekpark.net/read/view/163832
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
