BIOS和Bootloader的区别

本文探讨了BIOS和Bootloader作为系统启动程序的角色和功能差异。BIOS主要负责硬件初始化,而Bootloader专为启动操作系统设计。文章还讨论了两者在中断矢量定位上的不同,BIOS倾向于高端地址,而Bootloader遵循uClinux习惯使用低端地址。

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

        BIOS和Bootloader它们都是有基本的初始化系统,USB下载和硬件测试等功能的系统启动程序。不同之处在于中断矢量的定位,由于 bootloader要启动uClinux,因此必须按照uClinux的习惯将中断矢量放在SDRAM的低端地址(0xC000000),BIOS则按照我们通常的习惯把中断矢量放到高端地址(0xC7FF000)。因此,在BIOS下调试下载的程序的ro-base地址都必须设定在 0xC000000,而bootloader下调试下载程序都设定在在0xC008000,因为前面0x8000空间内放置了中断矢量、跳转程序等内容。

       所有的SDT实例都是按照BIOS的中断矢量要求来写的,因此我们说,只有在板子上固化了BIOS时,SDT实例才能够正常运行。所有的ADS实例都是按照Bootloader的中断矢量要求来写的,因此说在板子上固化Bootloader才能够正常运行。

BIOS 是硬件固化的自举程序,初始化硬件工作状态为主,BOOTLOADER 是为了启动系统而设计的载入程序。

其实 BOOTLOADER 的工作应该由 BIOS 来完成,不过因为各种原因,这两个部分独立出来可以获得更好的自由度。

在很多专用设备上,很多就只有 Bootloader ,没有 BIOS 。
比如手机。

MAC 机,他就没有 BIOS ,改为了 EFI ,这个我记得含有 Bootloader 的功能。不过因为系统的不同,启动这个系统需要的步骤也不同,所以现在取消 bootloader 很难。
不过 BIOS 反而成了一个可以被 Bootloader 替代的东西
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值