计算机启动分析

来源:互联网 发布:网络加速器的原理 编辑:程序博客网 时间:2024/06/06 18:46

计算机启动分析

计算机的启动一般分为四个阶段:

  • BIOS
  • 主引导记录
  • 硬盘启动
  • 进入系统

BIOS

BIOS程序为开机自检程序,是固化在ROM芯片中。正如其英文表达意思,Basic Input/Output System(基本输入输出系统)。


  • 硬件自检

    当计算机开机后,首先运行BIOS程序,检查计算机的硬件是否满足运行的初始化条件。若硬件出现问题,则主机会通过蜂鸣器发出不同含义的信号,而启动终止命令;若没问题,则会在屏幕上打印CPU、内存、硬盘等信息。

  • 启动顺序
    在自检结束之后,BIOS会将控制权给下一阶段启动程序。所以,一般在BIOS中的程序内存小,只负责初始化工作。此外,BIOS需要知道下一阶段启动程序放在哪。故通过设置外部存储设备的启动顺序,来优先转交其控制权。


主引导记录

当控制权转移到优先级第一的存储设备上后,计算机会读取该设备的第一个扇区,即最前面512个字节。
观察512个字节中最后2个字节:0x55和0xAA;
若是,则表示设备可正常启动;否则,控制权会转移到下一个存储设备。


  • 主引导记录结构
    主引导记录只有512个字节,它主要是为了告诉计算机,操作系统存在硬盘的哪个位置。其主要由三部分组成:
    1-446字节,调用操作系统机器码;
    447-510字节,存放分区表(将硬盘分成若干区);
    511-512字节,主引导记录签名(0x55和0xAA)。

  • 分区表
    硬盘分区之后,每个分区可以安装不同的操作系统,故主引导程序必须知道将控制权转交给哪个分区。
    分区表只有64字节,其被分成4项,每项16字节。故一个硬盘最多只能由4个一级分区,也叫“主分区”。

    每个分区由16字节组成:
    1字节:若是0x80,则表示该分区为激活的,控制权要转交给此分区。其中,4个主分区只能有1个是激活的;
    2-4字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等);
    5字节主分区类型;
    6-8字节:主分区最后一个扇区的物理位置;
    9-12字节:该主分区第一个扇区的逻辑地址;
    13-16字节:主分区的扇区总数,决定了主分区的长度,扇区总数最多不超过2^32。

    若每个扇区为512字节,则单个分区不超过2TB。由于扇区逻辑地址是32位,则硬盘可以用最大空间不超过2TB。若使用更大硬盘,则需提高扇区字节数或增加扇区总数。


硬盘启动

此时,控制权需移交给硬盘某分区,有三种途径:

  • 卷引导记录
    四个分区只有一个处于激活状态,计算机会读取激活分区第一个扇区,即为卷引导记录VBR。其作用是为了告诉计算机,操作系统在分区中的位置,然后就去加载操作系统。

  • 扩展分区和逻辑分区
    若硬盘越来越大,此时主分区不够,故需规定有且仅有一个分区被定义为扩展分区。其中,扩展分区表示在这个区中又可分多个区。这些分区里的分区,称为逻辑分区。
    若使用扩展分区,则计算机会先读取第一个扇区,即扩展引导记录EBR,其里面包含一张64字节分区表,但最多只有2项(2个逻辑分区)。在此之后,计算机又会读取第二个逻辑分区的第一个扇区,再从分区表中找出第三个逻辑分区的位置,以此类推,知道某逻辑分区只包含自身为止,即它只有一个分区项。所以说,扩展分区可以有很多个逻辑分区。

  • 启动管理器

    若通过此种方式,则计算机会读取主引导记录前446字节机器码后,不再将控制权转交给某分区,而是运行预先安装好的启动管理器。这样,由用户自己选择启动哪个操作系统。


操作系统

当控制权交给操作系统后,操作系统内核会先被载入内存。然后,内存加载成功后,则运行第一个进程。如linux上的init进程,然后再用init进程加载系统的各个模块,如串口程序、网络程序及login程序,跳出登录界面为止,等待用户输入用户名和密码。


0 0