从硬件自检到操作系统内核的加载,再到用户登录,每个阶段都扮演着不可或缺的角色
本文将对Linux启动的各个层次进行详细解析,帮助读者深入理解Linux系统的启动机制
一、硬件自检与BIOS/UEFI 当按下计算机的电源按钮时,整个系统开始运作
首先,计算机会进行硬件自检(Power-On Self-Test,POST)
这一过程由主板上的BIOS(Basic Input/Output System,基本输入输出系统)或UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)完成
BIOS和UEFI都是固化在计算机主板上的ROM芯片中的程序,负责在计算机启动时进行硬件检测和初始化
在POST过程中,BIOS/UEFI会逐一检查系统中的硬件设备,包括CPU、内存、硬盘等,以确保这些设备能够正常工作
如果硬件检测失败,BIOS/UEFI会发出警报或显示错误信息;如果硬件检测成功,BIOS/UEFI会继续执行启动过程
BIOS/UEFI的另一个重要功能是存储磁盘的启动顺序,并按照启动顺序查找第一个磁盘头的MBR(Master Boot Record,主引导记录)信息,然后加载和执行MBR中的Bootloader程序
若第一个磁盘不存在MBR,则会继续查找第二个磁盘
二、MBR与GRUB引导加载程序 MBR是硬盘的第一个扇区,里面存储着少量启动代码和分区表信息
每个可启动的操作系统都需要在MBR或分区表中留有相应的引导代码
对于Linux系统,MBR中的代码会加载并运行GRUB(GRand Unified Bootloader)引导加载程序
GRUB是一个通用的引导加载程序,支持多种操作系统,如Linux、Windows、FreeBSD等
GRUB提供了一个菜单,用户可以选择要启动的操作系统或内核版本
选择后,GRUB会加载指定的内核映像到内存中
GRUB的配置文件通常位于/boot/grub/grub.cfg文件中,该文件包含了GRUB的启动选项和参数
通过编辑GRUB配置文件,用户可以自定义启动菜单的显示、内核的加载参数等
三、内核加载与init进程 GRUB加载内核映像到内存后,内核开始执行
内核是操作系统的核心部分,负责管理系统资源、处理硬件请求、提供进程调度等功能
内核加载的第一个程序是/sbin/init,它是系统启动和服务的总调度
init进程启动后,会负责系统资源的分配和初始化,为后续的应用程序提供稳定的环境
init进程会根据/etc/inittab文件或systemd服务管理器来确定系统的运行级别(Runlevel)
运行级别决定了系统启动后运行哪些服务和进程
在Linux系统中,运行级别通常分为以下几种: - 0:关机 - 1:单用户模式 - 2:多用户模式,没有网络服务 - 3:完全多用户模式,有网络服务 - 4:用户自定义的运行级别 - 5:图形界面模式 - 6:重启 根据设定的运行级别,init进程会启动相应的服务和进程
例如,在运行级别3下,init进程会启动网络服务、系统日志服务等
四、系统初始化与终端建立 init进程启动后,系统会进入初始化阶段
在这个阶段,系统会执行一系列初始化脚本和程序,以设置系统变量、网络配置、启动swap分区、加载用户自
Linux书籍精选:深入探索驱动开发
揭秘Linux启动层:系统启动全过程解析
使用rEFInd轻松引导Linux系统:一键启动新境界
个人购电脑VS租阿里云,哪个更划算?
单位电脑直连私有云,高效办公新选择
Linux图形界面初始化全解析
Linux技巧:高效等待线程结束策略
Linux书籍精选:深入探索驱动开发
使用rEFInd轻松引导Linux系统:一键启动新境界
Linux图形界面初始化全解析
Linux技巧:高效等待线程结束策略
紧急!最新Linux漏洞安全警报发布
Linux系统源文件高效备份指南
Xserver与XSDL在Linux上的实用指南
OPPO云电脑:永久使用技巧揭秘
Linux系统上玩转酷Q机器人
Linux环境下Oracle 11g R2数据库的安装与配置指南
Linux系统高效压缩语句技巧
Linux系统信号全解析:分类与用途深度探索