Bootloader流程-Linux

Linux启动时,Bootloader负责传递参数、复制内核至内存。它通常分为Stage1和Stage2,Stage1用汇编初始化硬件,准备RAM,Stage2用C语言执行更复杂任务,如内存映射、读取Kernel。Stage2通过Trampoline小程序跳入main()执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bootloader流程简介


(通用的linux内核,启动时需要很多参数 ,这些参数必须通过Bootloader传递。而且内核一半是压缩存放在外存上的,从外存到内存的复制也是由Bootloader完成。从Bootloader的第二个功能就知道,Bootloader时不能与内核放在一起的。由于Bootloader的实现依赖于CPU的体系结构,因此大多数的Bootloader都分为Stage1和Stage2l辆大部分)
依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在Stage1中,而且通常用汇编语言来实现,以达到短小精悍的目的。而Stage2则通常用C语言来实现,这样可以实现复杂的功能,并且代码会具有更好的可读性和可移植性。
(1)Bootloader的Stage1通常包括以下步骤。
1:硬件设备初始化
2:为加载Bootloader的Stage2准备RAM空间
3:将Bootoader的Stage2复制到RAM空间中
4:设置好堆栈
5:跳转到Stage2的C入口点
(2)Bootloader的Stage2通常包括以下步骤。
1:初始化本阶段要使用到的硬件设备
2:检测系统内存映射(Memory Map)
3:将Kernel映像和根文件系统映像从Flash上读到RAM空间中
4:为内核设置启动参数
5:调用内核。

Stage1:汇编阶段

1:基本硬件初始化
(1)屏蔽所有中断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值