Windows作为最流行的个人计算机操作系统,成为了我们学习、工作和生活的一部分。从计算机通电到Windows启动完成,这具体是怎样的过程?跟着小编一起去探索吧。

Windows引导过程

Windows作为最流行的个人计算机操作系统,成为了我们学习、工作和生活的一部分。平时使用计算机,我们都得先按下电源键然后等待Windows启动,初始化,进入欢迎页面,启动完成。会不会觉得整个过程比较神奇,想一探究竟?其实整个启动过程经历了多个阶段,接下来小编将一一讲述每一个阶段,揭开它们神秘的面纱。

通电后CPU首先执行的是主板引导程序,主板引导程序可分为BIOS和UEFI。BIOS是最早的方案,搭配MBR分区使用,BIOS逐渐被UEFI代替,UEFI一般搭配GPT分区使用,所以引导过程会有两种情况:

1.BIOS + MBR

2.UEFI + GPT

这两种情况都会分别介绍。

UEFI

UEFI(Unified Extensible Firmware Interface)以灵活扩展、引导更省时等特性,成为了BIOS的替代方案,新推出的主板和操作系统基本上默认使用UEFI引导,小编Win10系统采用的就是UEFI引导。

如何查看自己的计算机是什么方式引导的?

在“此电脑”上右键选择“管理”,弹出“计算机管理”选择“磁盘管理”,如果能找到一个“EFI系统分区”,那么就是UEFI引导方式了。

UEFI一般搭配GPT分区技术使用,虽然也可以搭配MBR,但是由于MBR磁盘容量最大只能是2TB,在磁盘容量越来越大的今天略显不足,所以默认都是使用GPT分区技术。GPT可以做到:

1.支持容量超过2TB的磁盘;

2.使用16字节的GUID标识分区类型,不容易冲突;

3.理论上分区数目不限制(受限于Windows只能最多识别128个分区);

4.分区容量几乎没有限制,因为使用64位整数,64位整数最大值为2^64 - 1,数值非常大;

5.提供CRC检验,检测数据损坏;

6.备份分区表,提高可靠性。

引导流程

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系统分区的一些文件:

BIOS

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

引导流程

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代码(第二个扇区中);

6.开始寻找bootmgr.exe,找不到则寻找ntldr.exe(win vista之前的系统);

7.CPU加载并跳转到bootmgr.exe处执行,读取BCD文件,如果含有多个系统,则列举显示供用户选择;

8.选择的是Windows则读取winload.exe文件到内存中,CPU跳转到winload.exe处执行,读取文件\windows\bootstat.dat,,有需要则显示引导菜单,比如安全引导等等;接着加载内核程序Ntoskrnl.exe,相关辅助HAL.dll、CI.dll、PSSHED.dll、BootVID.dll,把CPU执行权交给内核程序;

9.内核程序执行系统初始化。

可见BIOS引导更多的是通过MBR去引导系统,UEFI则主导整个引导过程。

结束语

在启动计算机的过程中,难免会遇到各种各样的问题,比如蓝屏、黑屏等等,掌握了其启动的流程,将有利于我们对各类故障进行排查和修复。

Windows操作系统引导过程相关推荐

  1. windows 7 引导过程概述

    windows 7 引导过程概述 原文地址:http://blog.csdn.net/richion/article/details/4414189 Window 7 的核心版本号是 NT6.1 ,和 ...

  2. Windows NT引导过程源代码分析

    Windows 引导过程 Windows 内核中的各个组件和各种机制在起作用以前,必须首先被初始化.此初始化工作是在系统引导时完成的.当用户打开计算机的电源开关时,计算机便开始运行,但操作系统并不立即 ...

  3. Windows系统启动引导过程

    Windows系统引导过程以及多系统引导原理- 系统启动的两种引导方式 计算机系统引导方式主要有两种:一种是传统的BIOS模式,另一种是新型UEFI(全称统一的可扩展固件接口)模式.UEFI启动也可以 ...

  4. Linux——操作系统引导过程

    引导过程 一.Linux操作系统引导过程 1.1 引导过程讲解 1.2 init进程(CentOS6) 1.3 Systemd进程(CentOS7) 1.4 Systemd单元 1.5 运行级别对应的 ...

  5. windows操作系统的引导过程描述

    一般情况系统的引导过程是这样的: 1.电源自检程序开始运行 2.主引导记录被装入内存,并且程序开始执行 3.活动分区的引导扇区被装入内存 4.NTLDR从引导扇区被装入并初始化 5.将处理器的实模式改 ...

  6. linux操作系统的引导过程,深入了解linux操作系统引导过程详解

    Linux操作系统的引导过程:开机自检.mbr引导.grub菜单.加载linux内核.init进程初始化. 1.开机自检,检测硬件后根据启动顺序将控制权交给本机硬盘 2.mbr引导,根据硬盘的主引导记 ...

  7. 《国产操作系统之银河麒麟》银河麒麟服务器操作系统引导过程

    目录 系统引导过程 01. 系统启动流程概述 系统启动总流程 第一阶段:BIOS初始化 ​编辑 第二阶段 GRUB2启动引导 ​编辑 第三阶段 内核引导 ​编辑 第四阶段 systemd进程 02. ...

  8. Linux操作系统引导过程

    1.引导过程总览 1.开机自检 服务器主机开机以后,将根据主板BIOS中的设置对CPU (Central Processing Unit, 中央处理器).内存.显卡.键盘等设备进行初步检测,检测成功后 ...

  9. 操作系统引导过程探究

    操作系统引导探究 Version 0.02修改记录: 对与GDT有关的段描述符方面的描述进行了修订,更正了上一个版本中出现的一些错误,增加了一些描述,使其更完善. 与上个版本中不同的地方均用红色标记. ...

最新文章

  1. 21HTML5新特性
  2. xpath的数据和节点类型以及XPath中节点匹配的基本方法
  3. zabbix3.2+Grafana4.0实现可视化监控图形
  4. [android] 解决DatePickerDialog和TimePickerDialog控件取消按钮问题
  5. 计算机操作系统原理精品课程,计算机操作系统原理.ppt
  6. Linux系统编程3:基础篇之详解Linux软件包管理器yum
  7. python之禅中文原文_Python之禅 - osc_ns45oss7的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. KDDCUP CTR预测比赛总结
  9. Windows Performance Monitor 学习笔记
  10. 抖音记事本代码html,抖音使用教程 抖音表白代码使用方法介绍
  11. 传智播客数据绑定和数据库开发基础(第四季)-杨中科
  12. 数据库事务(Transaction)详解
  13. Pandas高级教程之:自定义选项
  14. windows10 更新NVIDIA 显卡驱动
  15. 键盘记录工具(支持中文)
  16. 具体分析contrex-A9的汇编代码__switch_to(进程切换)
  17. Android ExpandableListView 使用实例
  18. 云存储字体测试(字体链接7小时有效)
  19. x200 xp 驱动下载
  20. 计算机等级考试心得体会,计算机等级考试心得体会(2)

热门文章

  1. 大整数乘法---C语言实现
  2. 仿个人税务 app html5_国税总局:有些假个税APP蹭热点,请使用正版下载
  3. 一、电商系统演进过程
  4. nginx发布html网站,nginx发布静态网页(示例代码)
  5. 破解WindowsXP的密码
  6. 单行省略号、多行省略号
  7. 门户网站还有存在的意义吗?
  8. php的exce函数删除,trim函数的作用是删除文本的什么
  9. 【基于uml的旅游管理系统】
  10. 玩转各种Web浏览器——关于几款流行浏览器的测试报告