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


