计算机开机启动过程简介以及BIOS基础知识

1. BIOS

BIOS介绍:

BIOS(Basic Input/Output System)是基本输入输出系统的简称。BIOS 能为电脑提供最低级、最直接的硬件控制与支持,是联系最底层的硬件系统和软件系统的桥梁。为了在关机后使 BIOS 不会丢失,早期的 BIOS 存储在 ROM 中,并且其大小不会超过 64KB;而目前的 BIOS 大多有 1MB 到 2MB,所以会被存储在 闪存(Flash Memory)中。

BIOS 设置程序是被固化到电脑主板上地 ROM 芯片中的一组程序,其主要功能是为电脑提供最底层的、最直接的硬件设置和控制。 BIOS 通常与
硬件系统集成在一起(在计算机主板的 ROM 或EEPROM 中),所以也被称为 固件

如何运行

BIOS存放在一个断电后不会丢失内容的ROM中,这保证了“拽着鞋带拉起自己”的这种情况不会发生。因为系统一上电或重置,处理器要执行第一条指令的地址会被定位到BIOS存储器,初始化开始运行。在X86系统中,CPU加电后跳转至BIOS的固定物理地址0xFFFF0。
打开计算机电源,计算机会首先加载BIOS,包含

CPU相关信息
设备启动顺序信息
硬盘信息
内存信息
时钟信息
PhP特性
...

硬件自检(Power-On Self Test,POST)

如果硬件出现问题,主板会发出不同含义的蜂鸣 ,启动中止。如果没有问题,屏幕就会显示出CPU 、内存、硬盘等信息。BIOS在执行完硬件自检和初始化后,会将自己复制到从 0xA0000 开始的物理内存中并继续执行。

BIOS 代码包含诊断功能,以保证某些重要硬件组件,像是
键盘、磁盘设备、输出输入端口等等,可以正常运作且正
确地初始化。

2.读取MBR

MBR-全称是Master Boot Record(主引导记录或主开机记录),是一个512byte的扇区,位于磁盘的固定位置。之所以叫“主引导记录”,是因为其存在于驱动器开始部分的一个特殊扇区,个扇区包含已安装的操作系统启动记载器和驱动器的逻辑分区信息。BIOS完成POST和初始化之后,会根据CMOS中设定的顺序选择引导的设备,这个设备可以是U盘可以是硬盘。若设置为硬盘,则BIOS就会读取MBR。MBR里面包含了一段引导程序,一个分区表和Magic Number。

3.启动Boot Loader

​ **Linux的Boot的过程 **

Boot Loader

又叫做 操作系统内核加载器(OS kernel loader),一个在kernel运行前运行的一段小程序,通过这段程序可以初始化硬件设备,建立内存空间的映射,将系统软硬件环境带到一个合适的状态,便于未来调用操作系统内核。

4. 加载kernel

主要有两个步骤:

  1. 根据 grub 设定的内核映像所在路径 ,系统读取内存映像 ,并进行解压缩操
    作 。

  2. 系统将解压后的内核放置在内存之中, 初始化函数并初始化各种设备 , 完
    成 Linux 核心环境的建立 。

以Linux系统为例,先载入/boot目录下面的kernel。

内核加载成功后,第一个运行的程序是/sbin/init。它根据配置文件(Debian系统是/etc/initab)产生init进程。这是Linux启动后的第一个进程,pid进程编号为1,其他进程都是它的后代。

然后,init线程加载系统的各个模块,比如窗口程序和网络程序,直至执行/bin/login程序,跳出登录界面,等待用户输入username和password。

至此,全部启动过程完成。

猜你喜欢

转载自blog.csdn.net/wwxy1995/article/details/113830429