它为模块化拓展提供基础
关于微内核主要有以下几个问题
-
内核必须有多小才能被称为微内核
-
怎么设计才能获得最佳性能
-
在内核空间还是在用户空间运行一个非内核的操作
-
是保留子系统的代码还是从头开始
微内核的体系结构
微内核的基本原理是:把最基本的操作系统功能放到内核中,其他服务和程序在微内核之上构建,并在用户态下运行
尽管对于什么在微内核中,什么在微内核之外,不同的设计有不同的分界线
但是传统上属于操作系统一部分的功能都在外部子系统中
如:设备驱动程序,文件系统,虚存管理程序,窗口系统和安全服务
他们可以互相交互,也可以和微内核交互
微内核构建了单个计算机中的C/S模式,程序借助微内核传递消息给操作系统的部件,例如程序想打开一个文件,那么它就会通过微内核给文件系统服务进程发送消息
-
接口一致:因为的服务是通过微内核进行消息传递提供的,因此进程不需要区分服务的级别(内核级别,用户级别)
-
可拓展性:由于内核只负责传递消息,因此增加功能的话只需要修改服务选项列表,而不需要重写内核
-
灵活性
-
可移植性
-
可靠性
由于不同的微内核具有不同的功能和大小
但是相同的是微内核必须包括直接依赖于硬件的功能
- 低级存储管理
- 进程间通信
- I/O
- 中断管理
微内核只需要负责把虚拟页映射到物理页框
而存储管理的大部分功能,包括页面置换算法,分页逻辑等都可以在内核外实现
当应用程序发生缺页中断的时候,内核就会给页面调度程序发送消息,表明引用的是哪一个页
一旦完成调度,那么页面调度程序就会给应用程序发送恢复执行的信息
微内核操作系统中进程与进程直接的通信的基本形式是消息
消息由:消息头,消息体组成