Linux 初始化 init 系统

目录

    Linux 操作系统的启动流程:

    1. BIOS(或UEFI)启动:当计算机加电时,BIOS(基本输入输出系统)或更现代的UEFI(统一可扩展固件接口)会执行一系列的自检(POST,Power-On Self Test),以确保硬件正常工作。随后,BIOS/UEFI会根据用户设置的启动顺序来定位并加载引导设备(如硬盘、USB驱动器或网络)上的主引导记录(MBR)或UEFI系统分区中的引导加载程序。

    2. Boot Loader加载:最常用的Boot Loader是GRUB(Grand Unified Bootloader),它负责加载内核映像和初始化RAM磁盘(initramfs)到内存中。这一阶段可能还包括用户选择操作系统内核版本或恢复模式等选项。

    3. 内核初始化:内核一旦被加载并控制权交接之后,会进行一系列的初始化操作,包括设置内存管理、初始化硬件设备、加载驱动模块、挂载根文件系统等。此阶段还会运行内核初始化脚本(如/sbin/init在较旧系统或systemd在现代系统中)。

    4. Init进程启动:内核初始化的最后阶段是启动PID为1的init进程。在传统的System V风格的init系统中,这通常是/sbin/init程序;而在使用systemd的系统中,则是systemd。这个进程是所有其他用户空间进程的父进程,它根据配置启动系统服务,建立运行级别或目标状态,并管理后续的系统和服务初始化。Init进程读取如/etc/inittab(传统系统)或/etc/systemd/system/default.target(systemd系统)等配置文件,来确定系统启动后应进入哪种运行模式或目标单元。

    5. 现在大多数Linux版本都使用systemd,而旧版本则使用SysV-init。
      要检查平台使用的init系统,请运行以下命令:

      ps --no-headers -o comm 1
      

      这将显示作为init进程运行的进程的名称,该名称可用于确定正在使用的init系统。
      总的来说,init进程作为系统启动过程的指挥中心,对整个系统的运行起着至关重要的作用。

    posted @   guanyubo  阅读(51)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · 全程不用写代码,我用AI程序员写了一个飞机大战
    · DeepSeek 开源周回顾「GitHub 热点速览」
    · 记一次.NET内存居高不下排查解决与启示
    · MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
    · .NET10 - 预览版1新功能体验(一)
    点击右上角即可分享
    微信分享提示