Symbian OS Internals——内存模型、个性层、扩展和变量

1.3.2 .3 内存模型

EKA2里,我们把关于ASIC内存结构的设想限定在一个模块中,就是内存模型。从而内存管理模型封装了重要的MMU(存储器管理单元)差异,比如一个缓存是被虚拟标记还是被实际标记,也就是:到底存不存在MMU。在EKA1里,关于内存和MMU的设想遍布于整个操作系统,这样,使得生产一个基于没有MMUASIC的手机比较困难。但EKA2的到来使得它变得容易得多,既然内存模型允许以不同的形式访问内存,那么改变这个结果就相应地容易了。

Symbian目前提供四种不同的内存模型:

1、直接内存模型(没有MMU)

2、移动内存模型(类似于EKA1)

3、多重内存模型(用于实际标记缓存的ASIC,比如IntelX86和以后的ARM内核)

4、模拟器内存模型(用于运行在Windows上的Symbian OS模拟器)

内存模型提供低级别(low-level)内存管理服务,比如每进程寻址空间和内存映射。它在调度器有要求的时候执行上下文转换并参与进程内数据传输。

内存模型也帮助创建进程,作为由文件服务器装载的可执行映射的实例,并且它也参与促成进程内数据传输。

如果有兴趣在内存模型上有更多发现,请查看第七章:内存模型。

 

1.3.2 .4 个性层

我们设计微内核以提供刚好够用的功能集来运行GSM信号栈。之后的想法是允许手机厂商在单处理器上即能运行他们自己的信号栈,也能运行他们的个人信息管理(PIM)软件,相比双处理器方案而言可以节省可观的费用。

大部分手机厂商为现有的诸如Nucleus或者μITRONRTOS写了自己的信号栈。这些信号栈意味着时间和金钱上相当大的投资,而手机厂商要把它们移植到微内核上也将产生很大的耗时——这里还没有考虑肯定会增加的其它一些缺陷。

因此,我们设计的微内核允许第三方编写个性层。个性层是跨越微内核为客户端软件提供RTOS API的一个模拟层。个性层将把RTOS调用翻译成微内核调用,以取得同样的结果。在这种方式下,我们允许为这样的RTOS写的源代码运行在Symbian OS之下,这些代码可以有一些小的改动或者没有改动。

要获得关于个性层的更多细节描述,以及微内核对它的支持,请查阅第十七章:实时。

 

1.3.2 .5 ASSP/可变扩展

移动设备上的CPU和大部分硬件外设往往实现在一个通常称为ASSP (Application-Specific Standard Product)的半导体设备集成电路上。为了减少材料上的花费和电话的大小,现在比较流行的做法是往ASSP上增加不断增多的组件,这将在同一个硅包上包括堆叠RAMFlash组件,或者把组件合并到硅层里去。这些组件的例子有:一个用于声频/视频处理的DSP(Digital signal processor),专用的图形处理器和运行GSM或者CDMA通信栈的电话基带处理器。

我们提及ASSP之外的任何硬件组件时,都把它们当作可变的特定组件。代表性的组件有:FlashRAM存储设备、显示设备、基带和蓝牙单元。它们通常使用半导体供应商指定的总线结构和互联接口与处理器连接,并且互连,也可以通过更标准的通信线,比如USB和串行UARTASSP也有意MMC卡检测和触摸屏笔点击中断线等定制功能提供可配置的GPIO(general purpose I/O)线。

因此,在Symbian OS里,ASSP/可变扩展提供了内核所需要的依赖硬件的服务,比如计时器滴答中断和实时时钟访问。在EKA1时期,我们把ASSP集成到内核里,而且在下节中描述的独立的可变层是托管的。这使得往ASSP进行新的移植时不需要重新编译内核,因此,在EKA2中我们已经把ASSP从内核中完全地分离出去。当然,这意味着如果你要移植EKA2,将不必在每次调整硬件的时候重新编译内核。

 

1.3.2 .6 变量

EKA2里,我们不强制你如同我们在EKA1中所做的的那样必须在ASSP和变量间进行区分。如果你愿意,你可以提供一个单独的变量DLL。然而,如果你把OS移植到一系列相似的ASIC,你可能选择分离,把实现一系列范性ASIC的代码放到ASSP扩展中,而实现特殊ASIC的代码放到变量DLL里。比如,在Symbian里,Intel SA1100 ASSP有两个变量,即BrutusAssabet

 

==============================================================

说明: 本文由Bequan翻译自Symbian Press的Symbian OS Internals: Real-time Kernal Programming一书。任何人需要转载或引用,请先通过Email(a-pangu@163.comsymbianchn@gmail.com)与Bequan联系,在获得许可后方可转载或引用,否则视为侵权行为。转载或引用时,请在文章中注明上述翻译信息。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值