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 空间中
为内核设置启动参数
调用内核
- bootloader 学习
- BootLoader学习
- WinCE Bootloader学习笔记之Bootloader框架
- 嵌入式 bootloader学习
- 6410 bootloader stepstone学习
- BootLoader 学习分析1
- bootloader项目学习笔记
- Bootloader学习分析
- Bootloader及uboot学习
- 如何学习嵌入式bootloader
- Bootloader学习(一)
- Bootloader学习(二)
- Bootloader学习一
- Bootloader学习笔记
- winCE之bootloader的学习
- BootLoader 之U-Boot学习.
- BootLoader学习笔记(1)
- Bootloader VIVI学习(1)
- 性能测试工具之研究http://www.51testing.com/html/52/143.html
- C 程序,写运行结果,考察多态
- HDU 1222 欧几里德公式扩展
- 黑马程序员____Arrays类
- ubuntu开机自动设置屏幕亮度
- bootloader 学习
- Observer模式在J2EE中的实现
- The Road Not Taken (zz)
- gdb 使用
- 浅议回调函数
- set与list
- Java Annotation学习笔记
- 星际转移问题
- lucene 索引