系统加电之后, 首先进行的硬件自检, 然后是 bootloader 对系统的初始化, 加载内核。
内核被加载到内存中之后, 就开始执行了。 一旦内核启动运行, 对硬件的检测就会决定需要
对哪些设备驱动程序进行初始化。 从这里开始, 内核就能够挂装根文件系统 (这个过程类似
于 Windows 识别并存取 C 盘的过程)。内核挂装了根文件系统,并已初始化所有的设备驱
动程序和数据结构等之后,就通过启动一个叫 init 的用户级程序,完成引导进程。
系统首先启动 init 进程,该进程先会执行 /etc/rc.d/rc.sysinit ,然后去读 /etc/inittab 文件
决定运行模式,根据默认运行模式读取 /etc/rc.d/rc $RUNLEVEL 文件夹下的执行程序连接,
这些文件以 K 或 S 开头,它们都是指向 init.d/ 的一些软连接。
Init 进程是系统启动之后的第一个用户进程,所以它的 pid( 进程编号 )始终为 1。init 进
程上来首先做的事是去读取 /etc/ 目录下 inittab 文件中 initdefault id 值,这个值称为运行级别
(run-level) 。它决定了系统启动之后运行于什么级别。运行级别决定了系统启动的绝大部分
行为和目的。这个级别从 0 到 6 ,具有不同的功能。不同的运行级定义如下:
# 0 - 停机(千万别把 initdefault 设置为 0,否则系统永远无法启动)
# 1 - 单用户模式
# 2 - 多用户,没有 NFS
# 3 - 完全多用户模式 (标准的运行级 )
# 4 – 系统保留的
# 5 - X11 (x window)
# 6 - 重新启动 (千万不要把 initdefault 设置为 6,否则将一直在重启 )
rc.d 的内容如下:
init.d/ : 各种服务器和程序的二进制文件存放目录。
rc $RUNLEVEL.d/: 各个启动级别的执行程序连接目录。里头的东西都是指向 init.d/ 的一些
软连接。具体的后边叙述。
还有三个脚本 :rc.sysinit, rc, rc.local
如图:
评论0
最新资源