BIOS时期

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

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

从BIOS到bootloader

Bootloader 时期

 

 

从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()会显示操作系统列表。

 

 

相关文章:

  • 2021-07-25
  • 2021-04-24
  • 2022-12-23
  • 2022-12-23
  • 2021-11-28
  • 2022-01-03
  • 2022-03-02
猜你喜欢
  • 2021-09-17
  • 2022-12-23
  • 2021-08-19
  • 2021-08-04
  • 2021-08-24
  • 2021-12-11
  • 2022-12-23
相关资源
相似解决方案