揭秘Linux内核启动顺序全过程
linux内核启动顺序

首页 2024-12-11 11:23:57



Linux内核启动顺序的深度解析 在计算机领域中,Linux操作系统的启动过程是一个复杂而精细的过程,它涉及从硬件的初始化到软件系统的全面运行

    本文将详细解析Linux内核的启动顺序,带领读者深入理解这一过程中的各个环节

     一、启动前的准备 在计算机启动之前,电源按下之前,仅有两个关键组件在RTC(实时时钟)电源供电的情况下保持工作:RTC和CMOS

    RTC芯片保持机器内部的时钟,确保计算机在关机后重新启动时时间仍然准确

    CMOS则是一块可读写的RAM芯片,用于保存BIOS设置计算机硬件参数后的数据

     当外部ATX电源接入后,ATX电源使用+5VSB(Stand-By)电源唤醒一部分硬件,如南桥(系统IO芯片)和EC(嵌入式控制器、单片机)

    这些组件为开机做好准备,等待用户按下电源键

     二、BIOS/UEFI阶段 按下电源键后,EC接收到PWRSW信号,并向南桥发送PM_PWRBTN#信号

    南桥回应EC三个信号:SLP_S5#(退出S5关机状态)、SLP_S4#(退出S4休眠状态)、SLP_S3#(退出S3待机状态)

    ATX电源收到信号后开始工作,发出各路基本电压给主板上的各个元件

     BIOS(基本输入输出系统)或UEFI(统一可扩展固件接口)是计算机按下电源后最先被执行的程序

    它们位于主板上的ROM(只读存储器)中,负责进行硬件的初始化和自检(POST)

    BIOS阶段可用的内存地址空间非常有限,在x86系统中仅有1MB

    CPU执行的第一条指令位于ROM的地址范围内,该指令跳转到BIOS代码真正开始的地方,进行初始化工作

     三、Bootloader阶段 BIOS/UEFI自检成功后,将磁盘相对0道0扇区上的Bootloader装入内存

    在x86系统中,Bootloader通常位于磁盘的主扇区(MBR),负责从活动分区加载并运行系统引导程序

     Linux系统中常见的Bootloader有GRUB(GRand Unified Bootloader)、LILO(Linux Loader)和Syslinux等

    这些Bootloader根据配置文件(如GRUB的grub.cfg)加载压缩的内核映像(如vmlinuz)和可选的initrd/initramfs文件,并设置内核启动参数

     四、内核加载与解压 Bootloader将压缩的内核映像加载到内存中,并准备好内核启动所需的环境

    内核映像通常是一个gzip或其他格式压缩的二进制文件

    在内核映像的开头,有一个小的解压缩程序,负责解压内核的主体部分

     一旦内核映像被加载到内存,解压缩程序会运行并将压缩的内核映像解压到适当的内存位置

    解压完成后,

nat123映射怎么用?超详细步骤,外网访问内网轻松搞定
nat123域名怎么用?两种方式轻松搞定
nat123怎么用?简单几步实现内网穿透
内网穿透工具对比:nat123、花生壳与轻量新选择
远程访问内网很简单:用对工具,一“箭”穿透
ngrok下载完全指南:从入门到获取客户端
内网远程桌面软件:穿透局域网边界的数字窗口
从外网远程访问内网服务器的完整方案
Windows Server 2008端口转发完全教程:netsh命令添加/查看/删除/重置
为什么三层交换机转发比Linux服务器快?转发表硬件加速的秘密