本文不涉及硬件的启动流程,只关注linux的启动流程
1.加载内核
linux接管硬件后会首先读入 /boot 目录下的内核文件,将内核载入内存中

2.启动init进程
将内核加载到内存后,linux会运行一个初始化程序(/sbin/init),它的作用是初始化系统环境

init是linux第一个启动的进程,所以它的进程ID(PID)是 1 ,它是所有进程的父进程,也就是说其他所有的进程都是init进程的子进程。
3.确定运行级别
linux有6中运行级别,分别是
0:关机
1:单用户模式(修复模式)
2:多用户模式,无NFS
3:多用户模式
4:保留
5:X11
6:重启
2-5运行级别可能会随linux的发行版本也不一致,如ubuntu2-5都是多用户模式
linux会根据/etc/inittab中的配置运行不同的运行级别
如/etc/inittab中配置id:3:initdefault:则启动的运行级别为3

4.启动守护进程
然后linux会根据不同的运行级别启动不同的 守护进程 (windows中称为服务)
确定启动级别以后linux会到/etc/rc[n].d中运行相应的脚本(实际是运行/etc/init.d中的脚本),/etc/rz[n].d中的脚本都是软连接,真正的脚本在/etc/init.d中,但名称却不同,在/etc/rc[n].d中脚本(连接)都是以K(杀死 /etc/rc.d/init.d/xxx kill)和S(启动 /etc/rc.d/init.d/xxx start)开头,其后跟数字代表运行顺序(从小到大执行)。

5.执行/etc/rc.d/rc.local
此时系统已经进入到等待用户登录界面
本文详细介绍了Linux系统的启动过程,包括加载内核、启动初始化进程init、确定运行级别、启动守护进程以及执行rc.local脚本等内容。
1075

被折叠的 条评论
为什么被折叠?



