linux介绍(三)--Linux 系统的启动过程

目录

1. BIOS/UEFI 启动

加电自检 (POST)

设备初始化

加载启动引导程序

2. 启动引导程序 (Bootloader)

加载内核

传递控制权给内核

3. Linux 内核初始化

解压缩内核(如果有)

初始化硬件

加载初始 RAM 文件系统 (initramfs/initrd)

执行初始进程

4. 系统初始化

Systemd 初始化

加载 Systemd 配置

启动服务

SysVinit 初始化

运行 rc.sysinit

运行 runlevel 脚本

5. 用户登录

6. 图形环境启动

关键概念解释

总结


 

Linux 系统的启动过程是一个复杂但有序的过程,它涉及到硬件初始化、内核加载、系统初始化等多个阶段。了解这个过程有助于更好地理解 Linux 系统是如何从开机状态过渡到可用的操作系统环境的。下面详细介绍 Linux 系统启动的各个阶段:

1. BIOS/UEFI 启动

加电自检 (POST)

当计算机通电后,BIOS 或 UEFI 固件首先进行加电自检(Power-On Self Test, POST),检测计算机的主要硬件组件是否正常工作,如 CPU、内存、硬盘等。

设备初始化

BIOS/UEFI 初始化系统中的硬件设备,如键盘、鼠标、显示适配器等。

加载启动引导程序

BIOS/UEFI 根据预设的启动顺序查找并加载启动引导程序(Bootloader),如 GRUB(GNU GRand Unified Bootloader)或 LILO(LInux LOader)。

2. 启动引导程序 (Bootloader)

加载内核

启动引导程序负责加载 Linux 内核到内存中,并传递必要的启动参数。这些参数通常包含在内核命令行中,例如 root=/dev/sda1 ro quiet splash

传递控制权给内核

加载内核后,启动引导程序将控制权传递给内核,此时内核开始执行初始化过程。

3. Linux 内核初始化

解压缩内核(如果有)

如果使用了压缩内核(如 zImage),内核会先解压自身。

初始化硬件

内核初始化硬件设备,包括设置中断控制器、内存管理单元(MMU)、时钟等。

加载初始 RAM 文件系统 (initramfs/initrd)

如果存在 initramfs 或 initrd 文件系统,内核会加载它们。initramfs/initrd 包含了一些必要的工具和模块,用于在系统完全启动前执行一些初始化任务,如挂载根文件系统。

执行初始进程

内核启动初始进程 init(PID 1),在 Systemd 中,这个进程是 systemdinitsystemd 负责后续的系统初始化任务。

4. 系统初始化

Systemd 初始化

现代 Linux 系统大多使用 Systemd 进行初始化。Systemd 是一个系统和服务管理器,它负责启动系统服务、管理进程间依赖关系等。

加载 Systemd 配置

Systemd 加载配置文件,确定需要启动的服务和单元。

启动服务

Systemd 根据配置文件启动必要的服务和守护进程,如网络服务、系统日志服务等。

SysVinit 初始化

在 Systemd 之前的 Linux 系统通常使用 SysVinit 进行初始化。SysVinit 通过运行一系列脚本来启动系统服务。

运行 rc.sysinit

SysVinit 首先运行 /etc/rc.d/rc.sysinit 脚本,初始化一些全局配置。

运行 runlevel 脚本

SysVinit 根据当前的运行级别(runlevel)启动相应的脚本,如 /etc/rc.d/rcX.d 中的脚本(X 代表运行级别)。

5. 用户登录

系统初始化完成后,用户可以选择登录到系统。这可以通过图形登录管理器(如 GDM、LightDM)或文本终端进行。

6. 图形环境启动

如果选择了图形登录,登录管理器会在用户成功登录后启动相应的桌面环境(如 GNOME、KDE)。

关键概念解释

  • Runlevel:Linux 系统有不同的运行级别,每个级别对应不同的系统状态。例如,runlevel 3 通常表示字符模式下的多用户环境,runlevel 5 表示图形模式下的多用户环境。

  • Init System:Init System 负责系统初始化和管理服务。早期的 Linux 系统使用 SysVinit,现代 Linux 系统大多使用 Systemd。

  • Service Unit:在 Systemd 中,每个服务都有一个对应的 unit 文件,描述了服务的配置和依赖关系。

总结

Linux 系统的启动过程是一个从硬件初始化到系统服务启动的有序过程。了解这一过程不仅有助于解决启动过程中遇到的问题,还能更好地理解 Linux 系统的内部工作机制。随着技术的发展,Linux 系统的启动过程也在不断优化,以提高启动速度和系统的健壮性。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值