操作系统的设计目标可以分为两种:
1、用户目标:方便使用、容易学习、可靠、安全以及流畅等
2、系统目标:易于实现与维护、灵活,可靠、不易出错、高效等。
如何有效控制操作系统的复杂度?这里有一个很重要的设计原则:将策略与机制相分离
策略表示“要做什么”,机制表示“该如何做”
即模块化(modularity)、抽象(abstraction)、分层(layering)和层级(hierarchy)
模块化:划分模块,分而治之。需要充分考虑高内聚和低耦合
抽象:在模块化的基础上,将接口与内部实现分离。
宽进严出原则
一个模块的接口应当容忍各种可能的输入,一直错误甚至恶意的输入,避免错误或而已输入的效果在模块内传播,并且尽可能地控制模块对外的输出,从而减少错误在模块之间的传播。
分层:一个模块只能和同层模块以及相邻的上下层模块进行交互,不能跨层交互。
层级:首先将一些功能相近的模块组成一个具有清晰接口的自包含子系统,然后再将这些子系统递归地组成一个具有清晰接口的更大系统。可以参考公司的组织架构
分层是不同类模块之间的层级,而层级则是指同类模块之间的分层。
参考资料 《现代操作系统:原理与实现》陈海波 夏虞斌等著