操作系统结构

了解操作系统结构的多个概念,可能在选择题中考察。

分层和模块化

操作系统的设计和结构在历史上经历了多种不同的方法和技巧,为了增加可维护性、灵活性和可扩展性。分层和模块化是操作系统设计中两种主要的技术方法。

  • 分层结构:
    • 概念:在分层的操作系统中,系统被划分为多个层次或“层”,每层都为其上的层提供服务,并依赖于其下的层。
    • 优点:
      • 每层只需与其直接的上下层进行交互,简化了设计和调试。
      • 提高了灵活性,因为改变某一层的实现不会影响到其他层。
      • 有助于保护和安全性,因为较低的层(如硬件访问层)被封装起来,上层代码不能直接访问。
  • 模块化结构:
    • 概念:模块化操作系统基于模块的概念,每个模块都有一个特定的功能,各个模块之间的交互通过定义良好的接口进行。模块化与面向对象编程中的封装和抽象概念类似。
    • 优点:
      • 易于维护和更新。如果某个模块需要更改或修复,可以独立于其他模块进行。
      • 提高了可扩展性。新的功能或模块可以相对容易地添加到系统中。
      • 增加了系统的可靠性和稳定性,因为每个模块的功能都被限定在明确的边界内。
level 0
hardware
level 1
level N
interface
操作系统
进程管理
磁盘管理
文件管理
进程控制
进程调度
内存分配
内存暴露
磁盘管理
目录管理
操作系统分层结构
操作系统模块

内核架构

微内核

微内核(microkernel)是一种最小化的内核设计,只保留最核心的功能(如线程管理、虚拟内存、进程间通信等)在内核态运行,其他功能(如文件系统、设备驱动、网络协议栈等)以用户态服务的形式运行。

  • 特点
    • 只有最基本的服务(如基本的进程和线程管理、地址空间和 IPC)运行在内核态。
    • 其他服务,如设备驱动、文件系统等,作为用户空间的独立进程运行。
    • 内核和服务间通过消息传递进行通信。
  • 优点
    • 更高的系统稳定性。用户空间的服务(如驱动程序)如果崩溃,不会影响整个系统。
    • 更加灵活,允许在运行时更改或添加服务。
    • 更容易扩展和维护。
  • 缺点
    • 由于需要频繁的上下文切换和消息传递,通常性能会稍逊于宏内核。
  • 示例:IOS 是基于微内核的系统。

宏内核

宏内核(monolithic kernel)将所有操作系统功能集成在一个大的内核程序中,运行在内核态。

  • 特点
    • 在单一的地址空间中运行大部分系统服务,如设备驱动、文件系统、网络协议等。
    • 所有的内核服务都运行在内核态。
  • 优点
    • 由于所有的服务都在同一个地址空间中运行,因此服务间的通信较快。
    • 传统上,宏内核系统比微内核系统性能更高。
  • 缺点
    • 如果内核中的一个部分失败,整个系统都可能崩溃。
    • 随着功能的增加,内核可能会变得臃肿,导致维护困难。
  • 示例:传统的 UNIX 系统、Linux 都是基于宏内核的。
Hardware
Hardware
Basic IPC, Virtual Memory,
Scheduling
Basic IPC, Virtual Memory,...
Hardware
Hardware
Device Driver, Dispatcher
Device Driver, Dispatcher
Schedular virtual memory
Schedular virtual memory
IPC, File System
IPC, File System
VFS, System Calls
VFS, System Calls
Application
IPC
Applicatio...
Unix
Server
Unix...
Device
Driver
Device...
File
Server
File...
Application
Application
Application
Application
Microkernel
Microkernel
Monolithic Kernel
Monolithic Kernel
Text is not SVG - cannot display

虚拟机

虚拟机(Virtual Machine, VM)是一种通过软件模拟真实计算机功能的虚拟化技术,能够在一台物理主机上创建多个独立的虚拟计算机环境。每个虚拟机都具备与真实硬件相似的运行环境,可以运行独立的操作系统和应用程序,仿佛它们运行在专属的物理设备上。这种技术广泛应用于服务器整合、测试开发、跨平台应用等场景。

Hypervisor
VM1
VM2
App1
Bins/lib
OS
App1
Bins/lib
OS
Host OS
Server
Virtual Machines

虚拟机监视器

Hypervisor,也称为虚拟机监视器(Virtual Machine Monitor, VMM),是虚拟化技术的核心组件,运行在物理主机和虚拟机之间的中间软件层。它负责协调和管理多个虚拟机,使它们能够共享底层物理硬件资源,同时保持彼此隔离。Hypervisor 的主要职责包括:

  1. 创建与管理虚拟机:为每个虚拟机分配独立的虚拟化硬件资源(如 CPU、内存、存储和网络)。
  2. 硬件资源抽象:通过虚拟化技术,Hypervisor 将物理硬件资源抽象化,使每个虚拟机认为自己独占硬件资源,从而运行独立的操作系统。
  3. 隔离与安全:确保虚拟机之间的运行互不干扰,增强系统安全性。

Hypervisor 的特权级

Hypervisor 通常运行在比操作系统更高的特权级(如硬件虚拟化支持的 VMX root mode 或 Ring -1),以便有效管理虚拟机及其资源。相比之下,虚拟机中的操作系统通常运行在较低的特权级(如 Ring 0)。这种特权级差异确保 Hypervisor 能够完全控制硬件资源并协调多个虚拟机的运行,而不会与虚拟机中的操作系统发生冲突。

注意

特权级如何理解?

特权级是处理器提供的抽象概念,现代处理器(如 x86、ARM)通过硬件支持不同的特权级别(Privilege Levels),以区分操作系统、应用程序和更底层的管理程序的执行权限。这些级别通常通过“环”(Rings)或类似的模式划分:

Ring 0:操作系统内核运行的级别,具有最高权限,可以直接访问硬件资源(如 CPU、内存)。 Ring 1~3:用户态应用程序运行的较低权限级别,无法直接操作硬件。 虚拟化扩展:现代处理器引入了更高权限的模式(如 x86 的 VMX root mode 或 ARM 的 EL2),专为虚拟机监视器(Hypervisor/VMM)设计。