操作系统中的微内核

2025年4月22日 | 阅读 4 分钟

在本文中,您将学习微内核及其架构、优点和缺点。但在讨论微内核之前,您必须了解内核。

什么是内核?

它是操作系统的核心组件,负责处理系统资源。它还充当计算机应用程序和硬件之间的桥梁。它是计算机启动时加载的初始程序之一。当操作系统加载时,内核是第一个加载到内存中并停留在那里直到操作系统关闭的组件。它负责各种活动,包括任务管理、磁盘管理和内存管理。

什么是微内核?

微内核是内核的一种分类。作为内核,它处理所有系统资源。另一方面,微内核中的用户和内核服务在不同的地址空间中实现。**用户服务**保存在**用户地址空间**中,而**内核服务**保存在**内核地址空间**中。它有助于减小内核和操作系统的规模。

它提供最少量的进程和内存管理服务。客户端应用程序和用户地址空间中运行的服务之间的交互通过消息传递建立,这有助于降低微内核的执行速度。操作系统不受影响,因为内核和用户服务是隔离的,因此如果任何用户服务失败,内核服务不受影响。它是可扩展的,因为新服务添加到用户地址空间,因此不需要更改内核空间。它还轻量级、安全且可靠。

微内核及其用户环境通常用C++或C语言以及少量汇编语言编写。另一方面,其他实现编程语言可能适用于一些高级代码。

微内核的架构

微内核是正确实现操作系统所需的最低限度软件。它包括内存、进程调度方法和基本进程间通信。

Microkernel in Operating System

在上图中,微内核包含基本需求,如进程调度机制、内存和进程间通信。它是唯一在特权级别(即内核模式)执行的程序。操作系统的其他功能从内核模式移出并在用户模式下执行。

微内核确保代码可以轻松控制,因为服务在用户空间中分离。这意味着一些代码在内核模式下运行,从而提高了安全性和稳定性。

由于内核是最关键的操作系统组件,它负责基本服务。因此,在此设计下,只有最重要的服务存在于此架构的内核内部。相比之下,其余的操作系统服务在系统应用程序软件内部可用。因此,用户可以在系统应用程序中与这些不必要的服务进行交互。微内核完全负责操作系统最重要的服务,这些服务如下:

  1. 进程间通信
  2. 内存管理
  3. CPU 调度

进程间通信

进程间通信是指进程之间如何相互交互。一个进程有多个线程。在内核空间中,任何进程的线程都相互交互。消息通过端口在线程之间发送和接收。在内核级别,有几个端口,如进程端口、异常端口、引导端口和注册端口。所有这些端口都与用户空间进程交互。

内存管理

内存管理是在主内存中为进程分配空间的过程。然而,也有为进程创建虚拟内存的过程。虚拟内存意味着如果一个进程的大小大于主内存,它将被分成多个部分并存储。之后,进程的每个部分将逐一存储在主内存中,直到CPU执行它。

CPU 调度

CPU调度指的是CPU接下来将执行哪个进程。所有进程都排队并一次执行一个。每个进程都有一个优先级,优先级最高的进程首先执行。CPU调度有助于优化CPU利用率。此外,资源被更有效地使用。它还减少了等待时间。等待时间表明进程在队列中花费的时间更少,并且资源更快地分配给进程。CPU调度还减少了响应时间和周转时间。

微内核的组件

微内核只包含系统的基本功能。只有当将组件放在外部会扰乱系统运行时,才将其包含在微内核中。所有其他非必要组件都应在用户模式下使用。微内核中所需的最少功能如下:

  1. 在微内核中,还需要处理器调度算法。包括进程和线程调度器。
  2. 地址空间和其他内存管理机制应包含在微内核中。还包括内存保护功能。
  3. 进程间通信 (IPC) 用于管理在其自己的地址空间中执行的服务器。

微内核的优点和缺点

微内核的各种优点和缺点如下:

优点

  1. 微内核是安全的,因为只添加那些可能扰乱系统功能的部件。
  2. 微内核是模块化的,各种模块可以互换、重新加载和修改,而不会影响内核。
  3. 微内核架构紧凑且隔离,因此可以表现更好。
  4. 系统扩展更简单,因此可以在不干扰内核的情况下引入到系统应用程序中。
  5. 与单片系统相比,微内核的系统崩溃次数更少。此外,由于微内核的模块化结构,任何发生的崩溃都很容易处理。
  6. 微内核接口有助于强制执行更模块化的系统结构。
  7. 服务器故障被视为与任何其他用户程序故障相同。
  8. 它无需重新编译即可添加新功能。

缺点

  1. 当驱动程序作为过程实现时,需要上下文切换或函数调用。
  2. 在微内核系统中,提供服务的成本高于传统的单片系统。
  3. 微内核系统的性能可能有所不同并导致问题。