简单明了!嵌入式Linux启动过程详解

init阶段(1) 安全

 

1.肯定用户登陆模式网络

在“/etc/inittab”中列出了以下所示的登陆模式,主要有单人维护模式、多用户无网络模式、文字界面多用户模式、X-Windows多用户模式等。其中的单人维护模式(runlevel为1)是相似于Windows中的“安全模式”,在这种状况下,系统不加载复杂的模式从而使系统可以正常启动。在这些模式中最为常见的是3或5,其中本系统中默认的为5,也就是X-Windows多用户模式。学习

#Default runlevel. Therunlevels usedby RHS are:this

#   0 - halt (Do NOT set initdefault tothis)spa

#   1 - Single user moderest

#   2 - Multiuser, without NFS (The same as 3,if you do not have networking)进程

#   3 - Full multiuser mode (文本界面启动模式)get

#   4 - unusedit

#   5 - X11 (图形界面启动模式)io

#   6 - reboot (Do NOT set initdefault tothis)

#

id:5:initdefault:

 

init阶段(2)

 

2。执行脚本/etc/rc.d/rc.sysinit

 

在肯定了登陆模式以后,就要开始将Linux的主机信息读入Linux系统,其内容就是文件“/etc/rc.d/rc.sysinit”中的。查看此文件能够看出,在这里肯定了默认路径、主机名称、“/etc/sysconfig/network”中所记录的网络信息等。

 

#System initialization.

si::sysinit:/etc/rc.d/rc.sysinit

 

init阶段(3)

 

3.启动内核的外挂模块及各运行级的脚本

 

在此,主要是读取模块加载配置文件(/etc/modules.conf),以确认须要加载哪些模块。嵌入式系统学习企鹅意义气呜呜吧久零久易,接下来会根据不一样的运行级(runlevel),经过带参数(运行级)运行“/etc/rc.d/rc”脚本,加载不一样的模块,启动系统服务。init进程会等待(wait)“/etc/rc.d/rc”脚本的返回。

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

 

init阶段(4)

 

4. 进入用户登陆界面

 

系统还须要配置一些异常关机的处理部分。最后经过“/sbin/mingetty”打开几个虚拟终端(tty1~tty6),用于用户登陆。若是运行级为5(图形界面启动),则运行xdm程序,给用户提供xdm图形界面的登陆方式。若是在本地打开一个虚拟终端,当这个终端超时没有人登陆或者过久没有人击键时,该终端会退出执行,脚本中的“respawn”即告诉init进程从新打开该终端,不然在通过一段时间以后,咱们会发现这个终端消失了,没法利用ALT+Fn切换。

 

init阶段(5)

#Trap CTRL-ALT-DELETE

ca::ctrlaltdel:/sbin/shutdown-t3 -r now

#When our UPS tells us power has failed, assume we have a few minutes

pf::powerfail:/sbin/shutdown-f -h +2 "Power Failure; System Shutting Down"

#If power was restored before the shutdown kicked in, cancel it.

pr:12345:powerokwait:/sbin/shutdown-c "Power Restored; Shutdown Cancelled"

#Run gettysin standard runlevels

1:2345:respawn:/sbin/mingettytty1

2:2345:respawn:/sbin/mingettytty2

3:2345:respawn:/sbin/mingettytty3

4:2345:respawn:/sbin/mingettytty4

5:2345:respawn:/sbin/mingettytty5

6:2345:respawn:/sbin/mingettytty6

#Run xdmin runlevel5

x:5:respawn:/etc/X11/prefdm-nodaemon 

程序流程图以下:

相关文章
相关标签/搜索