自进入大众视野以来,华为就一直宣称自家的鸿蒙操作系统(鸿蒙OS)是基于「微内核」设计的,那么,究竟什么是「微内核」呢?
微内核的英语是Microkernel(或者μ-kernel),在计算机科学中,顾名思义,「内核」是指它是一种内核的设计架构,「微」则代表它由尽可能精简的程序组成。与「微内核」对应的,是宏内核(英语:Monolithic kernel)。这二者之外,也有混合内核(Hybrid kernel)。
由尽可能精简的程序(非常简单的硬件抽象层+一组比较关键的原语或系统调用)组成的「微内核」,要实现一个「操作系统」所需要的最基本功能,这些最基本的功能,至少包括底层的寻址空间管理、线程管理、与进程间通信等。
「微内核」的设计理念在于,将系统服务的实现,与系统的基本操作规则分离。具体的方式,就是将核心功能模块化,划分成几个独立的进程(被称为服务,service),各自运行。所有的进程,要运行在不同的地址空间。少数需要绝对特权的进程,会在赋予特权的模式下运行。
基于这样的设计,「微内核」中最核心的功能,设计设计起来就更简单。需要特权的进程也只有基本的线程管理,内存管理和进程间通信等部分,则由一个简单的硬件抽象层+关键的系统调用组成。其余的服务进程,移至用户空间。
不同进程各自独立,可以减少系统之间的耦合度,这样更容易实现,也容易调试,同时还可有利于移植。基于微内核,可以避免单一组件失效就造成整个系统崩溃的情况,相关组件失效后,内核只需要重启这个组件就可以了,不影响基于其他进程的功能,让系统更稳定。
此外,根据不同的需求,操作系统也可以抽换或者新增部分服务进程,功能更有弹性。