跳转至

绪论

约 590 个字 预计阅读时间 2 分钟

不同视角下的操作系统

我们将从应用、硬件、数学三个视角下去理解现代的操作系统

应用视角的操作系统

  • Everything (高级语言代码、机器代码) 都是状态机

计算机系统的状态机模型

  1. 状态

    • 内存、寄存器的数值
  2. 初始状态

    • 由系统设计者规定(CPU Reset)
  3. 状态迁移

    • 从PC取指令执行
  • 而编译器实现了两种状态机之间的翻译。

  • 无论何种状态机,在没有操作系统时,它们只能做纯粹的计算,甚至都不能把结果传递到程序之外

  • 而程序与操作系统沟通的唯一桥梁是系统调用 (例如 x86-64 的 syscall 指令)。

硬件视角的操作系统

  • 一句话:硬件根本不知道有没有操作系统,它只是个无情地执行指令的状态机

  • 这就涉及到计算机系统中的抽象,下层不需要知道上层怎么用

  • 硬件只干三件事情:执行指令,响应中断,输入输出

  • 那么此时操作系统其实就是一个普通的(二进制)程序

    • 接管了中断,I/O ...

    • 把应用程序"放"到CPU上运行


固件

  • Firmware存储在硬件设备中的一种特殊软件,直接嵌入到硬件芯片(如 ROM、EEPROM 或 Flash 存储器)中

  • Firmware 是硬件的“灵魂”:没有固件,硬件只是一堆无法工作的硅片和电路。但这里我们主要关注计算机主板上的firmware,也就是我们常说的BIOS/UEFI

    • BIOS(Basic Input/Output System)是传统 x86 电脑主板上的固件,负责开机自检、硬件初始化,并引导操作系统启动。

    • 新一代主板已用 UEFI(Unified Extensible Firmware Interface)取代传统 BIOS,但 UEFI 本质上仍是固件。


硬件与操作系统的桥梁

  1. 开机阶段:

    • 主板固件(BIOS/UEFI)检测 CPU、内存、硬盘等硬件是否正常。

    • 加载引导程序(如 GRUB),进而启动操作系统。

  2. 运行时:

    • 操作系统通过 Firmware 提供的接口(如 ACPI)控制电源管理、风扇转速等。
  3. 硬件抽象层:

    • Firmware 隐藏了硬件的具体细节(比如不同厂商的 SSD 控制器差异),操作系统只需调用统一接口。