本地资料操作系统结构
SCHEDULE LOCAL低优先级10 个小节
暂无关联题目选中文字可高亮或加下划线
选中文字高亮 · 下划线

操作系统结构

偶尔在选择题中考一下 宏内核和微内核 以及 虚拟机 的概念。

分层和模块化

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

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

内核架构

微内核

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

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

宏内核

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

  • 特点
    • 在单一的地址空间中运行大部分系统服务,如设备驱动、文件系统、网络协议等。
    • 所有的内核服务都运行在 内核态
  • 优点
    • 由于所有的服务都在同一个地址空间中运行,因此服务间的通信较快。
    • 传统上,宏内核系统比微内核系统性能更高。
  • 缺点
    • 如果内核中的一个部分失败,整个系统都可能崩溃
    • 随着功能的增加,内核可能会变得臃肿,导致维护困难。
  • 示例:传统 UNIX 和 Linux 采用宏内核思路;Linux 同时支持可装载内核模块,但模块仍在内核地址空间和内核态运行。

混合内核(辨析)

实际系统常在两种思想间折中:把一部分服务留在内核态以减少通信开销,同时保留更清晰的组件边界。macOS / iOS 的 XNU(Mach、BSD 与 I/O Kit)以及 Windows NT 家族通常归为混合内核;它们不能简单地作为“纯微内核”或“纯宏内核”的例子。

概念对照

服务放在何处:宏内核、微内核与混合内核

点击任一列,比较驱动、文件系统等服务位于内核态还是用户态,并用 Linux、QNX / MINIX 3、macOS / Windows NT 校准实例。

  1. 用户进程 / 系统调用通过系统调用请求服务
  2. 宏内核:调度、文件、网络、驱动大部分核心服务共享内核地址空间
  3. 物理硬件CPU、内存、I/O 设备
实例:Linux(模块化宏内核)、传统 UNIX判断词:驱动、文件系统等主要仍运行在内核态。
  1. 用户进程 + 文件 / 驱动等服务多个用户态服务进程
  2. 微内核:IPC、调度、地址空间内核态只保留最小机制
  3. 物理硬件CPU、内存、I/O 设备
实例:QNX、MINIX 3判断词:服务多在用户态,靠消息传递与微内核协作。
  1. 用户进程 / 部分用户态服务保持清晰的组件边界
  2. 内核组件:Mach / BSD / Executive / I/O为性能保留部分内核态服务
  3. 物理硬件CPU、内存、I/O 设备
实例:macOS / iOS 的 XNU、Windows NT 家族易错点:二者通常是混合内核,不是纯微内核。
重点

宏内核文件系统、网络与大部分驱动通常留在内核态,服务间路径短;模块化并不改变其内核态属性。

虚拟机

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

概念对照

Type 1 与 Type 2:VMM 究竟部署在哪一层

点击两种分层图,沿自上而下的路径观察:Type 1 的 VMM 直接在硬件上,Type 2 的 VMM 位于宿主操作系统之上。

  1. 多个来宾 OS / 来宾应用每台 VM 看到自己的虚拟硬件
  2. Type 1 Hypervisor / VMM直接调度 vCPU、管理映射和虚拟设备
  3. 物理硬件CPU、内存、存储、网卡
实例:VMware ESXi、Xen关键路径:物理硬件 → VMM → 多个来宾。判断词:直接安装在物理机。
  1. 多个来宾 OS / 来宾应用每台 VM 看到自己的虚拟硬件
  2. Type 2 Hypervisor / VMM作为宿主系统上的应用或服务
  3. 宿主 OS 与驱动提供文件、设备与驱动服务
  4. 物理硬件CPU、内存、存储、网卡
实例:VirtualBox、VMware Workstation关键路径:物理硬件 → 宿主 OS → VMM → 来宾。判断词:安装在 Windows、macOS、Linux 等宿主系统中。
重点

Type 1(裸机型)VMM 直接建立 vCPU、内存与虚拟设备的隔离边界;来宾 OS 认为自己在 Ring 0,但仍受 VMM 的宿主控制模式约束。

虚拟机监视器

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

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

Hypervisor 的特权级

Hypervisor 借助硬件虚拟化扩展运行在宿主控制模式,例如 x86 的 VMX root mode;来宾操作系统运行在 VMX non-root mode,即使其来宾可见权限仍为 Ring 0,也受 Hypervisor 控制。“Ring -1”只是便于理解的非正式称呼,不是 x86 环保护环的正式编号。

注意

特权级如何理解?

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

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

Hypervisor 还可按部署位置区分为 I 型和 II 型;这个分类描述的是 VMM 位于哪一层,不是来宾操作系统的种类。

I 型(Type 1,裸机型)

I 型 Hypervisor 直接运行在物理硬件之上,先由 VMM 建立虚拟 CPU、内存和设备的隔离边界,再在其上运行多个来宾操作系统。可以把它的主路径理解为:物理硬件 → Hypervisor → 多个来宾 OS / 应用

  • VMM 直接负责虚拟 CPU 调度、内存映射和虚拟设备的控制;管理工具或管理域可能存在,但它不是一套通用的宿主桌面操作系统。
  • 因为没有“应用 → 宿主 OS → VMM”的常规额外路径,服务器整合场景更容易把资源隔离、运行开销和故障边界控制在虚拟化层。
  • 典型例子是 VMware ESXi、Xen;考试中应抓住“直接在硬件上”这一判据,而不是死记产品名称。

II 型(Type 2,宿主型)

II 型 Hypervisor 是运行在宿主操作系统上的普通应用或服务。它把宿主操作系统已经提供的驱动、文件系统和设备管理能力再封装为虚拟硬件,主路径为:物理硬件 → 宿主 OS → Hypervisor → 来宾 OS / 应用

  • VMM 可复用宿主 OS 的设备驱动,安装和使用方便,适合个人学习、桌面测试和开发调试。
  • 来宾的磁盘和网络 I/O 通常还要经过宿主 OS 的调度与驱动栈;因此路径更长,VMM 的可用性也依赖宿主 OS。
  • 典型例子是 VirtualBox、VMware Workstation;它们不等于“来宾权限更低”,来宾内核仍看到自己的 Ring 0,只是该 Ring 0 处在 VMM 控制的来宾执行模式中。

I 型与 II 型对比

比较维度 I 型(裸机型) II 型(宿主型)
部署位置 直接运行在硬件之上 运行在宿主操作系统之上
关键执行路径 硬件 → VMM → 来宾 硬件 → 宿主 OS → VMM → 来宾
设备访问 VMM 直接协调设备虚拟化与资源分配 常复用宿主 OS 的驱动和设备服务
隔离与故障边界 以 VMM 为核心,边界较短、较清晰 还受宿主 OS 状态和驱动栈影响
常见使用场景 服务器整合、云与数据中心 桌面开发、实验与个人测试
判断关键词 “直接安装在物理机” “安装在 Windows、macOS、Linux 等宿主系统中”