https://jyywiki.cn/OS/2023/build/lect3.ipynb
回顾:计算机硬件
计算机硬件 = 数字电路
基本构件:wire, reg, NAND
程序是 “严格的数学对象”
不仅是程序,整个计算机系统也是一个状态机
- 状态:内存和寄存器数值
- 初始状态:手册规定 (CPU Reset)
- 状态迁移
- 任意选择一个处理器 cpu
- 响应处理器外部中断
- 从 cpu.PC 取指令执行
硬件与程序员的约定
Bare-metal 与厂商的约定
- CPU Reset 后的状态 (寄存器值)
- 厂商自由处理这个地址上的值
- Memory-mapped I/O
厂商为操作系统开发者提供 Firmware
- 管理硬件和系统配置
- 把存储设备上的代码加载到内存
- 例如存储介质上的第二级 loader (加载器)
- 或者直接加载操作系统 (嵌入式系统)
x86 Family: CPU Reset
intel-cpu-reset
- 寄存器会有确定的初始状态
EIP = 0x0000fff0
CR0 = 0x60000010
EFLAGS = 0x00000002
- TFM (5,000 页+)
- 最需要的 Volume 3A 只有 ~400 页 (我们更需要 AI)