Contents
体系结构
怎么设计
大内核、微内核
层次结构
层次
层次,大体上是比较一致的
用户 应用程序 非内核功能(eg:GUI) 进程管理、存储器管理、设备管理等 时钟管理、中断处理、原语(设备驱动、CPU切换等) 裸机(纯硬件)
结构
具体的实现,或者说结构,主要有如下几种: 微内核、大内核; 层次结构; 模块化结构; 外核结构。
微内核
只把最基本的功能保留在内核(时钟管理、中断处理、原语)
优点:内核功能少,结构清晰,方便维护。其他微内核模块的崩溃不一定会引起整个系统的崩溃。
缺点:需要频繁在内核态和用户态之间切换,性能低;微内核之间通过消息传递方式,性能低。
大内核
把操作系统的主要功能模块(时钟管理、中断管理、原语;进程管理,存储管理,设备管理等)都作为系统内核,运行在核心态。
优点:高性能,各功能间直接调用。
缺点:内核代码庞大,结构混乱,难以维护。内核某处崩溃会引起整个系统的崩溃。
分层结构
洋葱结构。每层只能调用更低一层提供的功能。
优点:方便调试和验证(分层调试,分层测试)。层间的调用结构设计时已经固定,在两层间加新层比较方便。
缺点:难以定义层次或边界(接口含义,传参,返回内容),eg:可能两个层次或模块间存在互调;跨层调用效率低
模块化结构
将内核分为多个模块,每个模块又分为子模块。各模块间互相协作。
内核 = 主模块 + 可加载模块
主模块:核心模块
可加载模块:可动态加载到内核中
优点:模块间逻辑清晰,易于维护。确定模块间接口后,多模块可同时开发。可加载模块可增强操作系统功能和适应性。任何模块之间可以直接函数调用,不是消息传递,效率高。
缺点:模块间接口定义未必合适或者适用。多模块调试验证和测试不方便
外核
给用户分配未经抽象和硬件资源。
结构: 硬件 kernel| 外核 Librarys Programs
优点:效率提升;灵活
缺点:降低系统的一致性;使系统更复杂
发表回复