Linux的启动过程

  1. 接通电源后BIOS开机自检,对硬件进行检测

  2. 加载MBR(主动引导记录),从磁盘调入boot独立程序, boot把自身复制到高位地址的内存,从而为操作系统释放低位地址的内存。
    MBR包括三部分内容:引导程序,分区表和分隔表示,最多512字节,引导程序最多446字节

  3. boot程序读取启动设备的跟目录,boot要理解文件系统和目录格式,然后boot被调入内核,控制权交给内核

  4. 内核启动,创建内核堆栈,识别CPU类型,计算内存,禁用中断,启动内存管理单元

  5. 分配一个消息缓冲区来存放调试出现的问题

  6. 操作系统进行自动配置,加载配置文件,检测设备,设备如果没有响应就忽略,响应则添加到已连接设备表中

  7. 配置完硬件后,创建进程0,设置堆栈并运行,执行初始化、配置时钟,挂载文件系统, 创建init(进程1)进程和守护进程(进程2)

  8. init进程会读取/etc/inittab文件读取Linux运行级别。
    0:关机模式
    1:单用户模式
    2:无网络支持的多用户模式
    3:字符界面多用户模式
    4:保留,未使用模式
    5:图像界面多用户模式
    6:重新引导系统,重启模式
    9.读取完运行级别后执行第一个用户层文件/etc/rc.d/rc.sysinit,设置PATH运行变量,网络配置,启动swap分区,设定/proc、系统函数、配置SeLinux

  9. 读取/etc/modules.conf文件及/etc/modules.d目录下的文件来加载系统内核模块,该模块文件可以后期添加或者修改及删除。

11.根据读取的运行级别执行rc.0到rc.6的相应脚本程序,完成初始化。

  1. 读取执行/etc/rc.d/rc.local文件,将需要开机启到的任务添加到文件末尾,系铁会逐行去执行并启动相应命令。rc.local是初始化工作后,个性化的部分,可以设置要启动的东西。

13.执行bin/login程序

posted @ 2022-09-26 15:47  店里最会撒谎白玉汤  阅读(19)  评论(0编辑  收藏  举报