12.2.2 微内核设计

具有面向对象内在特性的Symbian操作系统的内核结构是微内核设计。内核中包括最小限度的系统功能以及数据,许多系统功能被放到了用户空间服务器端。服务器端通过获得系统对象的句柄并对这些对象进行必要的系统调用来完成各自的服务。用户空间应用程序与这些服务器端进行交互而不是采取系统调用。

典型的基于微内核的操作系统初始化引导时占用较少的内存,并且其结构也更加动态。当需要时可以启动服务器,而在启动时并不需要全部的服务器。微内核大多为可插拔结构,允许当需要时加载系统模块并插入到内核中。因此,微内核结构十分灵活:支持新功能的代码(例如,新硬件驱动程序)可以随时加载和插入。

Symbian操作系统被设计为基于微内核的操作系统。通过打开与资源服务器端的连接访问系统资源,资源服务器随后协同访问资源本身。Symbian操作系统支持对于新的实现的可插拔结构。对于系统功能的新的实现可以设计为系统对象,并动态插入到内核中。例如,可以实现新的文件系统并且在操作系统运行的同时添加到内核中。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

这种微内核的设计也带来了一些需要探讨的话题。在传统的操作系统中一个系统调用便已足够时,微内核使用消息传递。性能可能会由于对象间通信所增加的花费而受到影响。在传统操作系统中位于内核的那些功能被移到用户空间时效率可能会降低。举例来说,与可以直接访问内核数据结构的Windows内核中的进程调度相比,进程调度的多函数调用的开销降低了性能。由于在用户空间与内核空间对象中传递消息,会经常发生特权级切换,这就更降低了它的性能。最后,在传统设计方案中只用到了一个地址空间的系统调用,而这种消息传递以及优先级转换意味着至少需要用到两个地址空间来完成一个微内核服务请求。

这些性能问题使得Symbian操作系统(以及其他基于微内核的操作系统)的设计者们对于设计以及实现细节给予了极大关注。设计的重点是最小化的、紧凑的集中服务。