基金项目:国家“863”计划项目(2002AA1Z2306);电子信息产业发展基金资助项目(XDJZ-0412-03)
伴随3G无线通信技术的快速发展,人们对移动通信终端的性能也提出了更高的要求。手机作为单纯的语音通信工具已不能满足消费者的需求,融合无线通信技术和掌上电脑功能的智能手机将是发展的趋势,而作为软件核心的操作系统将直接关系到智能手机的整体性能[1—3]。目前,中国厂商在研制生产智能手机时,都基于国外厂商开发的嵌入式实时操作系统(如Windows CE、Symbian OS、Palm OS等),虽然减少了开发投入,加快了研发速度,但很难对系统进行整体性能优化,也无法形成自己在智能手机产业中的自主知识产权。
为了能完全掌握智能手机的关键技术,提高中国在移动通信终端市场中的核心竞争力,中兴通讯股份有限公司自主设计并实现了智能手机操作系统——SPOS。SPOS基于单内核体系结构,其多任务实时内核提供了对主流手机硬件平台和资源的抽象,体现了手机行业特征,具有高效的动态电源管理、基于优先级的抢占式调度、快速启动、丰富的驱动程序以及良好的稳定性与操作性等特点。为了更好地支持上层通信协议和应用软件的开发,SPOS还提供了无线通信接口和应用程序框架。
1 系统特点
无线通信与移动计算的融合早已被确定为移动通信业的发展趋势,这种趋势对移动终端的技术含量提出了更高的要求。随着手机功能的日益强大、无线因特网的引入以及操作系统的智能化,业界形象地把下一代手机称之为“智能手机”。智能手机除了具备手机的通话功能外,还具备了个人数字助理(PDA)的大部分功能,如个人信息管理、基于无线数据通信的浏览器和电子邮件,以及丰富的增值业务。从概念上看,智能手机是指采用开放式操作系统、能承载大量的第三方应用、进行复杂信息处理的手机[4]。具备这个特征的手机对其操作系统有很高的要求,其特点主要有以下几个方面:
(1)局限性与应用性
智能手机的电源能力有限,移动终端主要依靠蓄电池供电,容量有限。操作系统应具备优良的电源管理能力,以保证在尽量长的时间内正常工作。
(2)高可靠性
可靠性是所有智能手机必须考虑的问题。虽然操作系统内核及其特权代码只应占用很小的空间,但是好的操作系统有助于开发出性能稳定、运行可靠的应用程序。
(3)多任务处理、实时功能和支持多种通信协议
无线接入方式要求智能手机操作系统支持多任务处理、通信中的实时功能和多种通信协议。同时,为帮助用户顺利地进行转换和支持即将推出的标准,操作系统必须将网络协议栈提取出来,确保无论采用哪种协议栈,应用程序的接口都保持一致。
(4)环境自适应
保证在动态移动环境下系统交互的服务质量(QoS)是智能手机操作系统重要的研究方向。系统自适应策略是一种折衷策略,是对应用完全透明的自适应。环境自适应可以保证已有应用的兼容性,应用开发不必过多考虑移动环境的特殊性。
(5)开放式平台
智能手机操作系统必须对第三方用户开放,为应用软件开发者提供强大的编程环境,使开发者方便快速地通过应用程序框架进行手机应用软件的开发。
2 总体结构
SPOS基于模块化分层体系结构,为上层应用提供可扩展的开放架构。图1为SPOS智能手机操作系统框架图。
SPOS自下而上可分为适合手机特征的操作系统内核、支撑中间件和应用程序框架3个层次。操作系统内核是系统的基础部分,实现对手机硬件平台的抽象,提供进程调度、文件系统、内存管理、进程间通信等基本功能。除此之外,内核还应实现手机设备相关技术特征,如本地执行(XIP: Execute In Place)、动态能耗管理(DPM)、快速启动等。支撑中间件层由一组构件组成,为应用程序提供无线通信、图形、多媒体等方面的核心支撑。应用程序框架通过服务和库例程方式实现对应用程序和图形控件的管理,提供统一的应用开发和运行环境,使得手机本身和第三方开发的应用程序都可以在该环境下无缝运行。工具集是一组基于手机操作系统平台开发应用时所需要的工具软件的集合,以方便手机设备和第三方应用的开发[5]。
3 内核设计
SPOS内核不仅提供了实时进程调度、中断处理等这些操作系统内核基本的功能,还提供了面向手机设备特有的功能,如动态电源管理、快速启动等。通过对通用内核的优化和功能增强,满足手机应用的需求。
3.1 实时进程调度
进程是操作系统的核心,操作系统的存在归根结底就是为了提供一个运行程序的空间。SPOS是一个多处理操作系统,可以同时存在多个进程,SPOS支持两种进程调度算法:基于优先级的抢先式调度算法和轮转调度算法。
使用基于优先级的抢先式调度时,每个进程都有一个优先级,内核把CPU分配给处于就绪状态的优先级最高的任务。当系统中同时存在多个相同的最高优先级的进程时,进程调度有两种选择:在缺省状态下,当其中某个进程运行时,如果其不主动让出CPU,那么这个进程就会一直运行下去,这会导致其他进程没有机会执行;另一种选择是在这些相同优先级的进程之间进行轮转调度,利用时间片来保证相同优先级进程得到相同的处理时间。
3.2 动态电源管理
动态电源管理是通过在操作系统层次对系统运行状态的调节,在保证智能手机功能的前提下,根据应用程序对CPU、外设的使用需求,动态地调整CPU核心电压、运行频率,最大限度的减小能源消耗,延长手机的使用时间。图2为SPOS的动态电源管理模型。
动态电源管理的底层实现驻留在SPOS内核中,并对操作系统的一些关键部分进行扩展,电源管理机制则来自于系统外部。该机制通过两种方式与DPM交互:预先定义好的策略集合和对策略进行管理的策略管理器。
策略为赋予了名称的数据结构,为了精确地控制动态系统的状态,需要规定元件状态和设备状态的转换,以确保与总体电源管理机制相一致的可靠操作。策略安装在系统内核中,结构为一个抽象对象的层次结构。将操作状态和操作点按合理的方式映射起来便形成了一个DPM策略。策略管理器是一个应用程序。它的任务是根据系统的运行状况,在预先定义好的一组策略中设置一个恰当的策略为系统的当前策略。
在任何给定的时间点,系统都运行在一个特定的操作点下,该操作点由包括内核CPU电压、CPU和总线频率以及外围设备状态的参数来描述。DPM可以定义为:在程序执行和事件发生过程时,把系统从一个操作点转移到另一个操作点的一系列规则和程序。操作状态比操作点的范围大,主要指CPU的几种工作模式:正常(Normal)、待命(Standby)、空闲(Idle)、睡眠(Sleep)等。可以给不同的任务指定不同的任务状态,以区分对性能/能耗的不同要求,不同的任务状态形成不同的操作状态。而在每个操作状态下可以有多个操作点,同一操作状态下的多个操作点构成一个操作点类。策略将系统中的每个操作状态映射到一个特定的操作点。DPM可以通过调整这种映射关系,来达到系统中电源消耗与性能的最优化组合。
动态电源管理模块对上层应用程序是透明的,不影响应用程序对系统的调用。这样就可以利用已有的大量的免费资源,提供了对现有应用的兼容性。电源管理规则可以根据具体的系统和应用进行配置,通过生成管理规则库和DPM起作用,也可以通过策略管理器软件直接对系统设置,从而提供最大的灵活性。
3.3 系统快速启动
手机用户总是希望在按下电源开关同时能尽快看到系统就绪。长时间的启动对用户来说是难以忍受,一般认为10 s是手机系统就绪的时间上限。
操作系统启动过程大体可以划分为引导装入、内核装载、内核初始化、用户空间初始化几个阶段。嵌入式系统一般没有BIOS自检过程。从系统加电到引导装入完成一般只要几个毫秒,可以不作考虑,用户空间初始化耗时与所需系统服务有关,不能给出定量的指标。内核装载和初始化阶段的流程确定是操作系统快速启动的关键。SPOS主要从以下几个关键点对内核进行设计:
(1)内核装载阶段
SPOS采用XIP技术,XIP是一种能够直接在闪速存储器中执行代码而无须装载到RAM中执行的机制。这样减少了内核从闪速存储器拷贝到RAM的时间,并采用非压缩映像减少了内核自解压的时间。由于闪速存储器访问速度低于RAM,采用XIP技术的同时,根据硬件环境对闪速存储器和RAM使用量进行平衡。
(2)内核初始化阶段
操作系统内核通过循环进行时间基准测量以适应不同的CPU。SPOS在硬件选定后,将已经测量得到的基准值写入系统,省掉了循环时间。在内存大小已确定不变的情况下,SPOS将页表预先设定,节省内核构建页表的时间。对于慢速启动的设备驱动,SPOS考虑将其作为可装载模块,并延迟其初始化。
(3)用户空间初始化阶段
SPOS对操作系统启动应用服务进行选择,对于关键服务如电话考虑尽早启动,对于耗时的服务考虑延迟启动。
4 无线应用接口
SPOS中的无线应用接口屏蔽了底层无线通信处理、命令控制等具体的实现,提供给用户统一的应用编程接口(API)。用户不必关心无线通信部分采用何种结构和协议,只需通过统一的API函数就可以实现对无线通信功能的访问。可以实现对GSM、GPRS、WCDMA、CDMA2000等无线协议的支持[6]。无线应用接口模块采用客户端/服务器(C/S)工作方式,如图3所示。
无线应用接口分为3个层次,即应用接口层、电话业务服务层和通信处理层。应用接口提供一组API供应用程序调用。应用程序通过消息方式与电话业务服务器进行通信。电话通道(Phone Line)、电话本、短消息业务(SMS)、呼叫是无线接口提供给用户使用的标准API模块,分别针对电话呼叫、SIM卡访问、短消息接收和发送。电话业务服务器对上层应用提供统一并行的服务,服务器采用通信协议如AT命令与无线通信部分(双CPU结构的通信部分)进行交互。一方面接受应用的请求,转换成相应的控制命令,发送给无线通信部分进行进一步的处理;另一方面接受从无线通信部分传入的通信和控制命令,进行解析后通过标准的接口通知应用程序。通信处理层负责对传输通信协议的设备进行管理,这样电话业务服务器就可以通过串口设备和无线通信部分进行交互,当采用其他设备时,只需重新生成一个通信处理对象来对设备进行管理,使得平台具有很好的可扩展性。通信协议传输设备可以是物理设备如物理串口,也可以是虚拟设备,如虚拟串口等。
5 应用程序框架
应用程序框架包括应用服务器和应用公共库,其功能主要是提供了一个统一的应用开发框架,基于该框架,用户可以快速地开发应用软件。应用程序框架如图4所示。
应用程序框架模块包括应用服务器和应用公共库,应用服务器是一个实际的应用进程,实现的功能包含有图形模块中图形服务器功能,如图形管理、事件处理等,同时负责应用程序管理,快速加载、同步、应用下载和安装管理、桌面设置、插件管理等面向应用环境的功能。除此之外,应用服务器还为应用提供一些公共的系统服务如声音系统服务、红外服务、传输服务、应用包安装服务等。
应用公共库提供了一些面向手机应用的公共支撑库,如个人信息管理(PIM)库、手机应用界面库、手机应用工具库。个人信息管理库提供了对个人信息管理的统一机制,如名片夹、电话本、消息、日程安排和任务等信息。手机应用界面库提供了一个公用的针对于手机应用的控件集,如模拟时钟控件、信息指示控件等。用户也可以根据不同的应用制作第三方的应用库对公共库进行扩展以满足应用运行的需要。
6 结束语
SPOS体现了智能手机的特点和先进技术,同时为上层应用软件提供了良好的开发环境。目前,基于SPOS的智能手机原型已经设计完成,并达到较高的性能,完全可以满足当前智能手机的需求。当然,SPOS还存在着一些不足,需要进一步优化,如安全性、软件尺寸等,但是SPOS的整体构架和设计思想在整个手机产业中都具有较高的推广和实用价值。
7 参考文献
[1] Imielinski T, Korth H F. Mobile Computing [M]. Boston (MA,USA): Kluwer Academic Publishers, 1996.
[2] Satyanarayanan M. Fundamental Challenges in Mobile Computing [A]. Proceedings of 15th ACM Symposium on Principles of Distributed Computing [C]. Philadelphia (PA, USA),1996. New York (NY, USA):ACM Press, 1997.1—7.
[3] 蔡俊良, 孙晓民. 一种基于Linux的车用实时操作系统 [J]. 清华大学学报(自然科学版), 2004,44(1). 78—80.
[4] Badrinath B R, Imielingski T. Mobile Wireless Computing: Challenges in Data Management [J]. Communications of the ACM, 1994,37(10): 12—28.
[5] Epplin J. Linux as an Embedded Operating System [DB/OL].Heisterbergallee (Germany):SSV Embedded Systems. www.dilnetpc.com/emblinx3e,2000.
[6] Narayanan D. Operating System Support for Mobile Interactive Application [D]. Pittsburgh (PA, USA): Carnegie Mellon University, 2002.
收稿日期:2005-03-28
[摘要] 文章介绍了一种由中兴通讯自主设计的智能手机操作系统——SPOS。该系统基于单内核体系结构,其多任务实时内核提供对主流手机硬件平台和资源的支持,具有高效的动态电源管理、基于优先级的抢占式调度、快速启动、丰富的驱动程序以及良好的稳定性与操作性。为了更好地支持上层通信协议和应用软件的开发,该系统还提供了无线通信接口和应用程序框架。
[关键词] 智能手机;实时操作系统;动态电源管理;应用程序框架
[Abstract] This paper presents an embedded real-time hand phone operating system named SPOS (Smart Phone Operating System), developed by ZTE Corporation. This system is based on a single kernel architecture supporting real-time multitask. It has remarkable advantages: supporting all the mainstream hand phone hardware platforms, highly efficient dynamic power management, priority-based preemptive scheduling, fast startup, diversified drivers, and excellent system stability and operation ability. For the development of upper layer communication protocols and application software, this system also provides wireless communication interfaces and application program framework.
[Keywords] smart phone; RTOS; dynamic power management; application program framework