bootloader 学习

来源:互联网 发布:美国虚拟电话号码软件 编辑:程序博客网 时间:2024/05/22 03:20

     Bootloader就是在操作系统内核运行之前运行的一段程序,相当于PC机上的BIOS。通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,一般为最终调用操作系统内核准备好正确的环境。系统加电或复位后,从地址0x0000 0000处取它的第一条指令,程序完成初始化工作。

   PC 机中的引导加载程序

两部分组成
BIOS(其本质就是一段固件程序)
位于硬盘 MBR 中的 OS Boot Loader(如LILO 和 GRUB 等)
流程
BIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的 Boot Loader 读到系统的 RAM 中,然后将控制权交给 OS Boot Loader
Boot Loader 的主要运行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入口点去运行,即开始启动操作系统。

多阶段的 Boot Loader
      提供更为复杂的功能,以及更好的可移植性
从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程
      启动过程可以分为 stage 1和 stage 2 两部分 
BOOTLOADER一般分为2部分
             汇编部分执行简单的硬件初始化
      C语言部分负责复制数据,设置启动参数,串口通信等功能
BOOTLOADER的生命周期
1. 初始化硬件,如设置UART(至少设置一个),检测存储器等
2. 设置启动参数,告诉内核硬件的信息,如用哪个启动界面,波特率.
3. 跳转到操作系统的首地址.
4. 消亡 


BootLoader 与主机之间进行文件传输所用的通信设备及协议 

通常目标机上的 Boot Loader 通过串口与主机之间进行文件传输
传输协议
通常是 xmodem/ymodem/zmodem 协议中的一种
可通过以太网连接并借助 TFTP 协议来下载文件
串口传输的速度是有限的
主机提供 TFTP 服务


通常目标机上的 Boot Loader 通过串口与主机之间进行文件传输
传输协议
通常是 xmodem/ymodem/zmodem 协议中的一种
可通过以太网连接并借助 TFTP 协议来下载文件
串口传输的速度是有限的
主机提供 TFTP 服务

Boot Loader 的 stage2 通常包括以下步骤(简单介绍)
初始化本阶段要使用到的硬件设备
检测系统内存映射(memory map)
将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中
为内核设置启动参数
调用内核





原创粉丝点击