【初学者】图解从开启服务器到完成启动的机制
目录
你好。
我是来自Beyond的喜多,在猫大战中获得了超稀有角色,无人可敌。
上次我写了关于
硬件文章的这次我就以通俗易懂的方式讲解一下服务器从上电到启动完成是如何工作的。
我们通常会随意启动和停止云中的服务器,但了解导致这一点的过程的人比我们想象的要少。
(我也是其中之一)
这次,我将以初学者也能理解的方式解释启动顺序,并附有插图,所以请读到底。
启动Linux服务器时的总体视图
首先总结一下,Linux系统的启动过程如下。
固件 (BIOS/UEFI) → 引导加载程序 → 内核 → 初始化处理
然而,仅凭这些信息很难理解,所以我将使用图表更详细地解释它。
从接通电源到完成启动,总共需要8个步骤。
大致来说,启动完成如下。
- 启动进入 BIOS/UEFI
- 硬件检测运行
- 启动设备选择过程运行
- GRUB 启动
- 内核启动
- initramfs 启动
- 系统启动
- 启动完成
使用整体图,流程如上图,整个系统启动过程称为启动,而
从BIOS/UEFI启动到以上一系列步骤的过程称为“启动顺序”或“启动”
过程。接下来,我们将详细解释每项内容。
每个项目的描述
①BIOS/UEFI启动
当您按下计算机上的电源按钮并运行的是BIOS/UEFI。
BIOS/UEFI安装在主板的ROM中,其作用是在启动操作系统之前初始化计算机中安装的各种设备,并正确启动操作系统。
BIOS 和 UEFI 之间存在差异,但如图所示,UEFI 是 BIOS 的改进版本。
然而,这并不意味着只有 UEFI 就足够了;目前,两者并存。
从功能上来说,两者类似,但UEFI提高了传统BIOS复杂性的可操作性。
②硬件检测
接下来我们就来讲解一下硬件检测。
BIOS 进程之一称为
POST(开机自检)它识别、检查和初始化连接的硬件,以便可以使用它。
③启动设备选择
接下来,启动设备选择过程运行。
这也是BIOS流程之一,执行POST(硬件识别)后,选择启动设备(包含操作系统的存储)。
启动设备是包含启动服务器时要首先运行的程序的存储(HDD/SSD)。
启动设备=包含您要启动的操作系统的存储,那么就很容易理解
④启动引导加载程序
接下来,BIOS启动存储在引导设备中的引导加载程序。
引导加载程序是识别并启动操作系统(内核)的程序。
许多Linux系统使用GRUB作为引导加载程序,
GRUB有两种类型:已经使用很长时间的“GRUB Legacy”和“GRUB 2”。
*对 GRUB Legacy 的支持已停止。
现代操作系统基本上都使用新版本的GRUB 2。
⑤内核启动
现在是时候启动内核了。
内核是Linux的核心程序,狭义上也称为Linux。
它主要负责控制连接到服务器的硬件。
综上所述,BIOS/UEFI启动引导设备中包含的引导加载程序(GRUB),引导加载程序启动内核。
⑥启动initramfs
然后内核启动 initramfs 来访问引导系统所需的数据。
⑦启动系统
initramfs 挂载根文件系统后,内核加载并启动“systemd”。
systemd 是系统启动时创建的第一个进程(PID=1)。
它是“系统守护进程”的缩写,守护进程驻留在内存中,具有控制整个系统的作用。
守护进程是在系统启动时启动并在系统运行时继续在后台运行的程序。
⑧启动完成
最后,启动完成。
systemd被内核调用后,会依次生成系统运行所需的“子进程”,并显示登录界面。
概括
最后,我将总结和回顾启动之前的流程。
- 首先按电源键启动BIOS/UEFI(固件)
- BIOS通过POST初始化硬件
- BIOS 从识别的硬件中选择启动设备
- BIOS 启动存储在引导设备上的引导加载程序
- 引导加载程序从选定的引导设备读取内核并启动它。
- 内核启动 initramfs
- initramfs 允许内核处理引导系统所需的数据
- systemd 接管处理,生成系统运行所需的子进程,初始化系统,并显示登录屏幕
事情就是这样。
最后
至此,我们从开机到完成启动,已经详细讲解了BIOS/UEFI、启动设备、启动加载程序、initramfs、systemd等。
由于计算机启动已变得司空见惯,因此了解启动过程的机会可能很少,但在排除启动无法正常工作的情况时,这将是有用的知识,希望本文对您有所帮助。了解启动服务器的过程。
是参考
我公司运营的频道Nezumiya基础设施工程师道场这是一个很棒的频道,您可以从头开始学习基础设施知识,所以如果您有兴趣,请订阅该频道并给予高度评价!