从BIOS到bootloader

BIOS时期

通过指向ROM的指令,执行ROM中的初始化工作代码,BIOS进行初始化工作;

首先检查硬件配置,然后建立中断向量表和中断服务程序。

Bootloader 时期

 

 

Grud2 Grand Unified Bootloader Version2

通过 grub2-mkconfig -o /boot/grub2/grub.cfg 来配置系统启动的选项

使用 grub2-install /dev/sda,可以将启动程序安装到相应的位置

grub2首先要安装的是boot.img ;

BIOS 完成任务后,会将 boot.img 从硬盘加载到内存中的 0x7c00 来运行

boot.img 先加载的是 core.img 的第一个扇区。如果从硬盘启动的话,这个扇区里面是 diskboot.img,对应的代码是 diskboot.S;

diskboot.img 的任务就是将 core.img 的其他部分加载进来,先是解压缩程序 lzma_decompress.img,再往下是 kernel.img,最后是各个模块 module 对应的映像。

lzma_decompress.img 做了一个重要的决定,就是调用 real_to_prot,切换到保护模式,这样就能在更大的寻址空间里面,加载更多的东西。

切换保护模式的函数 DATA32 call real_to_prot 会打开 Gate A20,也就是第 21 根地址线的控制线

然后对压缩过的 kernel.img 进行解压缩,跳转到 kernel.img 开始运行。

grub_load_config() 开始解析grub.conf中的配置信息;

如果正常启动grub_command_execute("normal",0,0),会调用grub_normal_execute()函数,在这个函数里grub_show_menu()会显示操作系统列表。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值