【面向初学者】图文并茂地解释服务器从开机到启动的整个工作原理

目录
大家好,
我是来自Beyond的Kita,我目前正在用我获得的一只超级稀有角色称霸《战斗猫》。
上次关于硬件的博客文章我写了一篇
这次,我想用通俗易懂的方式解释一下服务器从开机到完全启动的整个工作流程。
我们经常在云端启动和停止服务器,却很少深思熟虑,但我怀疑真正了解其背后原理的人比你想象的要少。
(我以前就是其中之一。)
这次,我们将用图示解释启动顺序,以便即使是初学者也能理解,所以请读到最后。
Linux 服务器启动概览
首先,总而言之,Linux 系统启动顺序如下:
固件(BIOS/UEFI)→ 引导加载程序 → 内核 → 初始化进程
然而,仅凭这些信息很难理解,所以我们将用图表进行更详细的解释。

从开机到启动完成,总共有八个步骤。
简而言之,启动过程遵循以下步骤:
- 启动到 BIOS/UEFI
- 执行硬件检测
- 启动设备选择过程运行
- GRUB启动
- 内核启动
- initramfs 启动
- systemd 启动
- 启动完成
整个过程如上图所示。整个系统启动过程称为启动,
从BIOS/UEFI启动到上述步骤的顺序称为“启动顺序”或“启动过程”。
接下来,我们将详细解释每个步骤。
每项内容的解释
①BIOS/UEFI启动

首先,当你按下电脑电源按钮启动电脑时,首先运行的是BIOS/UEFI。BIOS
/UEFI位于主板的ROM中,其作用是在操作系统启动之前初始化电脑中安装的各种组件,以便操作系统能够正常启动。
BIOS 和 UEFI 的区别在于,如图所示,UEFI 是 BIOS 的改进版本。
但这并不意味着 UEFI 就足够了;目前,两者是共存的。
虽然两者在功能上相似,但UEFI在复杂性和易用性方面都优于传统的BIOS。
②硬件检测

接下来,我们将解释硬件检测。
BIOS 执行的其中一个过程POST(开机自检),称为
它可以识别、检查和初始化连接的硬件,以便可以使用该硬件。
③ 选择启动设备

接下来,运行启动设备选择过程。
这也是一个BIOS过程;在POST(自检输出)之后,它会选择启动设备(包含操作系统的存储设备)。
启动设备是指服务器启动时要首先运行的程序所在的存储设备(硬盘/固态硬盘)。
启动设备就是包含要启动的操作系统的存储设备 最简单的记忆方法是,
④ 引导加载程序启动

接下来,BIOS启动存储在启动设备中的引导加载程序。
引导加载程序是识别并启动操作系统(内核)的程序。
许多 Linux 发行版使用 GRUB 作为
引导加载程序,GRUB 有两个版本:较旧的“GRUB Legacy”和“GRUB 2”。
*注意:GRUB Legacy 已停止支持。
大多数现代操作系统都使用较新版本的 GRUB 2。
⑤启动内核

现在我们终于可以启动内核了。
内核是Linux的核心程序,狭义上也指Linux本身。它的
主要作用是控制连接到服务器的硬件。
简而言之,BIOS/UEFI 启动启动设备中包含的引导加载程序(GRUB),引导加载程序启动内核。
⑥启动initramfs

然后内核启动 initramfs 来访问启动系统所需的数据。
⑦启动systemd

initramfs 挂载根文件系统后,内核加载并启动“systemd”。
systemd 是系统启动时创建的第一个进程(PID=1)。
它是“系统守护进程”(system daemon)的缩写,守护进程是指驻留在内存中并管理整个系统的进程。
守护进程是一种在系统启动时启动,并在系统运行时持续在后台运行的程序。
⑧启动完成

最后,启动过程完成。
内核调用 systemd 后,它会依次创建系统运行所需的“子进程”,并显示登录界面。
概括
最后,让我们回顾一下启动前的整个过程。
- 首先,按下电源按钮启动 BIOS/UEFI(固件)。
- BIOS 通过 POST 初始化硬件。
- BIOS 从识别到的硬件中选择启动设备。
- BIOS启动存储在启动设备上的引导加载程序。
- 引导加载程序从选定的引导设备加载并启动内核。
- 内核启动initramfs。
- initramfs 为内核提供启动系统所需的数据。
- systemd 接管该进程,创建系统运行所需的子进程,初始化系统,并显示登录屏幕。
事情就是这样发生的。
最后
到目前为止,我们已经详细解释了从开机到启动完成的整个过程中的 BIOS/UEFI、启动设备、启动加载程序、initramfs、systemd 等相关内容。
由于服务器启动是常有的事,你可能没有太多机会了解启动过程,但如果服务器无法正常启动,这些知识在进行故障排除时将非常有用,所以我希望本文能帮助你至少对服务器启动过程有所了解。
我们公司运营的 “Nezumi-san的基础设施工程师道场” 参考了
这是一个非常棒的频道,您可以从零开始学习基础设施知识,如果您感兴趣,请订阅并点赞!
9
