宏内核与微内核

Posted 四季帆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了宏内核与微内核相关的知识,希望对你有一定的参考价值。

1. 内核的组成

        操作系统内核由4大部分组成:调度系统、内存管理、硬件驱动和文件系统,其中调度系统和内存管理是操作系统的核心(必不可少,常见的rtos一般就只实现了这两个核心部分)。

2. 宏内核

        Linux就是常见的宏内核之一,宏内核有以下特点:

四个内核组成部分都工作在内核态
所有内核组成部分静态链接成一个Image ====> 健壮性不高,如果某个驱动挂了,极可能导致整个系统挂掉
内核各模块之间可直接函数调用、变量访问 ====> 效率高

2.1 示意图

        在宏内核下,硬件驱动和调度系统、文件系统、内存管理都工作在内核态,彼此之间可以直接调用函数和访问变量,内核和app之间通过IPC机制进行通信和访问。

3. 微内核

        Liteos就是常见的微内核,微内核有以下特点:

只有调度系统和内存管理两个核心模块工作在内核态,硬件驱动和文件系统等周边模块工作在用户态
核心模块和周边模块之间使用IPC机制通信 ====> 效率变低了(相对于宏内核),但是健壮性变高了,如果某个驱动挂了,系统的其它驱动和模块还可以继续调度和工作

3.1 示意图

        在微内核下,调度系统和内存管理构成内核核心模块,工作在内核态;硬件驱动和文件系统构成内核周边模块,工作在用户态;内核周边模块和内核核心模块通过IPC机制进行通信和访问,app和内核之间通过IPC机制进行通信和访问。

以上是关于宏内核与微内核的主要内容,如果未能解决你的问题,请参考以下文章

计算机操作系统 概述 -- 操作系统的基本特征操作系统的基本功能系统调用宏内核与微内核中断(外中断异常陷入)

计算机操作系统 概述 -- 操作系统的基本特征操作系统的基本功能系统调用宏内核与微内核中断(外中断异常陷入)

Linux内核模块简介

模块化内核与微内核/单片内核

Linux开发,内核代码,找不到内核宏定义,找不到内核函数

Linux开发,内核代码,找不到内核宏定义,找不到内核函数