Linux内核启动-从BIOS到Bootloader

Linux内核启动-从BIOS到Bootloader,第1张

名词解释

BIOS

Basic input and output system
ROMRead only memory
RAMRandom access memory 启动流程 BIOS 主板上电。将BIOS中的命令映射到内存0XF0000到0XFFFFF。CPU中CS寄存器值设为0XFFFF,IP寄存器设为0,所以物理地址为0XFFFF0,正好是BIOS占用的部分。运行指向的jmp指令跳到BIOS中的硬件检查部分然后继续执行。运行BOIS建立中断向量表,注册各种IO中断,同时将内容存到视频显示RAM输出到屏幕。
 内存使用示意
   - ROM->BIOS
   - 存储器拓展区RAM
   - 视频显示RAM
   - 普通内存
   - BIOS数据中断服务程序
   - BIOS中断向量表
启动流程 Bootloader BIOS结束,查找启动盘。 启动盘判定标准:第一个扇区512字节,以0XAA55结束。 运行启动盘内第一个扇区内的boot.img 启动盘内的代码是Linux工具GRUB2(Grand Unified Bootloader Version 2)放的。boot.img相关代码boot.S。 boot.S相当于一个指路牌,运行指向内核镜像core.img。 core.img 同样是GRUB2放的。core.img 不是只Linux内核,是指grub内核。core.img分三个部分。 diskboot.img。 相关代码diskboot.S。用来解压/调用起 lzma_decompress.img。 lzma_decompress.img。 因为实模式下内存只有1M,所以在此切换到保护模式。用来解压/调用起kernel.img。保护模式下启用分段/分页 分段更方便进程管理分页是可选的(当然现在大部分都是段页式),是为了让内存中更少的段冗余。还有额外的好处:内存可以虚拟化啦,在TLB转换之前一直指向的都是虚拟地址了。 kernel.img grub内核映像。选择可调用的内核,内核要从这里启动!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/993307.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-21
下一篇2022-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存