当按下电源按钮启动Linux时,幕后发生了什么?
一个名为BIOS或UEFI的程序会启动运行;改程序的基本用途是让计算机 所有主要部分做好操作准备(这些部分包括:键盘,屏幕硬盘等) |
POST检查;测试可确保在安全打开所有设备之前,所有不同的硬件都正常工作; 如果POST发现问题,通常会在屏幕上显示错误消息 |
通过POST检查,则BIOS或UEFl需要查找并载入引导加载程序; 在BIOS系统上,引导加载程序代码位于磁盘驱动器的第一个小块中,称为主引导记录; 对于UEFI,有一个单独的分区来存储 .efi引导加载程序文件等文件。 |
引导加载程序的关键工作是: 1.在磁盘上找到操作系统内核,将其加载到计算机内存中,并将控制权交给内核。开始运行内核代码 |
(我们看到常见的引导加载程序有GRUB2) |
内核接管计算机的资源并开始启动所有后台进程和服务 |
1.它将自身解压缩到内存中,检查硬件,并加载设备驱动程序和其他内核模块 |
2.后来,一个名为init的初始进程启动,该进程通常是systemd;它是Linux上所有其他进程的父进程。 Systemd有大量职责来启动系统,并为其使用做准备。 它检查是否有任何剩余的硬件驱动程序需要加载;挂载所有不同的文件系统和磁盘,以便访问; 并开始启动您需要的所有后台服务,例如:网络,声音,电源管理; 一旦出现图形提示,它就会处理用户登录,并会用面板和菜单加载您的桌面环境 systemd 使用目标配置文件来决定它应该启动到哪种模式: 一些基本的模式,例如:多用户纯文本目标(黑屏交互)或图形目标(视窗系统) |
附图: