操作系统内核知识点
操作系统内核架构
一、内核概念
内核是操作系统最核心部分,运行于硬件之上,负责进程调度、内存管理、文件系统、设备驱动等,分为用户态、内核态两种运行状态。常见内核架构分为:宏内核(单内核)、微内核、外内核、多内核。
1.宏内核(单内核)
宏内核也叫单内核。操作系统的全部模块(进程调度、内存管理、文件系统、设备驱动)都运行在内核态。
- ✅优点:模块之间直接调用,执行速度快,性能高。
- ❌缺点:所有功能都在内核空间,只要其中一个模块发生错误,会直接造成整个操作系统崩溃。
- 代表系统:Linux、UNIX、FreeBSD(银河麒麟基于Linux,属于宏内核)。
用户程序运行在用户态,如果要使用操作系统功能,需要发起系统调用切换进入内核态。
2.微内核
将文件系统、设备驱动等大部分服务,从内核拆分出去,放到用户态,作为独立进程运行;内核内部只保留最基础、最小的核心功能。 - ✅优点:各个服务进程完全互相隔离。单个服务崩溃,不会导致整个系统崩溃,系统安全性、稳定性强。
- ❌缺点:各个服务之间依靠进程间通信传递消息,带来额外开销,性能比宏内核低。
核心思想:机制与策略分离。
3.外内核架构
外内核不做硬件资源抽象,直接把硬件资源暴露给应用程序。 - 内核只做两件事:①管理应用程序的创建、销毁、调度;②保证各个应用之间互相隔离,防止冲突干扰。
- ✅优点:应用程序可以根据自身需求直接控制硬件,性能、效率高。
- ❌缺点:应用程序开发复杂度提升。
和微内核区分:微内核在内核完成硬件抽象;外内核内核不做硬件抽象,硬件交由应用直接操作。
4.多内核架构
将内核运行在多个CPU处理器核心上,多个内核实例并行工作,充分发挥多核CPU硬件性能。
现代内核设计MALH方法(模块化、抽象、分层、层级)
1. 模块化:内核拆分成独立模块,可以动态加载、卸载(LKM可加载内核模块,驱动常用)。
2. 抽象:把硬件、设备抽象成统一接口,Linux理念“一切皆是文件”。
3. 分层:系统分层组织,每一层只和相邻层交互,降低复杂度。
4. 层级:对进程、资源划分优先级,调度管理不同任务。
考试简答汇总
1. 宏内核:全部功能运行在内核态,性能高;一个模块故障会造成整个系统崩溃,代表Linux。
2. 微内核:内核仅保留最小基础功能,其余服务运行用户态;隔离性好,稳定性高,但是性能损耗大。
3. 外内核:不做硬件抽象,硬件资源交给应用程序直接控制,内核只做隔离调度。
4. 多内核:内核部署在多个CPU核心并行运行,适配多核硬件。
浙公网安备 33010602011771号