+
95
-

操作系统微内核与宏内核有啥区别?

操作系统微内核与宏内核有啥区别?


网友回复

+
15
-

操作系统内核是操作系统的核心部分,它管理着系统的各种资源。

内核可以看成连接应用程序和硬件的一座桥梁,是直接运行在硬件上的最基础的软件实体

在一些简单的硬件设备上可以没有内核或操作系统而直接运行程序,比方单片机等。这些设备通常只是用于特定的场合,也通常功能比较单一。而对于一般计算机来说操作系统是必不可少的。对不同的操作系统,其内核实现也是有所区别的。

目前从内核架构来划分,可分为微内核(Micro Kernel)和宏内核(Monolithic Kernel),“宏内核”这个翻译其实不是很好,翻译成“单内核”事实上更好一点。

对于微内核,用户服务和内核服务分别运行在不同的地址空间中;对于宏内核不管是用户服务还是内核服务事实上都是内核在统一管理,它们是运行在同一地址空间中的。

我们需要好好理解第5点,也就是用户服务和内核服务运行的地址空间的问题。大家都知道Linux采用的是宏内核,但是它也区分内核空间和用户空间,那不是有歧义了吗?我们先看一张图。 对于Linux来说,不管是应用还是内核都是由内存管理单元来做统一的内存管理的,用户空间的程序确实不能访问内核空间,但是对于内核来说,3GB-4GB的线性地址空间对整个内核都是共用的,同时内核中的VFS、System Call等模块被划分到内核中,它们之间的地址空间是相同的,这里的用户服务按照我的理解就是这几个内核模块所需要的报备,如上图所示。 我们来列张表来对比一下微内核和宏内核的具体区别:

微内核定义: 内核管理着所有的系统资源,在微内核中用户服务和内核服务在不同的地址空间中实现。在应用程序和硬件的通信中,内核进程和内存管理的极...

点击查看剩余70%

我知道答案,我要回答