OKL4的产品也分很多种,Motorola Evoke QA4使用的是OKL4 Microvisor,这是专门为移动嵌入系统开发的一个Virtualization Hypervisor,侧重于较小的体积以及对移动平台更好的支持。和其他OKL产品一样,它是基于Microkernel架构(微内核)的。
采用微内核架构主要是为了安全性考虑——所谓的微内核就是和单内核相对,思想就是尽量保持内核要小。微内核只实现基本的如进程调度、内存管理这样的功能,微内核架构通常只有一个很小的内核运行于特权模式(或者说,内核模式),其它的服务等都运行于非特权模式(用户模式)。只将需要的部件(Microvisor本身)运行于特权模式有很多好处,它可以降低TCB(Trusted Computing Base,可信任计算基础)的维护量,不可信任的代码放在非特权模式运行,即使受到攻击,也不会引起系统级别的损坏。进一步地,OKL4 Microvisor将设备驱动也放在了非特权(用户)模式,不合理设计的驱动程序是传统系统崩溃的一个主要原因之一,在OKL Microvisor模型下,设备驱动运行在非特权模式,这样有问题的驱动程序将不会导致整个系统不可用。现代操作系统多少都实现了类似的东西(如Windows Vista上开始具有)。
关于微内核和单内核的区别,可以看这里:虚拟化风暴前夕 微软HyperV技术分析。
OKL4 Microkernel:小TCB提供更好的安全性并易于维护,通过MMU(Memory Management Unit,内存管理单元)硬件隔离地址空间,提供快速的消息传递机制(IPC,Inter-Process Communication,进程内通信)并提供了传统意义的微内核没有提供的真正共享内存特性,最重要的是:它是开源的!
资源管理通过受内核保护的权限(capabilities)属性来控制,这个权限可以传递指令的特权(privilege)