Symbian Security Studio

About symbian software programming ,security analysis and other things about symbian.

Tuesday, October 23, 2007

Symbian OS Internals——Symbian OS模拟器 - Welcome to My Blog - CSDNBlog

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作为真实硬件的平台来看一看了。

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home