将已有的知识和方法重新消化,为大家建立好 “台阶”,在有限的时间里迅速 赶上数十年来建立起的学科体系**。**

1. 硬件和软件的桥梁


1.1 CPU Reset

<aside> 📖 Bare-metal 与程序员的约定

为了让计算机能运行任何我们的程序,一定存在软件/硬件的约定

<aside> 📖 x86 Family: CPU Reset

寄存器会有初始状态

Untitled

1.2 Firmware

在执行 CPU Reset 后:

  1. 从 PC(CS:IP) 处取指、译码、执行
  2. 从 Firmware处开始执行,0x0000fff0 一般是向 Firmware 的 jmp 指令

Firmware ⇒ 都是主板 / 主板上外插设备的软件抽象

Legacy BIOS (Basic I/O System)

<aside> 📖 约定

Firmware 必须提供机制,将用户数据载入内存

Legacy BIOS 把第一个可引导设备的第一个扇区 (512Bytes的Master Boot Record, MBR) 加载到物理内存的 7c00 位置

UEFI (Unified Extensible Firmware Interface)

<aside> 📖 UEFI上的操作系统加载

标准化的加载流程

更好的程序支持

2. Abstract Machine


make -nB \\
  | grep -ve '^\\(\\#\\|echo\\|mkdir\\|make\\)' \\
  | sed "s#$AM_HOME#\\$AM_HOME#g" \\
  | sed "s#$PWD#.#g" \\
  | vim -
%s/ /\\r /g