BSD与系统V的初始化机制

来源:互联网 发布:nba中投数据 编辑:程序博客网 时间:2024/05/16 05:33

        内核运行的第一个程序是init进程。该进程读取系统初始化表(/etc/inittab),确定如何初始化和启动各种守护进程。在系统初始化过程中,BSD和系统V的最大区别在于init脚本中。在BSD风格中,所有守护进程实质上只有少数几个脚本启动。例如,Slackware中的init进程采用了BSD分隔,该进程运行系统脚本(etc/rc.d/rc.S)来配置系统。与BSD风格不同,系统V风格的脚本是独立的初始化脚本。它们使用运行级别(runlevel)来对应各组待执行进程或任务,每个运行级别都分配一个子目录来存放初始化脚本,这样可以在对系统和必要的守护进程执行初始化提供最大的灵活性。

        一、初始化表(/etc/inittab)

         系统初始化表(/etc/inittab)为init进程指定了在系统引导过程中如何初始化和启动各种守护进程。在/etc/inittab中,注释行以“#”符号起始,init进程不对其进行处理;非注释行的格式如下:

          id:runlevel:action:process

  • id是该行其余部分的唯一标识符。
  • runlevel可以为空或者包含一个有效的运行级别,它定义了系统将进入的运行状态。
  • action可以是多条不同的命令
  • process是要运行的特定进程或程序。

       二、BSD的初始化表(Slackware)

        所有的系统初始化文件都存储在/etc/rc.d目录中。init进程调用/etc/rc.d/rc.S脚本来激活系统的虚存、挂接必要的文件系统、清空特定的日志目录、初始化即插即用设备,然后调用/etc/rc.d目录中的其他脚本来完成其余的工作,包括加载内核模块(/etc/rc.d/rc.模块)、配置PCMCIA设备(/etc/rc.d/rc.pcmcia)以及设置串口端口(/et/rc.d/rc.serial)。

        系统初始化完成后,init进程转移至运行级别初始化阶段。

       三、系统V的初始化表(Red Hat)

       在Red Hat Linux中,所以的系统初始化脚本都位于/etc/rc.d中。Red Hat Linux使用系统V风格,因此/etc/rc.d子目录会包含更多的子目录,每个子目录都对应一个运行级别:rc0.d~rc6.d以及init.d。/etc/rc.d/rc#.d子目录(#表示十进制个位数)提供了到/etc/rc.d/init.d中的各个主脚本的链接。init.d中脚本的执行参数为start、stop、reload或restart。

原创粉丝点击