|
Linux的启动流程可以分为以下几个步骤
- firmware 固件里面执行的POST(power on self test)加电自检
- BootLoader 引导程序,引导程序是放在第一个启动设备的MBR(Master Boot Record)里面。MBR是该设备的第一个分区,大小为446bytes
- kernel 引导程序最重要的就是载入内核
- init 在内核载入的时候,内核主要所两件事,其一是驱动硬件,其二是启动init进程,init进程是Linux里面一个很特别的进程,它的PID恒为1.
- /etc/inittab 启动init进程的实质是执行/etc/inittab这个文件,该文件是init进程的配置文件,对于该配置文件的产看可以有两种方法
(1)通过grep -v "^#" /etc/inittab |more 命令查看配置文件中没有注释的配置
(2)也可以通过man /etc/inittab 来查看,在此需要说明的是,man不仅可以查看命令也可以查看配置文件
无论用那种方式得到的主要信息都是如下所示:
id:3:initdefault:
si: : sysinit:/etc/rc.d/rc.sysinit
10:0:wait:/etc/rc.d/rc 0
11:1:wait:/etc/rc.d/rc 1
12:2:wait:/etc/rc.d/rc 2
13:3:wait:/etc/rc.d/rc 3
14:4:wait:/etc/rc.d/rc 4
15:5:wait:/etc/rc.d/rc 5
16:6:wait:/etc/rc.d/rc 6
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
在真实的环境中,会显示出比现在多的信息,在这里写出的这些信息就能够理解大概了,通过对/etc/inittab这个配置文件的查看,能够看到在该配置文件中都是以
id:runlevels:action:progress
这样的命令格式规范的,id 是一个标识号,runlevels表示系统的运行级别,在Linux里面系统的运行级别从0-6一共有六个,action 指定运行状态,progress是执行的命令,一般是一些脚本命令。
通过查看配置文件,才能知道Linux在启动了init进程的时候,会做些什么,首先Linux会使用语句
id:3:initdefault:
initdefault是一个重要的action,指定了系统在启动时候的运行级别,在该语句中runlevel是3,所以系统启动的运行级别是3
接下来系统会执行
si: : sysinit:/etc/rc.d/rc.sysinit
该语句没有写runlevel,表示无论系统在哪个运行级别该语句都会执行,那么该语句执行的就是/etc/rc.d/rc.sysinit 这个脚本,该脚本是系统初始化的脚本,sysinit这个action表示的是系统在初始化的时候执行。
系统初始化完成之后,会想到,第一个执行语句所显示的系统级别,然后根据已经读到的运行级别找到对应级别的语句
13:3:wait:/etc/rc.d/rc 3
该语句只有在运行运行级别是3的时候执行,执行的是/etc/rc.d/rc3.d这个文档,wait表示的是,执行progress中的命令,并等待其结果再运行其他命令。
在运行完这个脚本程序之后,Linux系统就可以启动起来了
|
|
|
|
|
|
|