计算机的启动过程

计算机的启动过程

首先BIOS是什么?

  • BIOS是一个程序, 这个程序是写死到主板上面的一个存储芯片中, 这个存储芯片在没有通电时也能够记录数据, 这就是只读存储器(Read Only Memory, ROM).

  • 但由于电脑的发展,BIOS程序代码也需要适度修改,所以现在的BIOS都是写入类似闪存或者EEPROM中。

  • BIOS掌握系统硬件的详细信息和启动设备的选择.

早期的BIOS搭配MBR的启动过程

  • 按下电源键, 计算机首先会读取BIOS程序.

  • BIOS程序首先会进行硬件自检, 即检查计算机硬件是否满足运行的基本条件.

  • 硬件自检完成后, BIOS把控制权转交给下一阶段的启动程序。

这时,BIOS需要知道,“下一阶段的启动程序"具体存放在哪一个设备。也就是说,BIOS需要有一个外部储存设备的排序,排在前面的设备就是优先转交控制权的设备。这种排序叫做"启动顺序”(Boot Sequence)。

打开BIOS的操作界面,里面有一项就是"设定启动顺序"。

  • BIOS按照"启动顺序",把控制权转交给排在第一位的储存设备。

  • 这时,计算机读取该设备的第一个扇区,也就是读取最前面的512个字节。如果这512个字节的最后两个字节是0x55和0xAA,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,控制权于是被转交给"启动顺序"中的下一个设备。

  • 早期Linux为了兼容Windows的磁盘, 使用的是支持Windows的MBR(Master Boot Record, 主引导记录)的方式来处理启动引导程序和分区表. 而启动引导程序记录区和分区表都放在磁盘的第一个扇区. 所以第一个扇区的512个字节会有这三个东西:

    • 主引导记录(MBR): 可以安装启动引导程序的地方, 有446个字节
    • 分区表: 记录整块硬盘分区的状态, 有64个字节
    • 主引导记录签名(0x55和0xAA): 2个字节
  • 加载MBR中的启动引导程序, 启动引导程序(boot loader)的目的是加载(load)内核文件, 由于启动引导程序是操作系统在安装的时候所提供的, 所以它会认识硬盘内的文件系统格式, 因此就能够读取内核文件, 然后内核文件开始启动操作系统.

  • 如果分区表为GPT格式的话, BIOS也能够从LBA0的MBR兼容区块读取第一阶段的启动引导程序代码, 如果你的启动引导程序支持GPT的话, 那么BIOS同样可以读取到正确的操作系统内核.

  • 启动引导程序(Boot loader)的主要任务:

    • 提供选项: 用户可以选择不同的启动选项, 这也是多重引导的重要功能
    • 加载内核文件: 直接指向可使用的程序区段来启动操作系统
    • 转交其他启动引导程序: 将启动管理功能转交给其他启动引导程序负责(启动引导程序除了可以安装在MBR之外, 还可以安装在每个分区的启动扇区(boot sector))

新的UEFI搭配GPT的启动过程

  • 因为BIOS其实不懂GPT, 还要通过GPT提供兼容模式才能够读写这个磁盘设备, 而且BIOS仅是16位的程序与现阶段的操作系统接轨方面有点弱, 所以就有了UEFI的产生

  • UEFI主要是想要取代BIOS这个固件接口

  • 与BIOS相比,UEFI使用模块化理念,它可以加载ESP分区中的EFI应用程序和EFI驱动程序,支持安全启动、GUI等新功能. 只需要把操作系统的引导程序做成一个EFI应用程序就可以使用UEFI加载引导了,如果存在多个操作系统,只需要在UEFI引导界面选择相应的程序就行了。

UEFI的启动流程

  • 首先系统开机,随后UEFI 固件被加载,并由它初始化启动要用的硬件。随后启动UEFI引导管理器,它将通过NVRAM中定义的配置决定如何加载UEFI驱动和UEFI可执行文件。已启动的UEFI应用还可以启动其他应用比如bootloader或者启动内核及initramfs,我们只要把操作系统的bootloader做成一个EFI可执行文件,放入EFI分区对应的目录就可以使用UEFI读取启动了。

参考资料 :

  • <<鸟哥的Linux私房菜>>

  • 网络博客

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值