微内核

微内核是小而美的服务商。

微内核,只提供最基本的服务,如进程调度、内存管理等,其他的服务,如文件系统、网络协议等,都在内核之外的用户空间中运行。这种设计的优点是结构简单,容易理解和修改,如果一个服务出现问题,也不会影响到其他服务。但是,这种设计的缺点是性能较低,因为服务之间的调用需要在内核和用户空间之间进行切换,效率较低。

就像一个城市的交通系统中,只有最基本的道路和桥梁是由中央指挥系统控制,其他的如公交、出租车等都是由各自的调度系统进行管理。这种方式的优点是稳定性好,因为即使一个服务出现问题,也不会影响到其他的服务。然而,缺点是效率较低,因为服务之间的调度需要在内核和用户空间之间进行切换,这就像各个调度系统之间需要进行协调,导致交通运输的效率降低。

微内核的代表有 Mach,据说鸿蒙也是微内核。

基本概念

微内核构架,是指将内核中最基本的功能保留在内核,而将那些不需要在核心态执行的功能移到用户态执行,从而降低内核的设计复杂性。那些移出内核的操作系统代码根据分层的原则被划分成若干服务程序,它们的执行相互独立,交互则都借助于微内核进行通信。

基本功能

  1. 进程(线程)管理。进程 (线程) 之间的通信功能是微内核 OS 最基本的功能,此外还有进程的切换、进程的调度,以及多处理机之间的同步等功能,都应放入微内核。举个例子,为实现进程调度功能,需要在进程管理中设置一个或多个进程优先级队列,这部分属于调度功能的机制部分,应将它放入微内核。而对用户进程如何分类,以及优先级的确认方式,则属于策略问题, 可将它们放入微内核外的进程管理服务器中;
  2. 低级存储器管理。在微内核中,只配置最基本的低级存储器管理机制,如用于实现将逻辑地址变换为物理地址等的页表机制和地址变换机制,这 •部分是依赖于硬件的,因此放入微内核。而实现虚拟存储器管理的策略,则包含应采取何种页面置换算法,采用何种内存分配与回收的策略,应将这部分放在微内核外的存储器管理服务器中;
  3. 中断和陷入处理。微内核 OS 将与硬件紧密相关的一小部分放入微内核,此时微内核的主要功能是捕获所发生的中断和陷入事件,并进行中断响应处理,在识别中断或陷入的事件后,再发送给相关的服务器来处理,故中断和陷入处理也应放入微内核;