简单地说,bootloader就是在操作系统运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便于最终调用操作系统做好准备。
Bootloader的启动流程,一般分为两个阶段:
Stage1:
硬件设备初始化(CPU内部的一些硬件)
为加载bootloader的stage2准备RAM空间
拷贝bootloader的stage2到RAM空间中
设置好堆栈
跳转到stage2的C入口点(C语言运行需要环境)
Stage2:
初始化本阶段要使用到的硬件设备(板载的硬件,如串口,网卡等)
将内核映像和根文件系统映像从flash上读到RAM中
调用内核