(2021年11月16日打卡第九天)
打卡第九天:04 | 震撼的Linux全景图:业界成熟的内核架构长什么样?
04 | 震撼的Linux全景图:业界成熟的内核架构长什么样?
学习本节,对常见商业操作系统的架构形成感性认知。
1、Linux的五大重要组件
- 系统 System
- 进程 Processing
- 内存 Memory
- 储存 Storage
- 网络
Linux就是传统的内核结构,也称为宏内核架构。
2、为什么在Darwin-XNU中,两套内核会同时存在呢?
历史原因,早期用Mach内核,出现性能瓶颈后,为了兼容之前为 Mach 开发的应用和设备驱动,就保留了 Mach 内核,同时加入了 BSD 内核。
3、学完文章后,用自己的话总结一下:NT内核有什么特点,猜一下它属于哪种架构类型?
NT 内核在设计上层次非常清晰明了,各组件之间界限耦合程度很低。
- 微软自己在 HAL 层上是定义了一个小内核,小内核之下是硬件抽象层 HAL。
- 小内核之上是各种内核组件,微软称之为内核执行体,它们完成进程、内存、配置、I/O 文件缓存、电源与即插即用、安全等相关的服务。(例如EPROCESS和KPROCESS、ETHREAD和KTHREAD这类数据结构)
- 所有的设备驱动和文件系统都由 I/O 管理器统一管理,驱动程序可以堆叠形成 I/O 驱动栈,功能请求被封装成 I/O 包(IRP包),在栈中一层层流动处理。
- Windows 引以为傲的图形子系统也在内核中。(win32k.sys)
显而易见,NT 内核中各层次分明,各个执行体互相独立,这种“高内聚、低偶合”的特性,正是检验一个软件工程是否优秀的重要标准。
所以,NT内核属于混合内核架构。