无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 4075|回复: 16

[讨论] 如何正确理解计算机启动过程?

  [复制链接]
发表于 2019-3-13 16:39:33 | 显示全部楼层 |阅读模式
本帖最后由 wang56889 于 2019-3-21 11:15 编辑

一直疑惑计算机启动操作系统过程到底是怎样的?不同的操作系统是不是也有区别?下面理解不知道对不对,求科普.

更新1(19/03/19):
1.MBR分区结构图
mbr.png

2.BIOS主板启动流程图
bios mbr.png
- 通电:按下计算机电源按钮,主板通电,重置CPU。
- 加载BIOS:固化在主板ROM芯片里的BIOS程序就会被CPU加载到内存运行。
- 读取COMS:BIOS程序自检(POST)完毕以后加载COMS芯片里保存的参数。通过COMS的参数, BIOS程序加载指定(启动顺序)磁盘的第一个扇区(即主引导记录MBR)到内存里运行。
- 加载MBR:MBR里不同的引导代码(BootLoader)引导操作系统流程略有不同,微软的BootLoader做法是加载分区表(DPT)中标记为活动标志的分区引导记录(PBR),PBR里的引导代码加载操作系统的引导文件到内存运行,例如 Windows 的 bootmgr。而Linux的BootLoader(如Gurb)则会分阶段加载,直接查找所有分区,加载第一个引导文件(如grldr)。
- 加载引导文件:当引导文件运行后,操作系统内核就被加载运行,完成从 BIOS 程序(准确的说是从MBR)中接手的引导流程。
注:MBR最早在1983年在IBM PC DOS 2.0中提出,显然MBR的定义与IBM以及微软有关(猜测),而Linux操作系统不存在活动分区概念(分区表里第一个1字节)。关于主分区(很久以前就是普通分区),扩展分区(后来发明的,用来容纳逻辑分区),逻辑分区(由于MBR分区表限制,发明了逻辑分区从而可以让分区数量超过了4个)这里不再赘述。

3.GPT分区结构图
gpt.png

4.UEFI主板启动流程(待商榷)
uefi gpt.png
UEFI启动流程大概如下:
- 开机,启动主板上的EFI系统(理解为简易的操作系统,内部包含了boot loader功能——成为启动管理器),会识别硬盘分区结构(MBR或GPT)
- 如果是MBR分区结构那么启动管理器直接查找第一个FAT分区里的efi可执行文件
- 如果是GPT分区结构,首先读取全局参数NVRAM里的efi可行文件路径,如果参数没有记录则去加载EFI属性的分区(即ESP分区)查找bootx64.efi(或bootia32.efi)可执行文件,如果没有EFI属性分区就去查找FAT分区里的efi可执行文件。
- efi可执行文件加载后会加载操作系统的引导文件,然后启动操作系统内核。
注:如果UEFI开启了BIOS兼容模式(即CSM)则会直接转到BIOS的启动流程,去加载硬盘第一扇区(即MBR),由MBR里的boot loader去启动操作系统 。
EFI可执行文件是UEFI规定的,由UEFI启动管理器加载。

5.启用UEFI 的条件
- 电脑主板支持UEFI(2010年后的主板基本都支持)。
- 操作系统支持UEFI(64位Windows基本都支持)
- 磁盘具有 GUID 分区表(GPT)。
- 磁盘分区表中必须有ESP分区(特殊标志的FAT分区,也叫EFI系统分区),该分区要作为第一个磁盘分区(进入系统会自动隐藏)。
- 可启动的efi文件,一般为\EFI\BOOT\BOOTx64.EFI (注:不同平台文件名可能不同)。

初稿:


BIOS(上)与UEFI(下)启动过程

BIOS(上)与UEFI(下)启动过程

个人理解的PC启动过程:不知道对不对
1.计算机通电,CPU初始化。
2.固化在主板ROM芯片里的BIOS程序就会被CPU加载到内存运行。
3.BIOS程序自检(POST)完毕以后加载COMS芯片里保存的参数。
4.通过COMS的参数, BIOS程序加载指定(启动顺序)磁盘的第一个扇区(即主引导记录MBR)到内存里运行。
通过运行MBR的引导代码(BootLoader),
5.A 微软的BootLoader找到分区表(DPT)中标记为活动标志的分区引导记录(PBR)被加载到内存。
PBR里的引导代码加载操作系统的引导文件到内存运行,例如 Windows 的 bootmgr。
5.B Linux的BootLoader(Grub)会分阶段运行(需要访问文件系统)加载引导文件。
6.当引导文件运行后,操作系统内核就被加载运行,完成从 BIOS 程序(准确的说是从MBR)中接手的引导流程。

注:Mac电脑(貌似在10.6tiger以后)使用EFI,有Windows多系统时部分系统版本采用混合分区(MBR+GPT)。

疑问:-----------------------------------------------
1.MBR到底是不是微软或IBM的专利(想当年微软购买QDOS卖给IBM后长期合作)?
2.BootLoader有很多种吗?如USB-HDD(+),USB-ZIP(+),USB-FDD,USB-CDROM,NTX.X,grub4dos,grub2,FBINST,PLoP Boot Manager。
3.是BIOS导致了这些混乱吗?
4.能不能谈谈Mac电脑分区结构更加混乱?
发表于 2019-3-13 17:00:12 | 显示全部楼层
本来标准中就没有关于分区的定义,BIOS只读取前面MBR,跟后面接的具体文件系统无关,以前有大神说过现在BIOS都为了更好兼容NTLDR或者bootmgr做了些不为人知的事情,才导致了引导其他系统出各种毛病

点评

是的,BIOS只加载MBR(MBR里的BootLoader如何启动电脑与BIOS没任何关系)。BIOS这种没有规范的事实标准缺点太多,也是UEFI产生的原因。  详情 回复 发表于 2019-3-14 09:47
回复

使用道具 举报

发表于 2019-3-14 06:31:22 | 显示全部楼层
应该是先自检吧,自检通过CPU才会工作

点评

亲,关注的重点很独特。不过你的说法也没错,通电时,cpu先重置平衡电压,自检后再初始化。  详情 回复 发表于 2019-3-14 09:50
回复

使用道具 举报

 楼主| 发表于 2019-3-14 09:47:49 | 显示全部楼层
rush 发表于 2019-3-13 17:00
本来标准中就没有关于分区的定义,BIOS只读取前面MBR,跟后面接的具体文件系统无关,以前有大神说过现在BIO ...

是的,BIOS只加载MBR(MBR里的BootLoader如何启动电脑与BIOS没任何关系)。BIOS这种没有规范的事实标准缺点太多,也是UEFI产生的原因。

点评

其实我更喜欢BIOS,uefi规定使用FAT文件系统作为引导分区就已经很无语了。BIOS规范纯粹就是被ntldr搅乱的。  详情 回复 发表于 2019-3-14 16:34
回复

使用道具 举报

 楼主| 发表于 2019-3-14 09:50:02 | 显示全部楼层
本帖最后由 wang56889 于 2019-3-14 12:06 编辑
JCDN 发表于 2019-3-14 06:31
应该是先自检吧,自检通过CPU才会工作



冯诺依曼现代计算机体系告诉我们,所有的指令与数据都是经过cpu处理的(可能后来有改进)。所以我的猜测是:bios里面的自检代码也需要cpu来运行,因此需要先初始化cpu。

点评

传统CPU不需要初始化,他复位以后会从一个地址执行程序,这个地址被硬件制定为BIOS存储器了  发表于 2019-3-14 16:36
回复

使用道具 举报

发表于 2019-3-14 16:34:59 | 显示全部楼层
wang56889 发表于 2019-3-14 09:47
是的,BIOS只加载MBR(MBR里的BootLoader如何启动电脑与BIOS没任何关系)。BIOS这种没有规范的事实标准缺点 ...

其实我更喜欢BIOS,uefi规定使用FAT文件系统作为引导分区就已经很无语了。BIOS规范纯粹就是被ntldr搅乱的。

点评

666  发表于 2019-3-16 09:20
回复

使用道具 举报

发表于 2019-3-14 20:19:19 | 显示全部楼层
一蛋双星     无忧   远景

点评

老铁, 666  详情 回复 发表于 2019-3-19 16:24
回复

使用道具 举报

 楼主| 发表于 2019-3-19 16:24:45 | 显示全部楼层
2012hfl 发表于 2019-3-14 20:19
一蛋双星     无忧   远景

老铁, 666
回复

使用道具 举报

发表于 2019-3-20 00:56:10 | 显示全部楼层
这个做的好,我的理解好像也是这样

点评

mac os引导也是这样的吗?  详情 回复 发表于 2019-3-22 09:46
回复

使用道具 举报

发表于 2019-3-20 08:56:28 | 显示全部楼层
要深入学习了
回复

使用道具 举报

 楼主| 发表于 2019-3-22 09:46:52 | 显示全部楼层
brook 发表于 2019-3-20 00:56
这个做的好,我的理解好像也是这样

mac os引导也是这样的吗?
回复

使用道具 举报

发表于 2021-3-13 15:30:48 | 显示全部楼层
学习学习 一直在用而不知道启动过程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-18 22:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表