|
Linux 开机程序之研讨(11)
这次主要的部份可分为两项 : 因为 init 将会去读取 inittab , 所以 inittab 将被列为第一部份的重点 , 而第二部份就是 rc.M , rc.font , rc.local 这几个 shell script 的说明 . ( rc.inet1 , rc.inet2 这两个关於网路的 shell script 将在以後单独说明 ) 好了 , 我们先从 inittab 看起吧 ! 看看上面的流程 , 在第一行 : init[1] 也就是 init 这个 process 被启动之後 , 它会去读取 /etc/inittab 这个档案 以完成系统的启动 . 从这里 , 我们看到了 LINUX 的确融合了 SVR4 及 SunOS 的一些特性 , inittab 这个档案 , 在 SunOS 系统中是不存在的 , 但是它却是 SVR4 典型的档案 . init 这个 process 会依据 /etc/inittab 中所记载的内容 进入不同的 run-level 并启动不同的 process . 所以 inittab 的重要性 可见一斑 . 那什麽叫 run-level 呢 ? 所谓 run-level 就是系统中定义了许多 不同的 level , 而系统会随著 level 的不同而去启动不同的资源 . 现在就让我们来看一下 /etc/inittab 中的内容 : 在 /etc/inittab 这个档案中 , 每一列是一个进入点 , 假如我们仔细观察每一列 的话 , 那我们就会很容易的发现 , /etc/inittab 的每一列可以被 " : " 这个 字元分成好几个栏位 . 这几个栏位的格式如下 :
id:runlevels:action:process
而它们代表的意义分别如下 :
id : 由两个独特的字元所组成的辨示符号 , 在比较新的 UNIX 系统中 , 已不 受只能有两个字元的限制 .
runlevels : 指出下面一个栏位中的 action 以及 下下个栏位中的 process 会在那些 runlevel 中被执行 . 这一栏的合法值有 0,1,2...6 s 以及 S . 而在正常的启动程序之後 , Superuser 可以使用 telinit 这个指令来改变系统的 runlevel . 又因为在 LINUX 中 , runlevel 的预设值是 5 ( 等一下就会看到 ) 所以 , 只有 那些每一列中 runlevel 那栏有 5 这个值的 , 後面的 process
|