系统开机启动

evander-2018 2019-08-21 10:49:59
系统开机BIOS为加载硬盘驱动为什么能读取MBR呢?高手能帮忙解惑下,感谢!
...全文
262 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zarelaky 2019-09-11
  • 打赏
  • 举报
回复
一般(非UEFI方式)系统启动过程是按照 ,
BIOS-> BootLoader(GRUB,LILO,uboot等)->KERNEL->initramfs->rootfs,这个流程进行的
BIOS,BootLoader,KERNEL,各个部分功能相对独立,也就是说,同一个设备在BIOS中能用,Bootloader中如果没有支持的代码BootLoader就不能用,BootLoader和KERNEL也是同样的关系,KERNEL之后的阶段CPU都基本都处在非特权模式下利用KERNEL提供的系统接口运行程序

在BIOS自检完成后读取磁盘第一个扇区数据(包含启动代码和分区表)到0:7c00H并跳转执行到这个地址,然后由启动代码接管系统,启动代码很小,功能有限,一般负责继续加载其他引导代码、解析分区表,查找支持启动的系统分区,加载系统KERNEL,按照配置参数启动系统KERNEL,内核中存在预先编译到内核的一些驱动程序,因此在内核初始化系统时,会逐步启动这些驱动,当驱动初始化完成后,根据驱动支持的设备查找initramfs或rootfs,
如果查找不到,就会启动失败。
initramfs是为了避免编进kernel的驱动过多体积过大而引入的,它会处理一些驱动insmod工作完成一些在进入rootfs执行的准备工作
evander-2018 2019-08-28
  • 打赏
  • 举报
回复
那鸟哥私房菜里说的更换硬盘类型影响开机流程是有问题吗?
wisewoman 2019-08-22
  • 打赏
  • 举报
回复
操作系统不认识啊
evander-2018 2019-08-21
  • 打赏
  • 举报
回复
引用 1 楼 wisewoman 的回复:
.读取主引导记录(MBR)。当BIOS检查到硬件正常并与 CMOS 中的设置相符后,按照 CMOS 中对启动设备的设置顺序检测可用的启动设备。BIOS将相应启动设备的第一个扇区(也就是MBR扇区)读入内存地址为0000:7C00H 处。

加载MBR,那就是设备已经识别硬盘了,为什么还要加载硬盘的驱动呢?
wisewoman 2019-08-21
  • 打赏
  • 举报
回复
.读取主引导记录(MBR)。当BIOS检查到硬件正常并与 CMOS 中的设置相符后,按照 CMOS 中对启动设备的设置顺序检测可用的启动设备。BIOS将相应启动设备的第一个扇区(也就是MBR扇区)读入内存地址为0000:7C00H 处。

1,319

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧