操作系统结构

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

分层和模块化

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

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