本文对比了微内核和单体内核两种操作系统内核架构。单体内核将所有操作系统功能(包括调度器、文件系统、内存管理、网络堆栈、设备驱动等)运行在单一地址空间,通过内核模式执行,从而实现更快的处理速度,但缺点是内核体积较大,且历史上需要重新编译以添加新功能或进行维护更新。现代单体内核大多支持动态加载内核模块,无需重新编译整个二进制文件。
微内核架构的主要优势在于体积小,通常能容纳在系统的L1缓存中,通过将内核限制为最基本的组件(如进程间通信、基本调度和基本内存管理),并通过消息传递在用户空间中实现其他操作系统功能。这种通信方式虽然简化了设计,但引入了额外的开销,导致处理速度较慢。
选择单体内核的原因包括:
- 更高的性能,减少抽象层,内核组件间通信更高效;
- 单体内核中服务可通过单一系统调用获取,无需进程间交换IPC消息;
- 设计更简单,内核组件完全集成,无需考虑大量配置或依赖关系;
- 更少的上下文切换开销,系统调用在同一地址空间中执行;
- 设备驱动响应更快且更易于管理,因为它们集成在内核中并运行在同一地址空间;
- 实施维护和升级更简单,所有组件编译为单个可执行文件;
- 相同功能下,单体内核代码更少,认证成本更低。
此外,本文指出,对于希望保留基于微内核架构的现有知识产权(IP)的开发团队,可以考虑使用Wind River Helix™虚拟化平台,该平台可托管微内核操作系统。对于偏好微内核架构的团队,Wind River提供的Type 1虚拟机管理程序(hypervisor)也支持具有消息传递微内核的系统,通过同步或异步通信提供确定性应用性能。