我们把它上面的四层叫做“内核层”,下面两层叫做“串行层”。后面的这些形式是支持手机厂商在把Symbian OS移植到新硬件时所实现的集合包的平台的主要部分。它也组成了引导程序、设备驱动和扩展。

独立层组成了大约60%的内核源代码。它提供了微内核和Symbian OS内核的基本组成成员,即——微线程、线程、进程、数据块、C-S等等。这些基类被低层次的类继承,从而为Symbian OS运行于其上的特定硬件提供实现。
平台层关心可执行映像——Symbian OS是运行在模拟器上还是在真实的硬件上,因此,它也有另一个名字,即映像层。只有内存模型在这个层次上有代码,它提供了两个实现,即用于硬件设备的EPOC和用于模拟器的WIN32。
模型层实现了每进程驻留内存的所有组织,而且,也只有内存模型在这个层次上由代码。内存模型提供了四种不同的实现——Moving,Multiple,Direct,Emulator。第七章内存模型,将深入讨论这四个问题。
CPU层为Symbian OS所运行处理器准备了不同的代码;这部分属于汇编代码。微内核、内存模型和Symbian OS内核都在这个层上有代码。在写代码的时候,Symbian提供三种可能的CPU层——X86(到PC硬件的端口),ARM(手机)和Win32(用于模拟器)。
内存模型的CPU层有专用CPU和MMU的代码以及专用的内存模型代码。微内核的CPU层包含了核心CPU结构的大部分知识——异常和中断怎样被捕获,哪一个寄存器需要被保存到上下文转换环境里等等。Symbian OS内核的CPU层上的一部分代码是编成汇编代码以改善性能的独立层功能。
变量层提供了微内核和Symbian OS内核所期望的控制函数的实现。就像上面提到的,手机厂商可以在往新硬件移植的时候选择把该层分离到ASSP或者一个变量。
该变量层也提供硬件抽象层函数的专用硬件实现,虽然这些可能在内核或扩展中被同等地实现。
在第五章内核服务,我将解释每层暴露给其他层的服务。