文章目录
  1. 1. 阶段一: BIOS
  2. 2. 阶段二: 主引导记录
    1. 2.1. 主引导记录结构
    2. 2.2. 分区表
  3. 3. 阶段三:硬盘启动
    1. 3.1. 情况一:卷引导记录
    2. 3.2. 情况二:扩展分区和逻辑分区
    3. 3.3. 情况三:启动管理器(多操作系统常见形式)
  4. 4. 阶段四:OS

计算机启动分为四个阶段

阶段一: BIOS

开机程序被刷入ROM(Read Only Memory),计算机通电后开始读取ROM,ROM中的开机程序叫BIOS(Basic Input/Output System,基本输出输入系统)

  • 硬件自检
    BOIS程序首先检查,计算机硬件是否满足运行的基本条件,即“硬件自检”(Power-On-Self-Test,POST)。
    如果硬件正常,屏幕显示CPU、内存、硬盘等信息;否则,主板会发出不同含义的蜂鸣,启动终止。

  • 之后,寻找启动程序。此时,BIOS要知道外部存储设备的排序(比如CD、USB设备或者硬盘),即“启动顺序”。

阶段二: 主引导记录

计算机读取上面启动程序所在位置的设备,读取该设备第一个扇区(最前面的512字节),若该扇区最后两个字节是0x55和0xAA,表明该设备可用于启动(即为主引导记录),否则,寻找启动顺序的下一个设备。

上述的512字节,称为“主引导记录”(Master Boot Record,MBR)

主引导记录结构

  • 作用:告诉计算机到硬盘的哪个位置寻找OS。
  • 组成:

    (1)1~446字节:调用OS的机器码
    (2)447~510字节:分区表(Partition Table,用于将硬盘分成若干个区)
    (3)511~512字节:主引导记录签名(0x55和0xAA)
    

分区表

分区表的长度只有64个字节,里面又分成4项,每项16个字节。故一个硬盘最多只能分4个一级分区,也就是所谓的“主分区”。

每个主分区的16个字节,由6个部分构成:

(1)字节1:如果是0x80,意味着该分区是<font color = "red">激活分区</font>,4个分区里只能有一个是激活的
(2)字节2~4:主分区第一个扇区的物理位置(柱面、磁头、扇区号等)
(3)字节5:主分区类型
(4)字节6~8:主分区最后一个扇区的物理位置
(5)字节9~12:改主分区的第一个扇区的逻辑位置
(6)字节13~16:主分区的扇区总数(决定了这个主分区的长度,一个主分区的扇区总数最大不超过2^32)

阶段三:硬盘启动

该阶段,计算机的控制权交给硬盘的某个分区。分成3中情况:

情况一:卷引导记录

  • 概念:

    计算机读取激活分区的第一个扇区(即“卷引导记录”,Volume boot record,VBR)。

  • 作用:

    告诉计算机OS在这个分区里的位置,之后,计算机开始加载OS。

情况二:扩展分区和逻辑分区

随着硬盘逐渐增大,4个主分区已经不够了,需更多的分区。但是分区表只有4项,故又规定:有且仅有一个区可以被定义为“扩展分区”(Extended partition)

扩展分区里面又分成多个区,这些区叫做“逻辑分区”。

计算机先读取扩展分区的第一个扇区(也叫作“扩展引导记录”(Extended boot record,EBR))。它里面包含一张64字节的分区表,但是,最多只有2项(也就是2个逻辑分区)

计算机接着读取第二个逻辑分区的第一个扇区,再从里面的分区表中找到第三个逻辑分区的位置,以此类推,直到某个逻辑分区的分区表只包含它自身为止(即只有一个分区项)。因此,扩展分区可以包含无数个逻辑分区。

但是,似乎很少通过这种方式启动操作系统。如果操作系统确实安装在扩展分区,一般采用下一种方式启动。

情况三:启动管理器(多操作系统常见形式)

计算机读取“主引导记录”前面446字节之后,不再把控制权交个某一个分区,而是运行运行事先安装的Boot Loader(启动管理器,Eg,Linux中常见的Grub),由用户选择启动哪个OS。

阶段四:OS

OS的内核首先被载入内存。

参考资料

文章目录
  1. 1. 阶段一: BIOS
  2. 2. 阶段二: 主引导记录
    1. 2.1. 主引导记录结构
    2. 2.2. 分区表
  3. 3. 阶段三:硬盘启动
    1. 3.1. 情况一:卷引导记录
    2. 3.2. 情况二:扩展分区和逻辑分区
    3. 3.3. 情况三:启动管理器(多操作系统常见形式)
  4. 4. 阶段四:OS