首 页 | 新 闻 | Symbian | Android| Windows Mobile | J2ME | 下载中心 | 游戏策划招聘与求职 | 购书指南 | 视频教程
您现在的位置: 开发视界 >> Symbian >> Symbian开发 >> 正文
Symbian OS Internals——Symbian OS模拟器
作者:Beginnin…    文章来源:Beginning    更新时间:2007-7-3 10:37:24
1.3.4.1 设计目标

模拟器有两个主要的用处——开发Symbian OS软件和演示这个软件。

第一个用例对内核服务提出了更多的要求,所以我们专注于什么时候草拟出需求。在最高级别上,它给我们提供模拟器的两个关键需求:

1、它需支持在主机平台上使用标准工具进行开发和调试。

2、它应当尽可能真实地提供Symbian OS在目标硬件上的模拟。

这些需求看上去是有冲突的,因为第一个需求要求使用主机平台(直到现在,基本上还是Windows)里的实体,但它并不以同样的形式存在于“真实的”Symbian OS上,比如:

1、代码级别的调试要求目标代码存储于标准Windows可执行文件里,这些文件可被Windows调试器识别的,而且通过标准Windows装载器导入。

2、调试多线程软件要求Windows调试器识别那些线程,这意味着我们应当把被模拟的线程实现为Windows线程。

最后,我们决定了实现EKA2模拟器,并把它作为EKA2内核的一部分,而没有试图让Symbian OS内核API工作于Win32 APIs之上。我们尽可能少地使用了Windows,以在模拟器和真实的手机之间共享最多的Symbian OS代码和行为。

实际上,看看图1.3,比较运行于真实设备和Win32模拟器上的代码,会发现大量的共同之处。它们都包含同样的核心内核代码,从Symbian OS内核到微内核。在更底层,专用体系结构,即微内核层,我们模拟成“Win32 CPU,而不是ARM CPU或者X86 CPU。这意味着对于不同的处理器来说是一个高效的接口。比如,模拟器有与真实设备上几乎同样的线程和调度。

 

1.3 重用模拟器代码

 

不过,内存模型在模拟器和真实手机上就完全不同了。在模拟器上,它一直是内存模型的特殊形式,它知道在创建进程时要载入的不同的映像文件。这些都是标准的Win32 PE 可执行文件,这就满足了前面的代码级别调试的需求。理论上,这个方法使得我们在Windows上实现模拟比在硬件平台上更简单。

1.4 总结

我希望这章已经给了你Symbian OS内核在设计和历史方面的概览。下面,我应当把Symbian OS作为真实硬件的平台来看一看了。

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

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

相关文章:
小试Python for Symbian
在Symbian程序中使用汇编代码
Symbian OS Internals——设计目标
S60系列用户界面显示器规范
Symbian系统中DLL的冻结
Symbian应用程序中如何备份和载入
S60程序中,如何在指示器面板中绘制图标
移动代码签名 (ACS) 常见问题问答
 

站点地图 | 加入收藏 | 联系站长 | 广告服务 |
QQ:280529124  Tel:0592-8271361 辽ICP备05021703号