简述微内核与宏内核

简述微内核与宏内核

内核按照体系结构分为两类 : 微内核宏内核

微内核

微内核是将各种服务功能放到内核之外,自身仅仅是一个消息中转站,用于各种功能间的通讯。内核管理着所有的系统资源,在微内核中用户服务和内核服务在不同的地址空间中实现。在应用程序和硬件的通信中,内核进程管理着极小的服务,而运行在用户空间的服务通过消息的传递来建立通信,它们之间不会有直接的交互,这样一来,其执行速度就相对比较慢了,这是微内核架构的一个缺点。

在内核架构中,用户服务是独立于内核服务的,因此任何用户服务崩溃都不会影响到内核服务,这就增强了操作系统的健壮性,这是微内核的优势所在。此外,微内核的扩展性强,添加一个功能,只需要建立一个新的服务到用户空间当中,而内核空间不需要任何的修改。因此,微内核可移植性强、安全且易于扩展。


宏内核

宏内核是将所有服务功能集成于一身,使用时直接调用。宏内核同样管理着用户程序和硬件之间的系统资源,但是和微内核不一样的是,在宏内核架构中,用户服务和内核服务在同一空间中实现。具体一点,就是内核可以代表内核进程运行代码,也就是通常的内核进程;当用户进程经过系统调用或者中断进入到内核态时,内核也可以代表它运行代码。这样一来,宏内核需要管理的资源多于微内核,其大小就相对大一些了。

在宏内核架构当中,内核管理着CPU调度、内存管理、文件管理和系统调用等各模块的工作,由于用户服务和内核服务被实现在同一空间中,这样在执行速度上就比微内核快。然而,宏内核的劣势也是显而易见的,那就是当内核中的某个服务崩溃了,整个内核也会崩溃。此外,想要在内核中添加新的功能就意味着内核中的各个模块需要做相应的修改,因此其扩展性很弱。


区别

微内核是一个信息中转站,自身完成很少功能,主要是传递一个模块对另一个模块的功能请求,而宏内核则是一个大主管,把内存管理、文件管理等等一股脑全部接管。
从理论上来看,微内核的思想更好些,微内核把系统分为各个小的功能块,降低了设计难度,系统的维护与修改也容易,但通信带来的效率损失是个问题。而宏内核的功能块之间的耦合度太高造成修改与维护的代价太高。

------本文结束感谢您的阅读 ------
0%