操作系统 (OS) 中的内核是什么?

2025 年 6 月 26 日 | 阅读 11 分钟

在广阔而复杂的计算世界中,操作系统在确保软件硬件协同工作方面发挥着重要作用。每个操作系统都有一个重要的组件,即作为其核心的内核。虽然它通常在幕后运行,但内核是使现代计算成为可能的原因。它是计算机启动时操作系统的第一部分,也是系统关闭时最后关闭的部分。作为中央管理器,内核处理硬件和软件之间的通信,协调系统资源的使用,并确保系统执行的每项操作都具有稳定性和效率。

没有内核,应用程序将无法以任何标准化方式访问内存、处理器、文件或外围设备。计算机系统中的每个操作都依赖于内核,从运行系统内存、管理系统内存、运行文件、管理后台功能。了解内核不仅加深了我们对计算机如何运行的了解,而且还揭示了构建强大、安全和高性能操作系统所需的复杂性和精确工程。

在计算机科学中,内核是操作系统核心或心脏的计算机程序。在详细讨论内核之前,让我们首先了解它的基础,即计算机中的操作系统。

操作系统

操作系统或 OS 是一种系统软件,充当硬件组件和最终用户之间的接口。它使其他程序能够运行。每个计算机系统,无论是台式机、笔记本电脑、平板电脑还是智能手机,都必须具有 OS 才能提供设备的基本功能。一些广泛使用的操作系统是 WindowsLinux、MacOS、Android、iOS 等。

操作系统中的内核是什么?

What is Kernel

内核是操作系统的主体部分,负责管理软件和硬件之间的通信。它就像一个中央控制单元,确保计算机系统的所有组件(如处理器、内存和输入/输出设备)高效安全地协同工作。

当计算机启动时,内核内存是第一个加载的软件,并一直保持活动状态直到系统关闭。它的主要任务是管理系统资源并允许程序流畅运行而无需直接访问硬件。它处理重要的任务,例如为应用程序分配内存、决定哪个进程使用 CPU,以及管理或管理来自键盘、屏幕和存储驱动器等设备的数据。

将内核视为中间人或翻译器。应用程序无法直接与硬件对话,因为那是不安全和复杂的。相反,它们向内核发出请求,内核处理这些请求并代表它们与硬件交互。这创建了一个抽象和控制层,使系统更稳定、更安全、更易于使用。

简而言之,内核是操作系统的基础——没有它,操作系统和计算机将无法作为一个整体运行。

  • 如上所述,内核是操作系统 (OS) 的核心部分;因此,它对系统中的所有事物都具有完全控制。硬件和软件的每个操作都由内核管理和管理。
  • 它充当应用程序和硬件级别的数据处理之间的桥梁。它是操作系统中的核心组件。
  • 它是操作系统中始终驻留在计算机内存中并实现软件和硬件组件之间通信的部分。
  • 它是系统启动时(在引导加载程序之后)第一个加载的计算机程序。一旦加载,它会管理剩余的启动。它还管理来自软件的内存、外围设备和 I/O 请求。此外,它将所有 I/O 请求转换为 CPU 的数据处理指令。它还管理其他任务,例如内存管理、任务管理和磁盘管理
  • 内核通常被加载到单独的内存空间中,称为受保护的内核空间。它受到保护,应用程序或操作系统中不太重要的部分无法访问。
  • 其他应用程序,如浏览器、文字处理器、音频和视频播放器,使用单独的内存空间,称为用户空间
  • 由于这两个独立的内存空间,用户数据和内核数据不会相互干扰,也不会导致任何不稳定和缓慢。

内核的功能

操作系统的内核负责执行各种功能并控制系统。内核的一些主要职责如下:

  • 设备管理
    为了执行各种操作,进程需要访问连接到计算机的外围设备,例如鼠标、键盘等。内核负责使用设备驱动程序控制这些设备。这里,设备驱动程序是一个计算机程序,它帮助或使操作系统能够与任何硬件设备通信。
    内核维护所有可用设备的列表,此列表可能已已知、由用户配置或由操作系统在运行时检测到。
  • 内存管理
    内核对访问计算机内存拥有完全控制权。每个进程都需要一些内存才能工作,内核使进程能够安全地访问内存。分配内存的第一步称为虚拟寻址,它通过分页或分段完成。虚拟寻址是为进程提供虚拟地址空间的过程。这可以防止应用程序相互冲突。
  • 资源管理
    内核的重要功能之一是共享各种进程之间的资源。它必须以每个进程统一访问资源的方式共享资源。
    内核还提供了一种同步和进程间通信 (IPC) 的方法。它负责进程之间的上下文切换。
  • 访问计算机资源
    内核负责访问计算机资源,例如 RAM 和 I/O 设备。RAM 或随机存取存储器用于包含数据和指令。每个程序都需要访问内存才能执行,并且通常需要比可用内存更多的内存。在这种情况下,内核发挥其作用并决定每个进程将使用哪个内存,以及在所需内存不可用时该怎么办。
    内核还分配应用程序使用 I/O 设备的请求,例如键盘、麦克风、打印机等。

内核架构

内核架构是指内核内部设计和组织结构,以及它如何提供其主要服务。各种操作系统根据其目标(例如性能、模块化、安全性或易于维护)采用各种内核架构。架构决定了内核系统如何管理资源以及如何与设备驱动程序、系统服务和用户应用程序等其他组件交互。

有许多广泛认可的内核架构,每种都有不同的特性。

整体内核

整体内核是指所有主要功能——例如过程管理、内存处理、文件系统和设备驱动程序——都包含在一个大型代码库中,并在内核空间中运行。由于所有组件都在相同的地址位置运行,因此组件之间的通信更快,从而带来更好的性能。但是,由于所有组件都紧密耦合,内核一部分中的缺陷可能会使整个系统崩溃。Linux 内核是整体内核的一个著名示例,尽管它支持可加载模块以增加灵活性。

微内核

微内核的设计目标是在内核空间中只包含最基本的服务——例如低级内存管理、进程间通信 (IPC) 和基本调度。所有其他服务,包括设备驱动程序、文件系统和网络协议,都以独立进程的形式在用户空间中运行。这种设计系统增强了稳定性和安全性,因为用户空间组件中的缺陷不会直接影响内核。但是,由于需要用户空间和内核空间进程之间频繁通信,它可能会引入性能开销。基于微内核的系统示例包括 Minix 和 QNX。

混合内核

混合内核结合了整体内核和微内核设计的各个方面。它将性能关键组件(例如设备驱动程序和文件系统管理)放置在内核空间中以提高速度,同时将不太重要的服务放在用户空间中以提高模块化和安全性。这种架构的目的是平衡整体内核的性能与微内核的稳定性和稳定性。现代操作系统,例如 Windows NT(包括 Windows 10/11)和 Macos 和 iOS 中使用的 Apple XNU 内核,都使用混合内核架构。

纳米内核

纳米内核是一种非常小的设计,它只提供最基本的 CPU 和硬件抽象功能,例如中断处理和基本引用切换。它比微内核更小更简单,通常用于特殊环境或作为大型内核实验的一部分。它将大部分责任释放给其他层或用户空间组件。

内核类型

内核主要有五种类型,如下所示:

What is Kernel

1. 整体内核

在整体内核中,用户服务和内核服务使用相同的内存空间来实现。

What is Kernel

这意味着,在这种类型的内核中,用户服务和内核服务不使用不同的内存。

由于它使用相同的内存空间,内核的大小会增加,从而增加操作系统的总体大小。

进程的执行也比其他内核类型更快,因为它不使用单独的用户空间和内核空间。

整体内核的示例Unix、Linux、Open VMS、XTS-400 等。

优点

  • 由于没有单独的用户空间和内核空间,并且涉及的软件较少,因此进程的执行也更快。
  • 由于它是一个单一的软件,因此它的源代码和编译形式都更小。

缺点

  • 如果任何服务产生任何错误,它可能会使整个系统崩溃。
  • 这些内核不可移植,这意味着对于每个新架构,它们都必须重写。
  • 体积大,因此难以管理。
  • 要添加新服务,需要修改整个操作系统。

2. 微内核

What is Kernel

微内核也称为 μK,它与传统内核或整体内核不同。在这种情况下,用户服务和内核服务在两个不同的地址空间中实现:用户空间和内核空间。由于它为这两种服务使用不同的空间,因此微内核的大小减小,这也减小了操作系统的大小。

与整体内核相比,微内核更易于管理和维护。但是,如果系统调用和上下文切换的数量更多,则可能会通过使系统变慢而降低系统性能。

这些内核使用消息传递系统来处理从一个服务器到另一个服务器的请求。

微内核只提供一些基本服务,例如定义内存地址空间、IPC(进程间通信)和进程管理。其他服务(例如网络)不由内核提供,而是由用户空间程序(称为服务器)处理。

整体内核的主要缺点之一是内核中的错误可能会使整个系统崩溃,这在微内核中可以避免。因为在微内核中,如果一个内核进程崩溃,仍然可以通过重新启动导致错误的服务来防止整个系统崩溃。

微内核的示例L4、AmigaOS、Minix、K42 等。

优点

  • 微内核可以轻松管理。
  • 可以轻松添加新服务,而无需修改整个操作系统。
  • 在微内核中,如果一个内核进程崩溃,仍然可以防止整个系统崩溃。

缺点

  • 需要更多的软件进行接口,这降低了系统性能。
  • 进程管理非常复杂。
  • 消息传递错误难以修复。

3. 混合内核

What is Kernel

混合内核也称为模块化内核,它是整体内核和微内核的组合。它利用了整体内核的速度和微内核的模块化。

混合内核可以理解为微内核的扩展版本,具有整体内核的附加属性。这些内核广泛用于商业操作系统,例如不同版本的 MS Windows。

它与微内核非常相似,但也包含内核空间中的一些额外代码以提高系统性能。

混合内核允许在内核空间中运行一些服务(例如网络堆栈)以减少与传统微内核相比的性能,但它仍然允许将内核代码(例如设备驱动程序)作为服务器在用户空间中运行。

混合内核的示例有 Windows NT、Netware、BeOS 等。

优点

  • 不需要重新启动进行测试。
  • 第三方技术可以快速集成。

缺点

  • 通过更多接口,可能会出现更多错误。
  • 对于某些管理员来说,维护模块可能是一项令人困惑的任务,尤其是在处理符号差异等问题时。

4. 纳米内核

顾名思义,在纳米内核中,内核的完整代码非常小,这意味着在硬件特权模式下执行的代码非常小。这里的“纳米”一词定义了一个支持纳秒时钟分辨率的内核。

纳米内核的示例是 EROS 等。

优点

  • 它甚至以非常小的尺寸提供硬件抽象。

缺点

  • 纳米内核缺乏系统服务。

5. 外核

外核仍在开发中,是设计操作系统的实验性方法。

这种类型的内核与其他内核不同,因为在这种内核中,资源保护与管理分开,这使我们能够执行应用程序特定的自定义。

优点

  • 基于外核的系统可以包含多个库操作系统。每个库都导出不同的 API,例如一个可用于高级 UI 开发,另一个可用于实时控制

缺点

  • 外核的设计非常复杂。

什么是内核崩溃?

正如我们已经讨论过的,内核控制着整个计算机系统;因此,如果它崩溃,它可能会使整个系统崩溃。在 MacOS 和 Linux 中,这种不希望发生的事件被称为“内核崩溃”。要从内核崩溃中恢复,我们需要重新启动系统。

通常,这些内核崩溃是由硬件通信问题引起的。因此,如果重复发生内核崩溃,请尝试拔下不那么必要或不必要的设备,并检查问题是否已解决。

常见问题解答

Q1:内核在操作系统中的主要作用是什么?

内核的主要作用是管理硬件和软件之间的通信。此过程控制主要功能,例如管理、内存分配、设备处理和系统调用,确保系统的所有部分高效安全地工作。

Q2:内核和操作系统是一回事吗?

不,内核是操作系统的一部分,但不是整个系统。操作系统包括用户界面、库、实用程序和内核以及提供完整计算体验的应用程序。

Q3:计算机启动时,为什么内核首先加载?

内核首先加载,因为它提供了管理硬件和启动操作系统其他部分所需的必要服务。没有内核,系统就无法运行或加载其他软件。

Q4:内核有哪些不同类型?

有几种类型的内核,包括整体内核、微内核、混合内核、纳米内核和外核。每种内核在性能、稳定性和复杂性方面都有独立的架构和业务。

Q5:什么是内核的系统调用?

系统调用是用户级程序请求执行特定任务,例如从文件读取或分配内存。它充当内核服务的受控入口点。

Q6:内核会崩溃吗?如果会,会发生什么?

是的,内核错误、硬件故障或受污染的驱动程序可能会导致崩溃。由于内核系统是操作的核心,内核崩溃通常会导致整个系统故障,通常称为“内核恐慌”或“蓝屏”,具体取决于操作系统。


下一主题什么是网页