微内核设计的基本思想是简化内核功能,这个概念从提出开始就在不断地发展、完善进步。
第一代微内核的主要代表是Mach,一个由卡内基梅隆大学开发的用于支持操作系统研究的操作系统内核。该项目在1985年启动,并且在1994年因为mach3.0的显著失败而告终。
设计Mach的目的是替代传统的UNIX内核,所以他对UNIX是有兼容性的,实验证明Mach 2.5的效率最多比UNIX少25%,但是考虑到Mach带来的可靠性、可拓展性、安全性,这个效率损失尚可以接受。
第二代微内核的主要代表是L3和L4,对IPC部分进行了很彻底的精简,不使用内存传递消息,而使用寄存器传递消息,同时限制IPC每次传递的信息长度,采用同步IPC技术最终L4微内核的IPC速度经过测试要比Mach快20倍。
第三代微内核更重视安全问题,主要代表有:seL4、Fiasco.OC、NOVA等,其中seL4具备基于端点(enndpoint)的IPC机制,使用了能力空间的概念。seL4是世界上最小的内核之一。但是seL4的性能可以与当今性能最好的微内核相比。作为微内核,seL4为应用程序提供少量的服务,如创建和管理虚拟内存地址空间的抽象,线程和进程间通信IPC。这么少的服务靠8700行C代码搞定。seL4是高性能的L4微内核家族的新产物ÿ