本文最后更新于124 天前,其中的信息可能已经过时,如有错误请发送邮件到1910452164@qq.com
本文主要整理几种操作系统内核的特点,并进行横向对比。
| 内核类型 | 核心设计 | 主要优点 | 主要缺点 | 代表系统 |
|---|---|---|---|---|
| 整体结构 | 无明确结构划分,由函数集合构成,函数间可任意相互调用 | 应用与硬件接口简单直接,系统效率高、运行性能好、灵活性好 | 模块独立性差,调用关系复杂,修改、维护及扩展难度大 | CP/M、MS-DOS、Linux系统、早期UNIX系统 |
| 模块结构 | 按功能划分相对独立的模块,通过接口调用/数据传输,模块内部实现对外屏蔽 | 利于开发与维护,有助于提高可靠性和代码质量 | 系统复杂度提升后,模块交互关系复杂,接口定义难度大 | 未提及 |
| 层次结构 | 模块单向依赖/调用;底层(0层)对接硬件,高层(N层)面向应用;每层仅向相邻层提供接口 | 各层相对独立,分解复杂问题,结构与依赖关系清晰,易维护扩展;替换某层不影响其他层 | 层次定义难度大,内容难确定;层次增多会降低系统效率 | VAX/VMS、UNIX |
| 微内核结构 | 划分成小模块;仅核心功能(进程/通信/低级内存管理)在内核中,其余功能以“服务器”进程运行;应用与服务器通过消息通信(混合内核:更多组件放内核态提效) | 扩展性好(添加服务器扩功能);内核与服务器隔离,单个故障不影响其他部分 | 内核与服务器间消息传递开销大,系统效率降低、执行速度慢 | 纯微内核:QNX、AIX、GNU Hurd、Windows NT、Harmonious; 混合内核:Windows、macOS |