纯技术分析阿里云OS和Android之间的关系

简介: 注:转载一篇比较客观的文章。前一篇《[多图论证]阿里云OS不太可能是Android以外的东西》用的ROM是错的,是Android的刷机包,不是官方原生的云OS的ROM,所以论据是错的。

注:转载一篇比较客观的文章。


前一篇《[多图论证]阿里云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各位可以自行下载验证。解开看大目录的结构:


根目录下是一个boot.img,这就是Android系统的bootloader,也就是启动分区。另外有个system目录,这就是Android系统的system分区。进入system目录往下看:


这里和Android ROM的目录结构是一模一样的,各位可以自己找个Android ROM对比以下。核心的几个目录:app: 存放ROM预装的appbin: 系统进程的目录framwork: Android Framework目录,就是Android应用程序运行所需要的库文件的目录lib: so库文件目录,相当于Windows的system32目录咱们再进到app目录看一下:


好,看出区别来了,Android下所有的app都是以apk结尾的,前一篇帖子《[多图论证]阿里云OS不太可能是Android以外的东西》用的ROM就是Android的ROM,里面对应这张图里的文件就都是apk的。这里怎么都是lar呢?这就是阿里云OS和Android不同的地方了,因为apk是Dalvik虚拟机管理应用程序的文件格式,阿里云自己搞了个虚拟机,用lar文件来管理。lar文件和apk文件有什么不同?我们知道apk文件其实就是一个zip文件,用WinRAR可以直接打开看,那lar文件呢?用WinRAR果然也可以直接打开:


做过Android开发的人一看到这个目录结构就发现,它和apk的目录结构基本上是一模一样的,除了Android应用的classes.dex文件变成了classes.lex。那所谓的lex文件是不是就是把dex文件换了个名字呢?我们用二进制比较一下:


左边的是Android应用的dex文件,右边的是阿里云应用的lex文件。可见,文件格式已经完全不一样了。好,app的不同已经看出来了,我们再来看系统核心进程有什么不同。进入到/system/bin目录:


熟悉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天加班”,悲催啊,最后做出来的东西还被市场所抛弃。






目录
相关文章
|
3月前
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
|
23天前
|
IDE 安全 Android开发
深入探索Android与iOS操作系统的架构差异
本文旨在对比分析Android和iOS两大主流移动操作系统在架构设计上的根本差异。通过详细解读两者的系统架构、开发环境、以及安全性等方面,揭示它们各自的特点及优势,为开发者选择合适的平台提供参考。
|
1月前
|
安全 Android开发 iOS开发
深入探讨Android与iOS操作系统的差异性
本文旨在通过对比分析Android和iOS两大主流移动操作系统,揭示它们在设计理念、用户体验、安全性、应用生态及系统更新等方面的根本差异。不同于传统的功能列表式摘要,本摘要强调了两大系统背后的哲学思想及其对用户日常使用的实际影响,为读者提供了一个宏观且深入的视角来理解这两种操作系统的独特之处。
|
4月前
|
Java 开发工具 Android开发
探索Android和iOS开发的差异与挑战
在移动应用开发的广阔天地中,Android和iOS两大平台如同两座高峰,各自拥有独特的风景。本文将深入探讨这两个平台的开发差异,包括编程语言、开发工具、用户界面设计等方面,并分析开发者面临的挑战。无论你是初涉移动应用开发的新手,还是已经在这条路上走了很远的老手,这篇文章都将为你提供新的视角和思考。让我们一起走进这个充满创新与挑战的世界,发现那些隐藏在代码背后的秘密。
|
6月前
|
编解码 Android开发 iOS开发
深入探索Android与iOS开发的差异与挑战
【6月更文挑战第24天】在移动应用开发的广阔舞台上,Android和iOS两大操作系统扮演着主角。它们各自拥有独特的开发环境、工具集、用户基础及市场策略。本文将深度剖析这两个平台的开发差异,并探讨开发者面临的挑战,旨在为即将踏入或已在移动开发领域奋斗的开发者提供一份实用指南。
62 13
|
5月前
|
开发工具 Android开发 Swift
探索Android与iOS开发的差异与挑战
【7月更文挑战第20天】在移动应用开发的广阔天地中,Android和iOS两大平台如同双子星座,各自闪耀着独特的光芒。本文将深入探讨这两个平台在开发过程中的主要差异,以及开发者面临的技术挑战。我们将从开发环境、编程语言、用户界面设计、性能优化、安全性考量等多个维度展开讨论,旨在为那些即将踏入或已在这片星空下航行的开发者提供一盏明灯。
|
6月前
|
安全 Java Android开发
探索Android与iOS应用开发的核心差异
【6月更文挑战第11天】在移动设备的世界中,Android和iOS两大操作系统各占半壁江山。本文将深入探讨这两个平台在应用开发上的主要区别,包括开发环境、编程语言、用户界面设计、市场策略和安全性等方面。通过比较分析,旨在为开发者提供一份清晰的指南,帮助他们根据项目需求和目标受众选择最合适的开发路径。
46 2
|
5月前
|
安全 Java Android开发
探索Android与iOS开发环境的差异与挑战
【7月更文挑战第9天】在移动应用开发的广阔天地中,Android和iOS两大平台各自占据着半壁江山。它们在开发环境、工具链支持、用户群体及市场份额等方面展现出明显的差异,这些差异为开发者带来了不同的挑战。本文将深入分析这两大平台的开发环境,探讨它们在技术栈、生态系统、界面设计、性能优化以及安全性方面的异同,并讨论如何克服跨平台开发时所面临的困难。
|
安全 Android开发 数据安全/隐私保护
|
开发工具 Android开发 开发者
【Android 逆向】Android 逆向通用工具开发 ( Android 逆向通用工具组成部分 | 各模块间的关联 )
【Android 逆向】Android 逆向通用工具开发 ( Android 逆向通用工具组成部分 | 各模块间的关联 )
130 0
【Android 逆向】Android 逆向通用工具开发 ( Android 逆向通用工具组成部分 | 各模块间的关联 )
下一篇
DataWorks