操作系统中的微内核:架构、优点
在学习微内核之前,我们先来理解一下
什么是内核?
内核是操作系统中管理系统资源的重要组成部分。它也充当软件和计算机硬件之间的桥梁。它是启动后加载的第一个程序之一,紧随引导加载程序之后。内核还负责为各种程序提供对机器硬件的安全访问。它还决定了特定应用程序何时以及多长时间使用特定硬件。
什么是微内核?
微内核是一种软件或代码,它包含实现操作系统所需的最低限度的功能、数据和特性。它提供最少量的机制,这足以运行操作系统的最基本功能。由于它没有强加太多策略,因此它允许实现操作系统的其他部分。
微内核及其用户环境通常使用 C++ 或 C 编程语言以及少量汇编代码来实现。但是,通过一些高级编码也可以实现其他实现语言。
什么是宏内核?
宏内核在内核空间运行所有基本的系统服务,例如 进程管理、内存管理、I/O 通信和中断处理、文件系统等。
在这种内核方法中,整个操作系统在内核模式下作为单个程序运行。操作系统被编写成一组过程,这些过程被链接到一个大的可执行二进制程序中。
微内核架构
微内核是正确实现操作系统的最重要部分。您可以在下图看到,微内核实现了内存、进程调度机制和进程间通信等基本操作。
微内核是唯一在特权级别执行的软件。OS 的其他重要功能已从内核模式中移除,在用户模式下运行。这些功能可能是设备驱动程序、应用程序、文件服务器、进程间通信等。
微内核的组成部分
微内核仅包含系统的核心功能。如果将某个组件移到外部会中断系统的功能,那么该组件才会被包含在微内核中。所有其他非关键组件都应放在用户模式下。
微内核所需的最少功能是
- 微内核应包含 内存管理 机制,例如地址空间。它还包含内存保护功能。
- 处理器调度机制应包含进程和线程调度程序。
- 进程间通信负责管理在其各自地址空间中运行的服务器。
微内核与宏内核的区别
参数 | 宏内核 | 微内核 |
---|---|---|
基础版 | 它是在单个地址空间中运行的大型进程 | 它可以分解为称为服务器的独立进程。 |
代码 | 编写宏内核所需的代码量较少。 | 编写微内核所需的代码量更多 |
安全性 | 如果在宏内核中某个服务崩溃,整个系统都会崩溃。 | 如果在微内核中某个服务崩溃,则不会影响其工作。 |
沟通 | 它是一个单一的静态二进制文件 | 服务器通过 IPC 进行通信。 |
示例 | Linux、BSD、Microsoft Windows(95、98、Me)、Solaris、OS-9、AIX、DOS、XTS-400 等。 | L4Linux、QNX、SymbianK42、Mac OS X、Integrity 等。 |
微内核的优点
以下是使用微内核的优点/好处
- 微内核架构小巧且独立,因此功能更好。
- 微内核是安全的,因为只包含那些会影响系统功能的组件,否则就不会。
- 系统的扩展更容易,因此可以在不干扰内核的情况下将其添加到系统应用程序中。
- 微内核是模块化的,不同的模块可以被替换、重新加载、修改,而无需接触内核。
- 与宏内核系统相比,系统崩溃次数更少。
- 微内核接口有助于强制执行更模块化的系统结构。
- 无需重新编译即可添加新功能
- 服务器故障也会像其他用户程序故障一样被隔离。
- 微内核系统是灵活的,因此不同的服务器可以实现不同的策略和 API,这些策略和 API 可以共存在系统中。
- 安全性与稳定性增加,从而减少了在内核模式下运行的代码量
微内核的缺点
以下是使用微内核的缺点/弊端
- 与普通宏内核系统相比,在微内核系统中提供服务成本更高。
- 当驱动程序分别实现为过程或进程时,需要进行上下文切换或函数调用。
- 微内核系统的性能可能不佳,并可能导致一些问题。
摘要
- 内核是操作系统中管理系统资源的重要组成部分。
- 微内核是一种软件或代码,它包含实现操作系统所需的最低限度的功能、数据和特性。
- 在宏内核方法中,整个操作系统在内核模式下运行
- 微内核是正确实现操作系统的最重要部分。
- 微内核仅包含系统的核心功能。
- 宏内核是在单个地址空间中运行的大型进程,而微内核可以分解为称为服务器的独立进程。
- 微内核架构小巧且独立,因此功能更好
- 与普通宏内核系统相比,在微内核系统中提供服务成本更高