1.3.4 . 1. design objectives
The simulator has two main functions: developing and demonstrating the Symbian OS software.
The first use case puts more requirements on the kernel service, so we focus on when to draft requirements. At the highest level, it provides us with two key needs for simulators:
1. It must support development and Debugging Using standard tools on the host platform.
2. It should provide Symbian OS simulation on target hardware as much as possible.
These requirements seem to conflict, because the first requirement requires the use of entities in the host platform (until now, basically windows, but it does not exist in the "real" Symbian OS in the same form, for example:
1. Code-level debugging requires that the target code be stored in standard Windows executable files that can be recognized by the Windows debugger and imported through the standard Windows loader.
2. multi-threaded software debugging requires the Windows debugger to identify those threads, which means we should implement the simulated thread as a Windows Thread.
Finally, we decided to implement the eka2 simulator and use it as part of the eka2 kernel, without trying to make the Symbian OS Kernel API work on Win32 APIs. We use Windows as few as possible to share the most Symbian OS code and behavior between the simulator and real mobile phones.
In fact, looking at Figure 1.3, comparing code running on real devices and Win32 simulators, we will find a lot of commonalities. They all contain the same core kernel code, from the Symbian OS kernel to the micro kernel. At the underlying layer, the dedicated architecture, namely the microkernel layer, is simulated as a "Win32" CPU instead of an arm cpu or x86 CPU. This means it is an efficient interface for different processors. For example, simulators have almost the same threads and scheduling as real devices.
Figure 1.3 reuse the simulator code
However, the memory model is completely different on the simulator and the real phone. On the simulator, it has always been a special form of memory model. It knows the different image files to be loaded when creating processes. These are standard Win32 PE executable files, which meets the previous Code-level debugging requirements. Theoretically, this method makes it easier to simulate on Windows than on a hardware platform.
1.4 conclusion
I hope this chapter will give you an overview of the design and history of the Symbian OS kernel. Next, I should take a look at Symbian OS as a real hardware platform.
========================================================== ========================================================== =====
Note: This article is translated by bequan from Symbian press's Symbian OS internals: Real-Time Kernal programming book. Anyone who needs to repost or reference, please first contact bequan via email (a-pangu@163.com or symbianchn@gmail.com), can be reposted or referenced after obtaining permission, otherwise it is deemed as infringement. When reprinting or referencing, please indicate the above translation information in the article.