绪论¶
约 590 个字 预计阅读时间 2 分钟
不同视角下的操作系统
我们将从应用、硬件、数学三个视角下去理解现代的操作系统
应用视角的操作系统¶
- Everything (高级语言代码、机器代码) 都是状态机;
计算机系统的状态机模型
-
状态
- 内存、寄存器的数值
-
初始状态
- 由系统设计者规定(CPU Reset)
-
状态迁移
- 从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 本质上仍是固件。
-
硬件与操作系统的桥梁
-
开机阶段:
-
主板固件(BIOS/UEFI)检测 CPU、内存、硬盘等硬件是否正常。
-
加载引导程序(如 GRUB),进而启动操作系统。
-
-
运行时:
- 操作系统通过 Firmware 提供的接口(如 ACPI)控制电源管理、风扇转速等。
-
硬件抽象层:
- Firmware 隐藏了硬件的具体细节(比如不同厂商的 SSD 控制器差异),操作系统只需调用统一接口。