操作系统中的宏内核结构

2025年4月13日 | 阅读 6 分钟

单体操作系统是一种非常基本的操作系统,其中文件管理、内存管理、设备管理和进程管理直接在内核中控制。内核可以访问系统中存在的所有资源。在单体系统中,操作系统的每个组件都包含在内核中。采用单体架构的操作系统首次出现在 20 世纪 70 年代。

单体操作系统也称为单体内核。这是一种旧的操作系统,用于在银行执行批处理和分时等小型任务。单体内核充当控制所有硬件部件的虚拟机。

它不同于任务有限的微内核。微内核分为两部分:内核空间用户空间。两部分通过 IPC(进程间通信)进行通信。微内核的优势在于,如果一个服务器发生故障,另一个服务器会接管它。

单体内核

单体内核是一种操作系统架构,其中整个操作系统都在内核空间中工作。单体模型与微内核架构等其他操作系统架构不同,因为它独自定义了计算机硬件之上的高级虚拟接口。

一组原语或系统调用实现了所有操作系统服务,如进程管理、并发和内存管理。设备驱动程序可以作为模块添加到内核中。

单体内核的优点

单体内核的优点如下:

  • 单体内核的执行速度相当快,因为内存管理、文件管理、进程调度等服务是在同一地址空间下实现的。
  • 在单体内核中,一个进程完全在单个地址空间中运行。
  • 单体内核是一个静态的单一二进制文件。

单体内核的缺点

单体内核的一些缺点如下:

  • 如果单体内核中的任何服务失败,将导致整个系统失败。
  • 用户需要修改整个操作系统才能添加任何新服务。

单体系统架构

操作系统的单体设计架构并未对操作系统的特殊性质做出特别的考虑。尽管设计遵循关注点分离,但没有尝试限制授予操作系统各个部分的权限。整个操作系统以最大权限执行。单体操作系统中的通信开销与其他任何软件的通信开销相同,相对较低。

Monolithic Structure of Operating System

CP/M 和 DOS 是单体操作系统的简单示例。CP/M 和 DOS 都是与应用程序共享单个地址空间的操作系统。

  • 在 CP/M 中,16 位地址空间以系统变量和应用程序区域开始。它以操作系统的三个部分结束,即 CCP(控制台命令处理器)、BDOS(基本磁盘操作系统)和 BIOS(基本输入/输出系统)。
  • 在 DOS 中,20 位地址空间以中断向量数组和系统变量开始,后跟 DOS 的常驻部分和应用程序区域,最后是视频卡和 BIOS 使用的内存块。

单体架构的优点

单体架构具有以下优点,例如:

  • 结构简单易实现。
  • 由于可以访问所有服务,因此执行速度更快。

单体架构的缺点

单体架构的一些缺点如下:

  • 添加新功能或删除旧功能非常困难。
  • 由于内核中各种服务器之间没有隔离,因此始终存在安全问题。

模块化单体系统

模块化操作系统和大多数现代单体操作系统,如 OS-9 OpenVMS、Linux、BSD、SunOS、AIX 和 MULTICS,可以在运行时动态加载(和卸载)可执行模块。

操作系统的这种模块化是在二进制级别,而不是在架构级别。模块化单体操作系统不应与使用微内核和服务器的客户端-服务器操作系统(及其有时被市场称为混合内核的派生产品)固有的架构级别模块化相混淆。

实际上,动态加载模块只是在运行时处理操作系统映像的一种更灵活的方式,而不是通过不同的操作系统映像重新启动。模块允许根据需要轻松扩展操作系统的功能。与将模块构建到操作系统映像中相比,动态可加载模块会产生少量开销。

然而,在某些情况下,动态加载模块有助于将内核空间中运行的代码量保持在最低限度。例如,为了最小化嵌入式设备或硬件资源有限的设备的操作系统占用空间。也就是说,未加载的模块不必存储在稀缺的随机访问内存中。

单体系统的局限性

单体操作系统具有以下局限性,例如:

  • 在此操作系统(OS)中编写的代码难以移植。
  • 单体 OS 更有可能产生错误和 bug。原因是用户进程使用与内核相同的地址位置。
  • 在单体 OS 中添加和删除功能非常困难。需要重写和重新编译所有代码才能添加或删除任何功能。

单体系统的特点

单体操作系统向用户提供以下功能,例如:

  1. 结构简单:这类操作系统结构简单。处理所需的所有组件都嵌入在内核中。
  2. 适用于较小任务:它更适合执行较小任务,因为它可以处理有限的资源。
  3. 组件之间的通信:所有组件都可以直接相互通信,也可以与内核通信。
  4. 快速操作系统:用于创建单体内核的代码非常快速且健壮。

单体内核与微内核的区别

内核是操作系统的核心部分,它管理系统资源。内核就像应用程序和计算机硬件之间的桥梁。内核可以进一步分为两类:微内核和单体内核。

微内核是一种允许自定义操作系统的内核类型。它在特权模式下运行,并提供低级地址空间管理和进程间通信 (IPC)。此外,文件系统、虚拟内存管理器和 CPU 调度程序等 OS 服务位于微内核之上。每个服务都有自己的地址空间,以确保其安全。此外,应用程序也有自己的地址空间。因此,应用程序、OS 服务和内核之间存在保护。

单体内核是内核的另一种分类。在基于单体内核的系统中,每个应用程序都有自己的地址空间。与微内核一样,它也管理应用程序和硬件之间的系统资源,但用户服务内核服务是在同一地址空间下实现的。它增加了内核的大小,从而也增加了操作系统的大小。

Monolithic Structure of Operating System

该内核通过系统调用提供 CPU 调度、内存管理、文件管理和其他系统功能。由于这两个服务都在同一地址空间下实现,这使得操作系统执行速度更快。以下是微内核和单体内核之间的一些更多区别,例如:

条款单体内核微内核
定义单体内核是操作系统内核的一种类型,其中整个操作系统都在内核空间中工作。微内核是一种内核类型,它提供低级地址空间管理、线程管理和进程间通信来实现操作系统。
地址空间在单体内核中,用户服务和内核服务都保存在同一地址空间中。在微内核中,用户服务和内核服务保存在单独的地址空间中。
大小单体内核比微内核大。微内核体积小。
执行执行速度快。执行速度慢。
OS 服务在单体内核系统中,内核包含 OS 服务。在基于微内核的系统中,OS 服务和内核是分离的。
可扩展性单体内核扩展起来非常复杂。微内核易于扩展。
安全性如果一个服务崩溃,那么在单体内核中整个系统都会崩溃。如果一个服务崩溃,它不会影响微内核的工作。
定制向单体内核添加新功能很困难。因此,它不可自定义。向微内核添加新功能很容易。因此,它更具可定制性。
代码编写单体内核所需的代码量较少。微内核需要更多的编码。
示例Linux、FreeBSD、OpenBSD、NetBSD、Microsoft Windows (95、98、Me)、Solaries、HP-UX、DOS、OpenVMS、XTS-400 等。QNX、Symbian、L4L.inux、Singularity、K42、Mac OS X、Integrity、PikeOS、HURD、Minix 和 Coyotos。