背景:
pc机中的引导加载程序由BIOS(本质是固化在设备上一段固件程序)和GRUB或LILO组成。BIOS在完成硬件检测和资源分配后,将硬盘中的引导程序读到内存中然后把控制权交给引导程序。引导程序的主要任务是将内核从flash读取到内存中,然后跳转到内核的入口地址区去运行,即启动操作系统。
什么是bootloader?
bootloader就是在操作系统运行之前的一段小程序,它负责初始化硬件设备、引导内核。
一、bootloader的启动流程
bootloader启动过程可以分为两阶段:stage1和stage2:
stage1通常步骤:
1、初始化硬件设备
2、为stage2准备内存空间
3、并将stage2复制到内存中
4、设置堆栈
5、跳转到stage2的C入口点
stage2通常步骤:
1、初始化本阶段要用到的硬件设备
2、将内核镜像和根文件系统镜像从flash上读到RAM中
3、调用内核
二、uboot源码结构
uboot下载地址:
ftp://ftp.denx.de/pub/u-boot/
uboot代码目录结构:
|