Symbian 简介

chem

普通会员
2004-04-30
322
0
0
前言:Symbian是由Ericsson、Panasonic、NOKIA、Simens AG、Sony Ericsson等公司所共同开发并拥用的专为手机硬件而设计的作业系统,其包含了函式库(libraries)、用户界面(user interface)架构和共用工具(common tools)的参考实现(reference implementation),Symbian作业系统的前身是Psion的EPOC作业系统,当初仅设计为ARM架构处理器独占使用。

而Symbian在2004年7月股权变动后,Nokia的持股比例从32.2%上升到47.9%,维持其第一大股东的地位。为了力拱Symbian, Nokia也发动产业链上的内容开发商来说服手机厂商加强采用Series 60平台,除了联合各移动通信终端设备厂商共同支持Symbian作业系统外,还将该移动通信终端设备平台授权给Samsung、Siemens和 Panasonic,以统一各家移动通信终端设备平台来加强开放性以及降低软件开发成本。

Symbian的成立理念除了有加强开放性以及降低软件开发成本等考量以外,将微软这只软件巨兽给挡在移动应用门外是另外一个重点,由于几大移动电话业者早已看出微软对于移动市场也有着极大的兴趣,迟早会将手伸进来搅和,因此藉由成立Symbian,成为各大手机厂商的通用系统核心,应用程式也可以极大的比例互通,藉以形成规模,造成进入门槛。只不过微软巨兽的称号可不是简单就能得到的,在推出Windows mobile移动作业系统家族之后,随着架构与性能的逐步改善,已经在移动装置逐渐闯出一片天,想要完全阻挡微软的入侵,似乎已经是一件不可能的事。

Symbian的设计特性

以Symbian作业系统为基础的智能型手机,在使用者介面上的设计则是以套件形式提供厂商多种不同的选择,比如说常见于Sony Ericsson手机的UIQ介面,Nokia手机的Series 60、Series 80、Series 90等,以及诸如封闭式平台如由Fujitsu、Mitsubishi、Sony Ericsson和Sharp合作开发应用于NTT DoCoMo所采用的FOMA(Freedom of Mobile Multimedia Access,世界上第一个WCDMA网路)等等。提供不同型态的手机操作方式(介面与输入方式),以及程度不等的扩展性。

而Symbian 本身也是一款支援先占式多工、多执行绪,以及具备存储器保护功能的作业系统,由于最初是专为移动装置所设计,一般行动装置(如手机)等在硬件资源上都相当有限,无法如桌上平台作业系统般,对硬件需求可以无限制的膨胀。为了要尽可能在维持系统的可操作性以及稳定性的前提之下,延长采用Symbian作业系统的移动装置的使用时间,因此它在资源控管上就进行得非常严格,除了利用各种方式来降低存储器的需求以外,程式写作是采用事件驱动的方式,当存储器中没有应用程式发出事件处理需求,中央处理器将会被关闭,藉以节省电源消耗。

在整个处理流程概念上,应用到了活动物件(Active Object)的方式,活动物件是一种多工处理的形式,其具备了协同式多工(cooperative multitasking)的特性,在架构上,当一个物件做了一个非同步服务的要求时(比如说系统要送出一个SMS信息),当要求成立之后,作业系统就会辨别出该负责该服务执行绪内的活动物件,并且唤醒负责搭载该物件的执行绪,物件本身也将会被附加一个启动排程,并且将控制权交给该物件。

在实作上,一个执行绪内将会有许多的物件,每个物件都有其各自负担的行程,但是晤见之间并不是完全独立的,而是可以互相作用,当A物件的行程与B物件有相关时(比如说传送短信与连接到网路服务的物件彼此就要互相作用),物件与物件、执行绪与执行绪之间都会有相互的请求,甚至执行绪本身也可以对该执行绪内的物件做处理请求动作。这个软体设计概念其实相当古老,早在70年代就已经被发展出来。利用这些处理规则,Symbian可以很有效率的处理所有的工作流程,并且延长电池使用时间。

虽说因为这些技术的缘故,在Symbian上设计应用程式的难度将会有所提升,但是基本上由于可采用的程式开发工具相当多,相关的官方资源与支援也相当完备,虽然基本上Symbian的原生开发语言是C++,一般来说是采用VC++、Visual Studio以及Carbide等,但是开发者也可以采用OPL、Python、Visual Basic、Simkin以及Perl等来搭配J2ME以及自行开发的JAVA来使用,具备有相当大的弹性空间。

Symbian作业系统结构

Symbian 具备有一个微核心架构,在架构内定义了包含排程系统以及存储器管理机制,不过网路与档案系统则是外加在使用者端服务,没有包含在微核心架构之内。在基本层内,包含了档案服务,可在服务内提供类似DOS外观的档案系统(每个逻辑或实体磁碟装置都拥有各自的磁碟代号,利用反斜线来当作目录的定义系统)。 Symbian支援多种不同的档案系统,通常这些档案系统被隐藏在最底层,而不会被显示出来。

Symbian具备了一个相当庞大的网路以及通信子系统,包含了三种主要服务,这三个主要的服务,分别是ETEL(EPOC telephony)、ESOCK(EPOC协定)及C32(序列通信回应机制)。这三种服务都有其Plun-in结构,举例来说,ESOCK可容许不同的「.PRT」协定模组,藉以实作多种不同种类的网路协定架构。这些相关架构也包含了诸如蓝芽、红外线以及USB等短距离有线/无线通信中。

在使用者介面上,也包含了大量的程式码,虽然使用者介面大多是,第三方厂商所维护但是所有使用者介面的基本类别与次系统都是被包含在Symbian架构之中,相关的绘图功能程式码也被包含在Symbian功能服务中,这些程式码功能包含了视窗服务、自行、点矩阵图形服务等等。

至于在应用程式结构方面,则是提供了不同的应用程式引擎,不同的应用程式都会分散到各种不同的动态连结函式库(DLL)引擎以及图形化程式中,当然,Symbian本身也提供了相当多现成的DLL给程式开发者使用。

Symbian作业系统的体系

从1998年Symbian正式出现以来,历经了十数次的改版,目前Symbian OS最新的版本为9.3版,但是提供给开发者的却不是这种单纯的OS层次程式码,转而代之的是以套件形式来推出的配套方案。目前类似的配套方案主流有Nokia公司的S60与Sony Ericsson的UIQ这两种。

Nokia为Symbian提供了4种方案,分别是S40平台、S60平台、S80平台以及CDMA方案。CDMA方案是给具备基本通话、短信、通信录管理功能手机使用,属于非常基本的类型,支援彩色萤幕,但是可扩充能力以及功能方面非常简化,是专门给最低阶产品开发应用。S40平台至专门提供用来设计具备基本功能的智能型手机系统,提供了标准的JAVE中界、FLASH应用等等,不过最高解析度设定在320*240,因此定位于中高阶产品应用,在操作介面上做了相当程度的简化。S80则是着重于个人资料辅助处理功能上,在定位上,就与Windows CE类似,以全功能完整提供各种应用程式以及网路服务,以双手操作最佳化。在开发应用程式上可使用C++或者是JAVA等弹性方案。不过以上这三种方案主要都是应用于NOKIA的产品中,几乎没有第三方厂商采用。

而S60可以说是目前最主流的智能型手机作业系统,主要是以单手操作为其人机介面概念,除了NOKIA以外,也被诸如Panasonic、SAMSUNG、Motorola等厂商所采用,使用范围相当广,此平台除了包含了完整的事务辅助处理功能以外,更包含游戏、影音等热门功能,并支援了目前流行的移动通信网路以及Wi-fi无线网路等环境使用,在产品竞争方面,可以说是最高的,虽然对于硬件厂商来说竞争非常大,但是对于软件开发商来说,只要针对S60平台开发一套软件,即可应用于不同的厂牌智能型手机中,除了市场可大幅扩张以外,相对的开发成本也可有效降低,不需要针对每个平台来去做底层架构上的更动。消费者也不必担心买了特定厂牌的S60平台手机会有软件支援度不足的状况,毕竟这些智能型移动产品在核心架构上都是属于系出同门,只有硬件设计理念有所不同而已。

S60目前已经发展到3.1版(或称为S60 3rd Edition Feature Pack 1),是基于最新的Symbian OS 9.2的基础上,而不同版本之间因为支援解析度以及使用者介面的不同,就有可能造成应用程式的不相容,比如说第三版开始使用的Symbian OS 9.1,与过去S60 2.X版所採用的Symbian OS 8架构有着明显的不同,9.1版採用了新的ARM EABI 2进位执行档模型,在应用程式管理及安全性上有不小的变更,因此旧版针对Symbian OS 8环境所开发的软件就无法沿用到S60 第三版上,最新的S60 3.1版中,则是将Symbian OS版本推进到9.2版,这个版本是在2006年第一季释出,变动部分,主要是支援了蓝芽2.0、OMA装置管理等,不过在实际产品上,採用S60 3rd Edition Feature Pack 1的N95,已经应用了不少Symbian OS 9.3的特色,包含HSDPA、802.11协定以及更多语言的支援等等。