阿里云和安卓操作系统的不同

上传人:平*** 文档编号:10495094 上传时间:2017-10-07 格式:DOC 页数:5 大小:572.32KB
返回 下载 相关 举报
阿里云和安卓操作系统的不同_第1页
第1页 / 共5页
阿里云和安卓操作系统的不同_第2页
第2页 / 共5页
阿里云和安卓操作系统的不同_第3页
第3页 / 共5页
阿里云和安卓操作系统的不同_第4页
第4页 / 共5页
阿里云和安卓操作系统的不同_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《阿里云和安卓操作系统的不同》由会员分享,可在线阅读,更多相关《阿里云和安卓操作系统的不同(5页珍藏版)》请在金锄头文库上搜索。

1、近日,有关谷歌 Android 和阿里云的争论闹得沸沸扬扬,谷歌高管、Android 开发领头人 Andy Rubin 在其 Google+主页中这样写道:阿里云系统采用了谷歌 Android 系统的运行环境,明显是由 Android 系统修改得来。Andy Rubin 称,事实是,阿里云系统包含了 Android 中运行环境,明显是从 Android 中演变而来,但无法与Android 兼容。基于 Google 对阿里云网站上应用的分析,这个平台尝试与 Android 兼容,但未能成功。阿里云 OS 到底是不是 Android 以外的东西,笔者通过技术手段对其进行一些分析。天语 W700 是

2、一款使用了“阿里云 OS 操作系统 ”的手机,笔者找到一个天语 W700 手机的阿里云 OS 的刷机包。打开粗粗看一下,和Android 的刷机包没两样。里面的应用全部是 apk,这意味着它们都是以 Dalvik 可执行文件的形式存在的。图 1Build.prop 里面也指出是,Android2.2图 2接下去来找其中的 c library,因为我们知道, Android 是在 Linux 内核之上运行了一套 Google 自己组织起来的架构。和通常意义上的 GNU Linux 一样,这个架构里最基础的东西之一就是 C 运行库。GNU Linux 的 C 运行库是 Glibc,而 Androi

3、d 用的是 Bionic。通过使用自己组织,编写的代码,Android 可以从这一层以上避开 GPL 协议不允许发布者拥有保密源代码权利的限制。找到其中的 lib/libc.so,也就是 C 运行库,用 readelf 查看它的符号表(这么做不涉及反向工程) ,可以在找到”bionic”。说明它的 C 运行库很可能是 bionic。图 3内核是 linux kernel,基础的 C 运行库是 Bionic,有 Dalvik,上层的应用全部是 Dex 格式,这些东西说明 W700上的“阿里云 OS 操作系统”不太可能是 Android 以外的东西。当然以上的内容无法用于推测,这么做是否与 And

4、roid 的授权协议产生了矛盾。但是有一件事情比较明确,如果提供这个手机的厂商没有提供其中 linux kernel 的源代码,那很可能是非法的。更新:上篇用的 ROM 是错的,是 Android 的刷机包,不是官方原生的云 OS 的 ROM,所以论据是错的。这里用官方原生云 OS 的 ROM 分析一下,到底阿里云 OS 和 Android 之间是什么关系。解开看大目录的结构:根目录下是一个 boot.img,这就是 Android 系统的 bootloader,也就是启动分区。另外有个 system 目录,这就是Android 系统的 system 分区。进入 system 目录往下看:这里

5、和 Android ROM 的目录结构是一模一样的,各位可以自己找个 Android ROM 对比以下。核心的几个目录:app: 存放 ROM 预装的 appbin: 系统进程的目录framwork: Android Framework 目录,就是 Android 应用程序运行所需要的库文件的目录lib: so 库文件目录,相当于 Windows 的 system32 目录咱们再进到 app 目录看一下:好,看出区别来了,Android 下所有的 app 都是以 apk 结尾的,前一篇帖子用的 ROM 就是 Android 的 ROM,里面对应这张图里的文件就都是 apk 的。这里怎么都是 l

6、ar 呢?这就是阿里云 OS 和 Android 不同的地方了,因为 apk是 Dalvik 虚拟机管理应用程序的文件格式,阿里云自己搞了个虚拟机,用 lar 文件来管理。lar 文件和 apk 文件有什么不同?我们知道 apk 文件其实就是一个 zip 文件,用 WinRAR 可以直接打开看,那 lar 文件呢?用 WinRAR 果然也可以直接打开:做过 Android 开发的人一看到这个目录结构就发现,它和 apk 的目录结构基本上是一模一样的,除了 Android 应用的 classes.dex 文件变成了 classes.lex。那所谓的 lex 文件是不是就是把 dex 文件换了个名

7、字呢?我们用二进制比较一下:左边的是 Android 应用的 dex 文件,右边的是阿里云应用的 lex 文件。可见,文件格式已经完全不一样了。好,app 的不同已经看出来了,我们再来看系统核心进程有什么不同。进入到/system/bin 目录:熟悉 Android 系统的人一眼就能看出来, am, app_process 之类的名字都是 Android 核心进程的名字。多出来了几个:cloudserver, chpasswd.cgi 之类,看来这就是阿里云所谓的“云服务”的核心进程了。好,文件的比较就到这里,那现在基本上可以下结论了,一个完整的 Android 系统,包括以下几个部分:1.

8、bootloader:用来启动操作系统2. kernel: 系统内核3. 核心进程,就是 /system/bin 下面那堆东西4. so 库: 系统运行基础,就是 /system/lib 下面那堆东西5. Android 虚拟机,所有的上层应用都是靠虚拟机来运行的6. Android Framework: 所有的上层应用都是通过调用 Framework 来实现功能的,就是 /system/framework 下面那堆东西7. 上层应用,比如说桌面 Launcher, 拨号,短信,通讯录之类,就是/system/app 下面那堆东西那么,阿里云 OS,在上面 7 个部分中,虚拟机用的是自己的,上

9、层应用是自己定制的,另外额外加了一个“云服务” ,其余部分都是用的 Android 的。它和 Android 是什么关系已经很清楚了。那顺便八卦一下,为什么阿里云要搞成这个样子呢?说来就话长了,话说当年阿里云刚成立的时候,还是很有追求滴,当时收购了一家国内做 Java 虚拟机的公司(叫“猛犸科技” ) ,同时还找了一帮 MOTO 做 Linux 内核的人,想搞个自己的操作系统出来。阿里云的 CEO 叫王坚,和李开复一样都是从微软研究院出身,但是颇看不起李开复搞的“点心 OS”,认为 “拿个 Android 来改一改,多土啊!我们要搞自己的操作系统!”于是呢,阿里云的一帮人就吭哧吭哧搞“自己的操作系统”了。结果呢,大家脚趾头都能想到,从头搞一个操作系统哪有那么容易,做了半年没做出来,咋给马云交差呢?于是也顾不上土不土了,拿 Android 改吧。虚拟机是现成的,那就换掉 Android 的虚拟机吧,好歹能算是自己的工作成果。但光换个虚拟机意义也不大啊,HTML5 和 WebOS 的概念比较新潮,那就再加个“云服务”的概念吧,也算是国内 HTML5 的倡导者了。HTML5 通过浏览器引擎跑,性能肯定比不上原生应用,那怎么保证操作流畅呢(特别是桌面 Launcher,天天用,要是太卡,用户就疯了) ,那还是用原生应用来实现吧于是,最后阿里云 OS 就长成现在这样了。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号