三. Boot Loader 的基本架构
Boot Loader 的启动过程分为单阶段(Single Stage)和多阶段(Multi-Stage)两种,其中,多阶段的 Boot Loader能提供更为复杂的功能,以及具有更好的可移植性。
Boot Loader的生命周期如下:
- 初始化硬件,如设置UART(至少设置一个),检测存储器等
- 设置启动参数,告诉内核硬件的信息,如用哪个启动界面,波特率.
- 跳转到操作系统的首地址.
- 消亡
从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程,其启动过程可以分为 stage 1和 stage 2 两部分 :
- stage 1:主要语言:汇编。实现:简单的硬件初始化。
- stage 2:主要语言:C语言 。实现:复制数据、设置启动参数、串口通信等功能。
Boot Loader 的主要任务:
如果我们假定内核映像与根文件系统映像都被加载到 RAM 中运行的话:
- stage1 通常包括以下步骤:
硬件设备初始化
为加载 Boot Loader 的 stage2 准备