Symbian OS高级开发内核篇之EKA2

 

EKA2(Kernel Architecture 2)是Symbian OS中最主要的硬件及内核服务模块,
它管理着手机的CPU、内存资源,并为设备驱动提供一个架构,使其对相应的硬件资源进行管理。
Symbian OS的内核是分层结构,这使得其可以移植到不同的硬件平台,
移植时必须要实现ASSP/Variant,这一层为内核提供最基本的专用硬件服务。
内核还允许创建附加层,称为个性化,用来模拟传统的实时操作系统,从而使得这些操作系统的程序可以在Symbian OS上运行。
 

EKA2包括以下几部分:

Nanokernel:
主要用来处理最基本的线程调度、同步及时钟功能。

Symbian OS kernel:
利用Nanokernel提供的服务给Symbian OS提供系统要求的核心功能,
包括线程、进程、内存块、进程内通信等操作系统对象。
 
Memory model:
为每个进程提供地址空间以及进程内的数据传输、内存分配及映射。
它封装了对硬件内存管理单元(MMU)的访问,
从而使得Nanokernel和Symbian OS kernel不依赖MMU。
 
Variant DLL:
提供了Kernel所需的硬件相关服务,例如时钟脉冲中断和实时时钟访问。
系统基于ASSP(application-specific standard product,专用标准产品),并有一个ASSP DLL来分担Variant Dll 的职责。
板载支持包BSP为相关硬件提供Variant库。
 
扩展及设备驱动:
用来对外设进行控制,并提供外设和Symbian OS之间的接口。
 

下图显示了这些部分在系统中的位置:


图1 内核架构关系图(源:SDL)

 

这些部分的代码实现分为硬件无关的和硬件相关的。
硬件相关的代码又分为不同的层次以助于移植。

这些层次包括独立层(Independent)、平台层(Platform)、模型层(Model)、CPU层及两个外设层ASSP和Variant。
其中独立层(Independent)提供了60%的Nanokernel和Symbian OS Kernel的基本代码;
平台层(Platform)主要是模拟器或实际设备的可执行镜像,这一层只有Memory model,
其中分为模拟器和实际设备两类;
模型层(Model)为每个进程的内存提供支持;CPU层根据OS中处理器的不同提供不同的代码,
Nanokernel、Memory model、Symbian OS Kernel在这一层都有代码,汇编代码属于这一层。

如下图所示:

图2:内核源码分层图(源:SDL)

 

从上图可以看出,Nanokernel代码实现一部分在Independent层,一部分在CPU层;
Symbian OS Kernel代码实现一部分在Independent 层,另一部分也在CPU层;
而Memory model在Platform、Model、CPU三层均有实现。
 

另外,Nanoknernel在CPU层包含大部分核心CPU架构的实现,诸如异常/中断处理、上下文切换机制等。
还包括一些概念上是独立层功能的东西,但处于性能考虑在这一层以汇编实现,如延迟调用(DFC)处理和基于ARM的时钟处理。
Memory model在CPU层的实现是为CPU专用而实现。
 
Variant提供了NanoKernel和Symbian OS Kernel所期望的控制专用硬件实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值