来源(Web开发者)

From: http://www.admin10000.com/document/1240.html

正确理解手机智能操作系统

来源:WEB开发者 发布时间:2012-12-11 阅读次数:802

我们都在聊Android系统手机,大家都在用苹果iPhone手机,很多人对 Windows Phone 8持观望态度....。。我们总是在谈论手机系统,我们总是把“智能手机”当成口头禅,然而当我们面对由Android、iOS、Windows Phone,以及BlackBerry OS、MeeGo、Symbian OS、webOS所组成的移动终端市场的时候,谁又能搞得清楚:到底什么叫操作系统?到底什么称得上移动智能操作系统呢?

操作系统:底层硬件与用户之间的桥梁

为了保证文章文字的可信度,笔者专门查阅了维基百科,结果如下:操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序,它位于底层硬件与用户之间,是两者沟通的桥梁。用户通过操作系统的用户界面,输入命 令;操作系统则对命令进行解释,驱动硬件设备,实现用户要求。一个标准的PC操作系统应该提供如下七项功能:

1.进程管理(Processing management)

2.内存管理(Memory management)

3.文件系统(File system)

4.网络通信(Networking)

5.安全机制(Security)

6.用户界面(User interface)

7.驱动程序(Device drivers)

知道了操作系统的定义,知晓了操作系统的功能,但是操作系统是如何构成的呢?一般来说,可以将操作系统理解为驱动程序、内核、接口库、外围共四个部分。 其中内核是操作系统最核心的基础构件,可以分为单内核、微内核、超微内核、以及外核等,除了QNX和基于Mach的UNIX等个别系统外,几乎全部采用单 内核结构,例如大部分的Unix、Linux,以及Windows(微软自称Windows NT是基于改良的微内核架构)。



操作系统简略架构(图片来自Wikipedia)

如此看来,一个常规意义的操作系统,是要包含四个构件、并且能够实现上述七项功能的计算机程序集合体。如果以这样的定义去判断所谓的手机智能操 作系统,是不是Android、webOS、MeeGo、Maemo、LiMo等等,都可以统称为Linux内核类操作系统呢?

内核:决定操作系统分类的常用标准

说了半天,其实还是停留在常规意义上的PC操作系统,如今所谓的智能手机、智能手机操作系统,又该如何理解呢?移动操作系统(Mobile Operating System,简称Mobile OS),又称为移动平台(Mobile Platform),或手持式操作系统(Handheld Operating System),是指在移动设备上运行的操作系统。

其实对于普通消费者来说,移动操作系统相比PC操作系统来说,首先因为终端的体积差异,势必会导致系统本身的缩水,表现为较为简单的功能,以及 更加精简的结构。但是决定操作系统分类的常用标准——内核,是不会变的。既然它是操作系统的一个组成部分,那么基于相同内核的开发的平台,是不是可以有个 统一叫法呢?



Linux操作系统架构(图片来自Wikipedia)

如果按照这个思路理解的话,那么Windows和Linux就是一个操作系统了,这显然是片面的。换句话说,虽然内核结构往往对操作系统的外部 特性以及应用领域有着一定程度的影响,但它并非唯一决定因素,并且随着操作系统高层特性与内核结构之间的耦合有日趋缩小的趋势来看,内核作为操作系统最内 核最基础的构件,其分类的作用也在逐渐弱化。

Android:所谓Linux内核与Java虚拟机

以Android为例,我们来深入剖析一下这个目前全球移动市场用户占有率最高的“移动智能系统”。Android是一个以Linux为基础的 半开源操作系统,一切源代码都是公开免费的。然而实际上,Android操作系统的内核只属于Linux内核的一个分支,只是具备典型的Linux周期和 功能而已。

Android操作系统中的应用程序大部分都是由Java编写的,但是Android却是以转换为Dalvik executables的文件在Dalvik虚拟机(支持已转换为.dex即Dalvik Executable格式的Java应用程序的运行)上运行的。由于Android中并不自带Java虚拟机,因此无法直接运行Java程序。不过 Android平台上提供了多个Java虚拟机供用户下载使用,安装了Java虚拟机的Android系统可以运行J2ME的程序。这里额外提一个比较特 别的阿里云,其完全基于云端的应用架构为了能够兼容apk文件包,而自行搭建了虚拟机。



截止至2012年7月2日,不同的Android操作系统版本的用户比例

(图片来自Wikipedia)

从这一部分的阐述来看,即便是基于同一个内核,也可以开发出不同的接口库(如可编程接口API等),不同的外围,进而开发出与之匹配的驱动程序。简言之,诸多同样基于Linux内核的平台,在某种意义上来说,可以称呼它们为不同的操作系统。

智能手机操作系统的正确划分与解读

总而言之,桌面操作系统与移动操作系统是两个有交集的概念,两者有共同的特性,也有各自的标志性差异。但大体上来说,移动操作系统相比桌面级操作系统来说,还是要简单一些。

如果把使用Linux内核的移动操作系统归为一类的话,包括Android、LiMo、Maemo、MeeGo、Moblin、webOS、以 及新生事物FireFox OS、阿里云等,都应该归为同一阵营。另一阵营就是非Linux内核的移动操作系统,比如BlackBerry OS、Brew MP、Palm OS、iOS、Symbian、Windows等等。



蓝色区块:应用程序、管理与服务组件(图片来自Wikipedia)

绿色区块:数据库组件

黄色区块:操作系统的执行时期组件

红色区块:系统核心与驱动组件

其实话说回来,作为普通用户的我们其实根本没必要搞清楚所谓的操作系统,到底这个东西是系统还是二次开发的用户界面,对于我们来说并不重要,好 用不贵才是王道。同时也请众多的终端厂商高抬贵手,不要为了差异化而做差异,改了半天界面漂亮了、体验却下降了,这样的二次开发,还不如干脆用原生来得聪明。

Link: http://www.asm32.net/article_details.aspx?id=6074