Symbian OS Internals——EKA2的历史

来源:百度文库 编辑:神马文学网 时间:2024/04/28 00:17:57
在软件工程中,内核设计是最令人激动的一种事情。在80年代的8位和16位服务于Psion和PDA的内核设计后,EKA2是对32位Symbian内核结构的重构。
Psion’s Organiser发行于1984年,它基于8位处理器,并且仅支持内置的应用程序。对于这样的设备而言,必需的内核用于系统引导和系统设备管理,而且在8位内核和中间件或应用程序间,也没有清晰的区别。
1986年,Psion发行了8位的提供基于交互式OPL语言扩展的Organiser II。这时候,提供足够高效的内存管理对OS就变得重要起来,比如支持交互式语言。
主要的变革开始于90年代,Psion发行了一系列的新版本,包括Laptop,Clamshell Organizer和Industrial Organizer,它们都是基于单操作系统的。16位的EPOC内核被绑定到Intel 8086结构,并且支持扩展,编写这些应用程序不仅可以使用OPL语言,而且也可以使用EPOC OS上的原生C API——它开放了OS以支持任何第三方应用的编写。
这种开放取代了对内核的更多要求,比如,它形成了文档并向第三方开发人员提供。假如有些应用写得很糟糕:内核将必须提供内存保护,以使它们产生的Bug不影响其他的程序,更要保证它们不对整个OS产生影响。开放性减少了这种糟糕情况的发生。有限的可用设备必须高效地在资源受到严格管理的系统上运转,所有的这些都是基于8086的分段式内存模型,同时还要面对PC程序员不太珍惜内存的习惯。
因此,16位的EPOC内核必须处理今天的EKA2仍然也要处理的大量请求,因为它的配置介于嵌入式实时系统和传统的比如Windows桌面系统之间。它类似于嵌入式RTOS,但比RTOS更大,因为它支持丰富的功能并且对第三方应用开放。同时,它类似于桌面型系统(开放的、也使用8086结构),但它又更小,因为它可用的内存和电源等资源比桌面型系统更少。
对于EKA2的诞生,两个更深远的变革是必需的。
1997年发布于的Psion’s Series5 PDA中的EPOC32,形成于1994年。它的内核采用EKA1的配置,继承了16位EPOC内核的优良品质,同时还修正了它的几个重要问题。首先,EKA1完全是32位的,由于采用8086的分段内存结构,EPOC32可以尽量避免EPOC中因为过于笨重而产生的崩溃。其次,EKA1内核从最开始的设计就一直考虑到了硬件的种类多样化及发展,这使它与被绑定到80186芯片组上的16位EPOC不同。基于这些原则,使得很多的实现细节发生了改变,但EKA1与16位的EPOC还是有本质上的相似性。
EKA1几乎在EPOC32发布的相同时期诞生。
显然,EKA1并不是故事的终结。Symbian OS对事件驱动编程的支持相当彻底,但它不提供实时的保证。它的内核设计得很强大——以支持处理个人数据的PDA产品。当Symbian OS开始专注于处理移动电话的需求时,提供实时处理的支持就显得很重要了。
还有其他的一些因素在影响着EKA2。在EKA1的环境下进行实时硬件移植的经验表明,EKA1模块的边界不太好确定,这就给移植工作带来了困难。有些端口,只需要很小的一点驱动上的改变,但在实现上,却要求通过内核的重构来实现。
所以,新的内核结构在设计之初就区别于最初的32位EPOC内核,它被命名为EKA2(EPOC Kernel Architecture 2),这个命名暗示了EKA1是它的先驱。
EKA2的设想形成于1998年,而且渐渐地被推向市场。到2003年,Symbian主要的授权用户和半导体供应商都承诺在未来的产品中采用EKA2。