2015年11月17日星期二

封面故事在 Flipboard 上了!


科普向丨为何 YunOS 有别于 Android?你需要知道的全都在这里。

极客公园编辑部最近新来了一台 YunOS 的设备,大家都纷纷议论:「这货也可以安装 Android 应用,跑得也很顺畅,可为啥就是单独的一套 YunOS?」

要回答这个问题,必须要从 Android 这个系统层面说起。


从底层看,与 Android 的区别


爱搞机的极客们都知道,Android 的核心包括以下几个部分:

1. bootloader:用来启动操作系统

2. kernel: 系统内核

3. 核心进程,就是 /system/bin 下面那堆东西

4. so 库: 系统运行基础,就是 /system/lib 下面那堆东西

5. Android 虚拟机,所有的上层应用都是靠虚拟机来运行的

6. Android Framework: 所有的上层应用都是通过调用 Framework 来实现功能的,就是 /system/framework 下面那堆东西

7. 上层应用,比如说桌面 Launcher, 拨号,短信,通讯录之类,就是/system/app 下面那堆东西

其中的 kernel 部分,Android 采用的是 Linux 内核,而这个内核是完全开源的,这意味着任何操作系统都可以采用。事实上,市面上大部分开源的操作系统都是采用的这个内核,比较典型的例子有 Firefox OS,Ubuntu Touch 等等,当然 YunOS 也不例外。

一款移动操作系统,除了系统核心之外,最为关键的部分便是其虚拟机——Android 系统的应用都是在虚拟机环境下完成的。而 YunOS 在虚拟机上与 Android 则完全采用的不是同一套。这是 Android 系统与 YunOS 的核心区别,Android 采用的是 Dalvik 环境,升级到了 Android 5.0 系统的则是默认开启 Android RunTime 模式。关于详细的「如何验证 YunOS 是否真的采用了另一套虚拟机?」这个详细过程,点击这里

而相对应,其他的手机厂商,比如 MIUI、Emotion UI 甚至是 Smartisan OS 这些依然采用的是 Android 底层的虚拟机,他们只是修改了 Android 系统的外观和一些交互方式。所以 YunOS 在这一方面上还是与这些厂商有所区别的。


为何能运行 Android 应用?


Android 系统在开发之初,其虚拟机是建立在 JAVA 语言之上的,所以原则上只需要当前的设备能够架设 JAVA 环境,并且能够启动 Dalvik 虚拟机,那么这台设备就能运行 Android 应用程序。有了这个作为前提条件,那么 YunOS 能够运行 Android 应用是不是很好理解了?

其实 YunOS 并不是第一个这么干的。最早之前,BlackBerry 10 也可以运行 Android 应用。黑莓经历的这个过程相对来说,更为曲折。不仅要搭建相应的环境,还需要通过特定的软件如果 iPad 安装上了 Dalvik,也可以运行 Android 程序。不信?可以看下这条古老的视频:

所以 YunOS 虽然自己编写了一套独立的虚拟机,并通过这个虚拟机运行系统层级的一些应用,但无奈掣肘于 Android 丰富的应用资源,作为后发系统,对此也无能无力。同样是基于 Linux 内核,三星的 Tizen 面对的也是这种情况。因此到后来,只能通过兼容 Android 系统应用,保证在 YunOS 在生态上不是那么的贫瘠。

由于 YunOS 并没有像黑莓一样有一定量的用户基础,这就给予了他们一个错觉:「YunOS 可以运行 Android 应用,那它就与国产其他厂商一样,只不过是套了层皮的 Android 系统咯?」然而,在这方面上,YunOS 与国产第三方定制的 ROM 性质还真是不一样。至少从系统层级的虚拟机上面来说,YunOS 还是有别于 Android 系统的。


关于 YunOS 独立性,各执一词


作为掌握着 Android 系统的 Google 却并不认为 YunOS 一个独立的操作系统:

Android 是一个开源的操作系统,这是需要大家一同来搭建这一个开放的「生态」,而不是发布「不兼容的操作系统」。

而阿里巴巴负责国际事务的副总裁 John Spelich 在一份声明中称:


阿里云 OS 并不是 Android 生态系统的一部分,当然不必与 Android 兼容。

而作为 Google 副总裁、Android 系统创始人 Andy Rubin 则如此回应道:

我们同意 YunOS 不是Android 生态的一部分,因此无需保持一致性,但 YunOS 采用了Android的运行环境、框架和工具……所以阿里云基于 Android 平台这一点,是没有什么争议的。如果你们不想保持一致性,那么就别指望从 OHA(开放手机联盟)中获得任何帮助。

编者认为,当我们谈及手机操作系统的时候,首先想到的一定是 Android 而不是 YunOS。YunOS 在内核上面采用的是开源的 Linux,系统框架上确实有 Android 的影子,但我们不可否认的是,YunOS 采用的虚拟机却有别于 Android,因此我们并不能武断将 YunOS 直接归为Android 系统的子集中去。     



Le Paillon Rose depuis 1982

没有评论:

发表评论