最近阿里的云溪大會(huì)結(jié)束了,朵唯發(fā)布了唯一的一款云os的手機(jī),各種炫各種吊,不過(guò)就宣傳來(lái)看,似乎,它并非基于Android系統(tǒng),那么阿里云OS究竟是從何而來(lái)?它和Android原生系統(tǒng)有何區(qū)別呢?一起來(lái)看看。 其實(shí)關(guān)于阿里云OS和Android之爭(zhēng)早在兩年前就開(kāi)始了,Android開(kāi)發(fā)領(lǐng)頭人Andy Rubin在其Google+主頁(yè)中這樣寫(xiě)道:“阿里云系統(tǒng)采用了谷歌Android系統(tǒng)的運(yùn)行環(huán)境,明顯是由Android系統(tǒng)修改得來(lái)?!盇ndy Rubin還稱(chēng),事實(shí)是,阿里云系統(tǒng)包含了Android中運(yùn)行環(huán)境,明顯是從Android中演變而來(lái),但無(wú)法與Android兼容?;贕oogle對(duì)阿里云網(wǎng)站上應(yīng)用的分析,這個(gè)平臺(tái)嘗試與Android兼容,但未能成功。 那么,阿里云OS到底是不是Android以外的東西呢,通過(guò)一些技術(shù)手段可以來(lái)驗(yàn)證一下,我們使用某使用阿里云OS的刷機(jī)包來(lái)驗(yàn)證,首先我們將.zip包打開(kāi)看看。 解開(kāi)看大目錄的結(jié)構(gòu):
mp39202314_1446440547421_2.jpeg (26.88 KB, 下載次數(shù): 10)
下載附件
保存到相冊(cè)
2015-11-2 13:39 上傳
根目錄下是一個(gè)boot.img,這就是Android系統(tǒng)的bootloader,也就是啟動(dòng)分區(qū)。另外有個(gè)system目錄,這就是Android系統(tǒng)的system分區(qū)。進(jìn)入system目錄往下看:
mp39202314_1446440547421_3.jpeg (35.69 KB, 下載次數(shù): 9)
下載附件
保存到相冊(cè)
2015-11-2 13:39 上傳
這里和Android ROM的目錄結(jié)構(gòu)是一模一樣的,各位可以自己找個(gè)Android ROM對(duì)比以下。核心的幾個(gè)目錄: app:存放ROM預(yù)裝的app bin:系統(tǒng)進(jìn)程的目錄 framwork: Android Framework目錄,就是Android應(yīng)用程序運(yùn)行所需要的庫(kù)文件的目錄 lib: so庫(kù)文件目錄,相當(dāng)于Windows的system32目錄 咱們?cè)龠M(jìn)到app目錄看一下:
mp39202314_1446440547421_4.jpeg (72.11 KB, 下載次數(shù): 8)
下載附件
保存到相冊(cè)
2015-11-2 13:39 上傳
好,看出區(qū)別來(lái)了,Android下所有的app都是以apk結(jié)尾的,前一篇帖子用的ROM就是Android的ROM,里面對(duì)應(yīng)這張圖里的文件就都是apk的。這里怎么都是lar呢?這就是阿里云OS和Android不同的地方了,因?yàn)閍pk是Dalvik虛擬機(jī)管理應(yīng)用程序的文件格式,阿里云自己搞了個(gè)虛擬機(jī),用lar文件來(lái)管理。lar文件和apk文件有什么不同?我們知道apk文件其實(shí)就是一個(gè)zip文件,用WinRAR可以直接打開(kāi)看,那lar文件呢?用WinRAR果然也可以直接打開(kāi):
mp39202314_1446440547421_5.jpeg (36.99 KB, 下載次數(shù): 8)
下載附件
保存到相冊(cè)
2015-11-2 13:39 上傳
做過(guò)Android開(kāi)發(fā)的人一看到這個(gè)目錄結(jié)構(gòu)就發(fā)現(xiàn),它和apk的目錄結(jié)構(gòu)基本上是一模一樣的,除了Android應(yīng)用的classes.dex文件變成了classes.lex。那所謂的lex文件是不是就是把dex文件換了個(gè)名字呢?我們用二進(jìn)制比較一下:
mp39202314_1446440547421_6.jpeg (25.51 KB, 下載次數(shù): 9)
下載附件
保存到相冊(cè)
2015-11-2 13:39 上傳
左邊的是Android應(yīng)用的dex文件,右邊的是阿里云應(yīng)用的lex文件??梢?jiàn),文件格式已經(jīng)完全不一樣了。 好,app的不同已經(jīng)看出來(lái)了,我們?cè)賮?lái)看系統(tǒng)核心進(jìn)程有什么不同。進(jìn)入到/system/bin目錄:
mp39202314_1446440547421_7.jpeg (65 KB, 下載次數(shù): 7)
下載附件
保存到相冊(cè)
2015-11-2 13:39 上傳
熟悉Android系統(tǒng)的人一眼就能看出來(lái),am, app_process之類(lèi)的名字都是Android核心進(jìn)程的名字。多出來(lái)了幾個(gè):cloudserver, chpasswd.cgi之類(lèi),看來(lái)這就是阿里云所謂的“云服務(wù)”的核心進(jìn)程了。 好,文件的比較就到這里,那現(xiàn)在基本上可以下結(jié)論了,一個(gè)完整的Android系統(tǒng),包括以下幾個(gè)部分: 1. bootloader:用來(lái)啟動(dòng)操作系統(tǒng) 2. kernel:系統(tǒng)內(nèi)核 3.核心進(jìn)程,就是/system/bin下面那堆東西 4. so庫(kù):系統(tǒng)運(yùn)行基礎(chǔ),就是/system/lib下面那堆東西 5. Android虛擬機(jī),所有的上層應(yīng)用都是靠虛擬機(jī)來(lái)運(yùn)行的 6. Android Framework:所有的上層應(yīng)用都是通過(guò)調(diào)用Framework來(lái)實(shí)現(xiàn)功能的,就是/system/framework下面那堆東西 7.上層應(yīng)用,比如說(shuō)桌面Launcher,撥號(hào),短信,通訊錄之類(lèi),就是/system/app下面那堆東西 那么,阿里云OS,在上面7個(gè)部分中,虛擬機(jī)用的是自己的,上層應(yīng)用是自己定制的,另外額外加了一個(gè)“云服務(wù)”,其余部分都是用的Android的。它和Android是什么關(guān)系已經(jīng)很清楚了。 那順便八卦一下,為什么阿里云要搞成這個(gè)樣子呢?說(shuō)來(lái)就話長(zhǎng)了,話說(shuō)當(dāng)年阿里云剛成立的時(shí)候,還是很有追求滴,當(dāng)時(shí)收購(gòu)了一家國(guó)內(nèi)做Java虛擬機(jī)的公司(叫“猛犸科技”),同時(shí)還找了一幫MOTO做Linux內(nèi)核的人,想搞個(gè)自己的操作系統(tǒng)出來(lái)。阿里云的CEO叫王堅(jiān),和李開(kāi)復(fù)一樣都是從微軟研究院出身,但是頗看不起李開(kāi)復(fù)搞的“點(diǎn)心OS”,認(rèn)為“拿個(gè)Android來(lái)改一改,多土??!我們要搞自己的操作系統(tǒng)!”于是呢,阿里云的一幫人就吭哧吭哧搞“自己的操作系統(tǒng)”了。結(jié)果呢,大家腳趾頭都能想到,從頭搞一個(gè)操作系統(tǒng)哪有那么容易,做了半年沒(méi)做出來(lái),咋給馬云交差呢?于是也顧不上土不土了,拿Android改吧。虛擬機(jī)是現(xiàn)成的,那就換掉Android的虛擬機(jī)吧,好歹能算是自己的工作成果。但光換個(gè)虛擬機(jī)意義也不大啊,HTML5和WebOS的概念比較新潮,那就再加個(gè)“云服務(wù)”的概念吧,也算是國(guó)內(nèi)HTML5的倡導(dǎo)者了。HTML5通過(guò)瀏覽器引擎跑,性能肯定比不上原生應(yīng)用,那怎么保證操作流暢呢(特別是桌面Launcher,天天用,要是太卡,用戶就瘋了),那還是用原生應(yīng)用來(lái)實(shí)現(xiàn)吧……于是,最后阿里云OS就長(zhǎng)成現(xiàn)在這樣了。
在電視&盒子上也是有很多yunos系統(tǒng)的設(shè)備的,還好這些設(shè)備大都能安裝當(dāng)貝市場(chǎng),從而也避免了機(jī)子上資源少的問(wèn)題了。
QQ截圖20150815090957.png (479.94 KB, 下載次數(shù): 7)
下載附件
保存到相冊(cè)
2015-11-2 13:40 上傳
|