(1)init进程介绍
init进程是由内核启动的第一个也是唯一的一个用户态进程(其它进程均属于内核态),它也是内核启动的最后一个进程,其ID号为1.启动init进程时,它会根据配置文件来决定启动哪些程序,比如,由init进程可以启动用户指定的程序,或启动shell,或执行某些配置脚本.Init进程是后续所有进程的发起者.
init进程是由内核启动的第一个也是唯一的一个用户态进程(其它进程均属于内核态),它也是内核启动的最后一个进程,其ID号为1.启动init进程时,它会根据配置文件来决定启动哪些程序,比如,由init进程可以启动用户指定的程序,或启动shell,或执行某些配置脚本.Init进程是后续所有进程的发起者.
(2)Init进程启动顺序
启动Init进程,其实质是执行/sbin/init程序.即Init进程可以启动其它子进程,或启动shell,本质上是因为内核执行了可执行序/sbin/init.因此,可以说Init进程的作用只不过是可执行程序/sbin/init的作用.可以这样来理解,当执行可执行程序/sbin/init时,该程序就是一进程,名字是Init.当然,用户也可以根据需要编写自己的/sbin/init程序,或者传入命令行参数"init=xxxx"指定某个程序作为Init进程运行.在嵌入式领域内,一般来说多使用Busybox集成的Init程序.
从上图可以看出,内核启动的最后一步就是启动Init进程.该Init进程中,它主要做了以下几项工作:
<1>读取系统初始化表格文件/etc/inittab.
<2>建立getty进程,在终端上显示login提示符,以等待用户的登录.
<3>进程getty会调用exec以执行login程序.该程序将会核对用户账号和密码.
<4>login程序会调用exec以执行shell命令解释器,也可执行X-windows.
<5>shell命令解释器会读取系统环境配置脚本/etc/profile.