Linux系统启动过程

一、启动过程

1、加载 BIOS 的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置
2、读取并执行第一个开机装置内MBR的bootLoader
3、依据 bootloader的设定加载 Kernel
4、Kernel开始侦测硬件与加载驱动程序 (初始化Kernel)
5、把Kernel挂载到根文件系统上
6、启动完成

二、名词解释

BIOS
全称"Basic Input Output System",中文名称是"基本输入输出系统"。它是一组固化到计算机内主板上一个ROM芯片上的程序,包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息等。

MBR
全称“MasterBoot Record” ,中文名称是“主引导分区”,是启动设备的第一个扇区,安装bootLoader的地方。

bootLoader
中文名称为“引导装载程序”,它是系统加电后运行的第一段软件代码,在操作系统内核运行之前运行的一段裸机程序,负责初始化硬件设备,准备好软件环境,最后调用操作系统内核。

bootLoader严重地依赖于硬件而实现的,所以不同的架构有着不同的bootLoader,常见的bootLoader有uboot,LILO,grub等

Kernel侦测硬件
当我们借由bootLoader的管理而开始读取内核文件后,接下来Linux就会将内核解压到主存储器当中,并且利用内核的功能,开始测试与驱动各个周边装置,包括储存装置、CPU、网络卡、声卡等等。 此时 Linux 核心会以自己的功能重新侦测一次硬件,而不一定会使用 BIOS 侦测到的硬件信息喔!

挂载根文件系统
由于核心模块(驱动程序)需要放置到磁盘根目录内, 因此在开机的过程中内核必须要挂载根目录,这样才能够读取核心模块提供加载驱动程序的功能。

启动过程流程图
干货满满~Linux系统启动(内含名词解析)

问:

为什么开机不能直接执行kernel,把kernel放在启动设备的第一个扇区(即MBR所在的地方),把所有事情都交给kernel做呢?

其实它的思想类似于一个板级支持包:kernel执行的时候需要具备一个基本的硬件运行条件,而这个环境的初始化(最底层的一些硬件初始化、硬件信息设定)需要bootloader来完成,也许这样kernel的设计才能保持一定的一致性。

相关文章:

  • 2021-11-27
  • 2021-08-28
  • 2022-12-23
  • 2023-02-06
  • 2021-09-21
  • 2021-11-10
  • 2021-05-12
  • 2021-12-22
猜你喜欢
  • 2021-04-17
  • 2021-05-08
  • 2021-12-19
  • 2021-10-02
  • 2022-02-10
  • 2022-01-16
  • 2021-10-22
相关资源
相似解决方案