图解Linux 启动过程的6 个步骤

图解Linux 启动过程的6 个步骤

操作系统 (OS) 是管理资源、控制外围设备并为其他软件提供基本服务的低级软件。在 Linux 中,典型的启动过程有 6 个不同的阶段。

1.BIOS

BIOS 代表基本输入/输出系统。简单来说,BIOS 加载并执行主引导记录 (MBR) 引导加载程序。

当您第一次打开计算机时,BIOS 首先对 HDD 或 SSD 执行一些完整性检查。

然后,BIOS 搜索、加载并执行引导加载程序,该程序可以在主引导记录(MBR)中找到。MBR 有时位于 USB 记忆棒或 CD-ROM 上,例如实时安装的 Linux。

一旦检测到引导加载程序,它就会被加载到内存中,BIOS 会将系统的控制权交给它。

2、主引导记录器

MBR 代表主引导记录,负责加载和执行 GRUB 引导加载程序。

MBR 位于可启动磁盘的第一个扇区,通常为/dev/hda、 或/dev/sda,具体取决于您的硬件。MBR 还包含有关 GRUB 或非常旧的系统中的 LILO 的信息。

3. GRUB

有时称为 GNU GRUB,它是 GNU GRand Unified Bootloader 的缩写,是大多数现代 Linux 系统的典型引导加载程序。

GRUB 初始屏幕通常是您启动计算机时看到的第一个画面。它有一个简单的菜单,您可以在其中选择一些选项。如果您安装了多个内核映像,您可以使用键盘选择您希望系统启动时使用的内核映像。默认情况下,选择最新的内核映像。

启动屏幕将等待几秒钟供您选择。如果不这样做,它将加载默认的内核映像。

/boot/grub/grub.conf在许多系统中,您可以在或 处找到 GRUB 配置文件/etc/grub.conf。这是一个简单文件的示例grub.conf

ini 复制代码
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.el5PAE)
      root (hd0,0)
      kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/
      initrd /boot/initrd-2.6.18-194.el5PAE.img

4. 内核

内核通常被称为任何操作系统(包括 Linux)的核心。它可以完全控制系统中的一切。

在引导过程的这个阶段,GRUB 选择的内核首先挂载文件中指定的根文件系统grub.conf。然后它执行该/sbin/init程序,该程序始终是第一个被执行的程序。您可以通过其进程 ID (PID) 来确认这一点,该 ID 应始终为 1。

然后内核使用初始 RAM 磁盘 (initrd) 建立临时根文件系统,直到挂载真正的文件系统。

5. 初始化

此时,您的系统执行运行级别程序。在某一时刻,它会查找一个 init 文件,通常可以在 处找到/etc/inittab该文件来决定 Linux 运行级别。

现代 Linux 系统使用 systemd 来选择运行级别。根据TecMint 的说法,这些是可用的运行级别:

运行级别 0由****poweroff.target 匹配(并且runlevel0.target是****poweroff.target的符号链接)。

运行级别 1与

rescue.target 匹配(并且runlevel1.target是****rescue.target的符号链接)。

运行级别3 由

multi-user.target 模拟(并且runlevel3.target是****multi-user.target的符号链接)。

运行级别5由

graphical.target 模拟(runlevel5.target是****graphical.target的符号链接)。

运行级别 6

由reboot.target 模拟(runlevel6.target是****reboot.target的符号链接)。

Emergency与

Emergency.target匹配。

然后 systemd 将开始执行运行级别程序。

6. 运行级别程序

根据您安装的 Linux 发行版,您可能会看到不同的服务正在启动。例如,您可能会发现starting sendmail .... OK.

这些被称为运行级别程序,并且根据您的运行级别从不同的目录执行。上述 6 个运行级别中的每一个都有其自己的目录:

  • 运行级别 0 --/etc/rc0.d/
  • 运行级别 1 --/etc/rc1.d/
  • 运行级别 2 --/etc/rc2.d/
  • 运行级别 3 --/etc/rc3.d/
  • 运行级别 4 --/etc/rc4.d/
  • 运行级别 5 --/etc/rc5.d/
  • 运行级别 6 --/etc/rc6.d/

请注意,这些目录的确切位置因发行版而异。

如果您查看不同的运行级别目录,您会发现分别以"S"或"K"开头的程序用于启动和终止。启动程序在系统启动时执行,在系统关闭时杀死程序。

相关推荐
假装我不帅22 分钟前
asp.net framework从webform开始创建mvc项目
后端·asp.net·mvc
神仙别闹24 分钟前
基于ASP.NET+SQL Server实现简单小说网站(包括PC版本和移动版本)
后端·asp.net
计算机-秋大田1 小时前
基于Spring Boot的船舶监造系统的设计与实现,LW+源码+讲解
java·论文阅读·spring boot·后端·vue
货拉拉技术1 小时前
货拉拉-实时对账系统(算盘平台)
后端
掘金酱2 小时前
✍【瓜分额外奖金】11月金石计划附加挑战赛-活动命题发布
人工智能·后端
代码之光_19802 小时前
保障性住房管理:SpringBoot技术优势分析
java·spring boot·后端
ajsbxi2 小时前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
颜淡慕潇3 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
尘浮生4 小时前
Java项目实战II基于Spring Boot的光影视频平台(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·maven·intellij-idea
尚学教辅学习资料4 小时前
基于SpringBoot的医药管理系统+LW示例参考
java·spring boot·后端·java毕业设计·医药管理