Linux启动过程解析:从BIOS到Init守护进程

需积分: 9 7 下载量 127 浏览量 更新于2024-08-25 收藏 235KB PPT 举报
本文主要介绍了Linux系统的启动过程,特别是启动守护进程时rc脚本的作用,以及BIOS、GRUB、Kernel Boot、Init等关键步骤。 在Linux系统启动时,整个流程从最基本的硬件层面开始,首先是BIOS(Basic Input/Output System)进行加电自检(POST),检查和初始化硬件设备,然后寻找驱动器和启动扇区,加载MBR(Main Boot Record)到内存。MBR是磁盘的第一个扇区,包含分区表和一个小的引导加载程序。通常,MBR中的引导加载程序如GRUB(Grand Unified Bootloader)会接手后续的引导工作。 GRUB是一个两阶段的引导加载程序,其stage1通常被安装在MBR中,负责加载并执行stage2,后者会显示引导菜单,允许用户选择要启动的操作系统或内核。GRUB的配置文件`menu.lst`定义了启动选项。如果需要支持文件系统,可能还会有一个stage1.5。 当内核被GRUB加载后,进入内核的引导阶段。在古老的启动时代,引导扇区的汇编代码(如 `_start()`)首先被执行,然后是中间时代的`setup()`,它初始化硬件环境,设置保护模式。再往后,进入文艺复兴时期,`startup_32()`函数解压缩内核映像(bzImage),准备进入内核运行。 内核启动完成后,Linux开始初始化其核心服务。Init程序是系统启动的关键部分,它根据`/etc/inittab`配置文件来决定运行级别,比如在多用户模式下通常是运行级别3。在这个阶段,`/etc/rc.d/rc3.d`目录下的脚本会被执行,这些脚本是启动或停止服务的符号链接,S开头的脚本表示启动,K表示停止,数字代表执行顺序。 Init会启动`agetty`来创建终端会话,接着执行`/etc/init.d/boot`和`/etc/init.d/rc`脚本,这些脚本管理着系统服务的启动。一旦这些服务启动完毕,系统会调用`/bin/login`,用户可以输入用户名和密码登录,然后获得一个shell环境,至此,Linux系统完全启动完成,用户可以开始正常使用。 总结起来,Linux启动过程涉及多个层次,从硬件自检到内核加载,再到系统服务的启动,每一个步骤都至关重要。rc脚本在这一过程中起到了连接内核与用户空间服务的关键作用,确保系统按预期顺序启动各项服务。理解这一过程对于系统管理员来说是非常基础且重要的知识。