https://www.bilibili.com/video/BV1eJ411T7dL?from=search&seid=2421747192738467709
Linux/Unix:宏内核
Windows/Mac/Fuchsia:微内核(有争议)
用户态和内核态:
内核工作在内核态,app 工作在用户态。内核态提供基础设施(有特权,不能出错,注重健壮性),用户态提供用户功能。
内核模块:
- 核心模块
- 调度系统
- 内存管理
- 周边模块
- 硬件驱动
- 文件系统
宏内核:
- 所有内核模块工作在内核态;
- 所有内核功能模块静态链接成一个 image;
- 内核模块中的函数可以直接调用;
- 整个内核可以看作一个大的裸机程序;
- 优点:效率高;
- 缺点:健壮性差,灵活性差;
微内核(Linux的应用层驱动):
- 只保留核心模块;
- 周边模块工作在用户态;
- 核心模块和周边模块间使用 IPC 机制通信(进程间通信机制);
- 整个内核由多个独立程序联合构成;
- 优势:安全性,健壮性好,灵活性好;
- 劣势:效率低,对设计要求高;
HarmonyOS:微内核结合分布式软总线,实现一个内核全场景差异化部署。