windows系统的基本操作 Windows操作系统引导过程

Windows引导过程
Windows 作为最流行的个人计算机操作系统,成为了我们学习、工作和生活的一部分 。平时使用计算机,我们都得先按下电源键然后等待 Windows 启动,初始化,进入欢迎页面,启动完成 。会不会觉得整个过程比较神奇,想一探究竟?其实整个启动过程经历了多个阶段,接下来小编将一一讲述每一个阶段,揭开它们神秘的面纱 。
通电后 CPU 首先执行的是主板引导程序,主板引导程序可分为 BIOS 和 UEFI 。BIOS 是最早的方案,搭配 MBR 分区使用,BIOS 逐渐被 UEFI 代替,UEFI 一般搭配 GPT 分区使用,所以引导过程会有两种情况:

  • BIOS + MBR
  • UEFI + GPT
这两种情况都会分别介绍 。
【windows系统的基本操作 Windows操作系统引导过程】UEFI
UEFI(Unified Extensible Firmware Interface)以灵活扩展、引导更省时等特性,成为了 BIOS 的替代方案,新推出的主板和操作系统基本上默认使用 UEFI 引导,小编 Win10 系统采用的就是 UEFI 引导 。
如何查看自己的计算机是什么方式引导的?
在“此电脑”上右键选择“管理”,弹出“计算机管理”选择“磁盘管理”,如果能找到一个“EFI 系统分区”,那么就是 UEFI 引导方式了 。
windows系统的基本操作 Windows操作系统引导过程

文章插图
UEFI 一般搭配 GPT 分区技术使用,虽然也可以搭配 MBR,但是由于 MBR 磁盘容量最大只能是 2TB,在磁盘容量越来越大的今天略显不足,所以默认都是使用 GPT 分区技术 。GPT 可以做到:
  • 支持容量超过 2TB 的磁盘;
  • 使用 16 字节的 GUID 标识分区类型,不容易冲突;
  • 理论上分区数目不限制(受限于 Windows 只能最多识别 128 个分区);
  • 分区容量几乎没有限制,因为使用 64 位整数,64 位整数最大值为 2^64 – 1,数值非常大;
  • 提供 CRC 检验,检测数据损坏;
  • 备份分区表,提高可靠性 。
引导流程
windows系统的基本操作 Windows操作系统引导过程

文章插图
1.按下电源键,电源向主板以及其它设备供电,刚开始电压不稳,主板会持续发送 RESET 信号给 CPU,CPU 执行初始化 。当电压稳定后,主板停止发送 RESET 信号,CPU 开始执行指令;
2.CPU 读取 UEFI 指令,执行 UEFI 初始化,执行其它设备的初始化;
3.查找 EFI 分区,EFI 分区不需要一定是第一个分区;
4.加载\\EFI\\Boot\\bootx64.efi,在安装 Windows 时实际上会使用\\EFI\\Microsoft\\Boot\\bootmgfw.efi 的内容替换到\\EFI\\Boot\\bootx64.efi,所以\\EFI\\Boot\\bootx64.efi 其实就是\\EFI\\Microsoft\\Boot\\bootmgfw.efi;
5.bootmgfw.efi 会读取 BCD 文件,BCD 是一个数据库文件,如果包含多个系统,信息会包含在 BCD 中,通过显示一个系统列表供用户选择;
6.BCD 中包含每个系统的引导文件的路径,Windows 的是\\Windows\\System32\\winload.efi,加载到内存中并执行;
7.winload.efi 读取\\Windows\\bootstat.dat 文件,有需要则显示引导菜单,比如安全引导等等;接着加载内核程序 Ntoskrnl.exe,相关辅助 HAL.dll、CI.dll、PSSHED.dll、BootVID.dll,把 CPU 执行权交给内核程序;
8.内核程序执行系统初始化 。
通过上面的流程可知道,引导相关的文件都存放在 EFI 系统分区中,下图是小编 win10 的 EFI 系统分区的一些文件:
windows系统的基本操作 Windows操作系统引导过程

文章插图
BIOS
BIOS(Basic Input Output System)是最早的引导方案并使用了相当长的一段时间,所以在 Win8、Win7、WinXP 以及更早的版本都能找到 BIOS 的引导存在 。BIOS 只支持 MBR 分区技术,所以 GPT 并不适合 BIOS 。
引导流程
windows系统的基本操作 Windows操作系统引导过程

文章插图
1.上电并稳定后,CPU 执行地址 0xFFFF0h 处指令,此处为 BIOS 程序;
2.BIOS 进行硬件自检,没有问题后加载硬盘的第一个扇区到内存 0x7c00h 处,第一个扇区为 MBR(Master Boot Record),MBR 包含执行程序和分区表;
3.CPU 开始执行 MBR 程序,查找第一个活动分区,把活动分区的第一个扇区加载到内存中,活动分区第一个扇区为 PBR(Partition Boot Record);
4.CPU 开始执行 PBR,第一个指令就是跳过 BPB(BIOS Parameter Block)到可执行代码处;BPB 包含比较多参数,有族的大小、MFT 记录大小、MFT 位置等,用于读取 NTFS 文件;
5.PBR 读取 VBR(Volume BootRecord,占用分区开始的 16 扇区)剩余的 15 扇区到内存中;接着 CPU 跳转到 0x07C0:027A 处,执行 BOOTMGR 代码(第二个扇区中);