加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

bootloader 学习

发布时间:2020-12-15 07:14:50 所属栏目:百科 来源:网络整理
导读:? ? ?Bootloader就是在操作系统内核运行之前运行的一段程序,相当于PC机上的BIOS。通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,一般为最终调用操作系统内核准备好正确的环境。系统加电或复位后,从

? ? ?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 空间中 为内核设置启动参数 调用内核

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读