1. 操作系统结构的分层法
分层法定义:分层法将操作系统分为若干层,最底层(层0)为硬件,最高层(层N)为用户接口。每一层只能调用紧邻它的底层的功能和服务,实现有序的调用关系。
分层法的优势:便于系统的调试和验证,因为可以逐层进行调试,错误定位更加准确。同时,也简化了系统的设计和实现,增加了系统的易扩充性和易维护性。
2. 操作系统结构的模块化
模块化定义:模块化是将操作系统按功能划分为若干具有一定独立性的模块,每个模块具有某方面的管理功能,并规定好各模块间的接口,使各模块之间能够通过接口进行通信。
模块化的优点:提高了操作系统设计的正确性、可理解性和可维护性,同时也加速了操作系统的开发过程。但模块间的接口规定很难满足对接口的实际需求,需要权衡模块的独立性和复杂性。
3. 操作系统内核架构:宏内核与微内核
宏内核:宏内核(Monolithic kernel),也称单内核或大内核,是指将系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务。宏内核架构的操作系统具有无可比拟的性能优势,因为各管理模块之间共享信息,能有效利用相互之间的有效特性。但宏内核的缺点是,由于所有模块都在内核空间运行,一旦某个模块出现问题,可能会影响到整个系统的稳定性。目前主流的操作系统,如Windows、Android、iOS、macOS、Linux等,都是基于宏内核的构架。
微内核:微内核架构则将内核最基本的功能保留在内核,其他的不需要在核心态的功能转移到用户态执行。这种设计带来的好处是方便扩展系统,所有新服务都可以在用户空间增加,内核基本不用去做改动。微内核结构通常利用“机制与策略分离”的原理来构造操作系统结构。微内核的优势在于其高扩展性、灵活性和安全性。但由于需要频繁地在核心态和用户态之间进行切换,操作系统的执行开销偏大。典型的微内核操作系统例子包括Mach(macOS和iOS的基础)、L4微内核家族、QNX等。微内核在实时、工业、航空及军事应用中特别流行,这些领域都是关键任务,需要有高度的可靠性。
4. 外核操作系统结构
外核定义:外核操作系统是一种减少传统操作系统概念的设计,它实现了应用级资源管理,即由应用程序而不是操作系统管理硬件资源。
外核的特点:外核将资源保护及其管理分割开来,只提供有限的原语,因此外核操作系统效率很高。由于进程间通信、虚拟内存管理等传统概念都是在应用层实现的,所以可以很容易对他们进行扩展、专业化和替换。但外核操作系统的设计和实现相对复杂,需要应用程序具备较高的资源管理能力。