純技術分析阿里云OS和Android之間的關系

jopen 12年前發布 | 18K 次閱讀 阿里云

前一篇《[多圖論證]阿里云OS不太可能是Android以外的東西》用的ROM是錯的,是Android的刷機包,不是官方原生的云OS的 ROM,所以論據是錯的。這里用官方原生云OS的ROM分析一下,到底阿里云OS和Android之間是什么關系。 首先找到官方的原生云OS的下載地址:http://bbs.aliyun.com/read.php?tid=22809
原帖里有W700的卡刷包:AliyunOS-1.6.1.6-RT-20120329.7z 各位可以自行下載驗證。

解開看大目錄的結構:

純技術分析阿里云OS和Android之間的關系

根目錄下是一個boot.img,這就是Android系統的bootloader,也就是啟動分區。另外有個system目錄,這就是Android系統的system分區。進入system目錄往下看:

純技術分析阿里云OS和Android之間的關系

這里和Android ROM的目錄結構是一模一樣的,各位可以自己找個Android ROM對比以下。核心的幾個目錄:
app: 存放ROM預裝的app
bin: 系統進程的目錄
framwork: Android Framework目錄,就是Android應用程序運行所需要的庫文件的目錄
lib: so庫文件目錄,相當于Windows的system32目錄

咱們再進到app目錄看一下:

純技術分析阿里云OS和Android之間的關系

好,看出區別來了,Android下所有的app都是以apk結尾的,前一篇帖子《[多圖論證]阿里云OS不太可能是Android以外的東西》用 的 ROM就是Android的ROM,里面對應這張圖里的文件就都是apk的。這里怎么都是lar呢?這就是阿里云OS和Android不同的地方了,因為 apk是Dalvik虛擬機管理應用程序的文件格式,阿里云自己搞了個虛擬機,用lar文件來管理。lar文件和apk文件有什么不同?我們知道apk文 件其實就是一個zip文件,用WinRAR可以直接打開看,那lar文件呢?用WinRAR果然也可以直接打開:

純技術分析阿里云OS和Android之間的關系

做過Android開發的人一看到這個目錄結構就發現,它和apk的目錄結構基本上是一模一樣的,除了Android應用的classes.dex文件變成了classes.lex。那所謂的lex文件是不是就是把dex文件換了個名字呢?我們用二進制比較一下:

純技術分析阿里云OS和Android之間的關系

左邊的是Android應用的dex文件,右邊的是阿里云應用的lex文件。可見,文件格式已經完全不一樣了。

好,app的不同已經看出來了,我們再來看系統核心進程有什么不同。進入到/system/bin目錄:

純技術分析阿里云OS和Android之間的關系

熟悉Android系統的人一眼就能看出來,am, app_process之類的名字都是Android核心進程的名字。多出來了幾個:cloudserver, chpasswd.cgi之類,看來這就是阿里云所謂的“云服務”的核心進程了。

好,文件的比較就到這里,那現在基本上可以下結論了,一個完整的Android系統,包括以下幾個部分:
1. bootloader:用來啟動操作系統
2. kernel: 系統內核
3. 核心進程,就是 /system/bin 下面那堆東西
4. so庫: 系統運行基礎,就是 /system/lib 下面那堆東西
5. Android虛擬機,所有的上層應用都是靠虛擬機來運行的
6. Android Framework: 所有的上層應用都是通過調用Framework來實現功能的,就是 /system/framework下面那堆東西
7. 上層應用,比如說桌面Launcher, 撥號,短信,通訊錄之類,就是/system/app下面那堆東西

那么,阿里云OS,在上面7個部分中,虛擬機用的是自己的,上層應用是自己定制的,另外額外加了一個“云服務”,其余部分都是用的Android的。它和Android是什么關系已經很清楚了。

那順便八卦一下,為什么阿里云要搞成這個樣子呢?說來就話長了,話說當年阿里云剛成立的時候,還是很有追求滴,當時收購了一家國內做Java虛擬機 的公司 (叫“猛犸科技”),同時還找了一幫MOTO做Linux內核的人,想搞個自己的操作系統出來。阿里云的CEO叫王堅,和李開復一樣都是從微軟研究院出 身,但是頗看不起李開復搞的“點心OS”,認為“拿個Android來改一改,多土啊!我們要搞自己的操作系統!”于是呢,阿里云的一幫人就吭哧吭哧搞 “自己的操作系統”了。結果呢,大家腳趾頭都能想到,從頭搞一個操作系統哪有那么容易,做了半年沒做出來,咋給馬云交差呢?于是也顧不上土不土了,拿 Android改吧。虛擬機是現成的,那就換掉Android的虛擬機吧,好歹能算是自己的工作成果。但光換個虛擬機意義也不大啊,HTML5和 WebOS的概念比較新潮,那就再加個“云服務”的概念吧,也算是國內HTML5的倡導者了。HTML5通過瀏覽器引擎跑,性能肯定比不上原生應用,那怎 么保證操作流暢呢(特別是桌面Launcher,天天用,要是太卡,用戶就瘋了),那還是用原生應用來實現吧……于是,最后阿里云OS就長成現在這樣了。

好吧,說到這里,大家也能看出,阿里云OS一開始就沒有從用戶角度,商業角度來考慮,完全是公司高層的個人喜好折騰出來的東西。最后靠著阿里巴巴集 團的背 景,想拉上天語,海爾和宏基來買單,結果這幾家也是各懷異心。可惜了阿里云的苦逼員工們,折騰了好幾圈,前些天還看到有阿里云OS的員工在微博上說“每周 7天加班”,悲催啊,最后做出來的東西還被市場所拋棄。

本文轉載自: http://www.cnbeta.com/articles/205956.htm

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!