WEB开发网
开发学院手机开发Android 开发 Android Linux启动过程详解 阅读

Android Linux启动过程详解

 2010-06-01 22:50:00 来源:WEB开发网   
核心提示:runlevel,sysinit、boot、bootwait等action将在系统启动时无条件运行,Android Linux启动过程详解(6),而忽略其中的runlevel,其余的action(不含initdefault)都与某个runlevel相关,并启动mingetty(见第五节),mingetty是getty的
runlevel。

sysinit、boot、bootwait等action将在系统启动时无条件运行,而忽略其中的runlevel,其余的action(不含initdefault)都与某个runlevel相关。各个action的定义在inittab的man手册中有详细的描述。

在Redhat系统中,一般情况下inittab都会有如下几项:

id:3:initdefault:

#表示当前缺省运行级别为3--完全多任务模式;

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

#启动时自动执行/etc/rc.d/rc.sysinit脚本

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

#当运行级别为3时,以3为参数运行/etc/rc.d/rc脚本,init将等待其返回

0:12345:respawn:/sbin/mingetty tty0

#在1-5各个级别上以tty0为参数执行/sbin/mingetty程序,打开tty0终端用于

#用户登录,如果进程退出则再次运行mingetty程序

x:5:respawn:/usr/bin/X11/xdm -nodaemon

#在5级别上运行xdm程序,提供xdm图形方式登录界面,并在退出时重新执行

rc启动脚本

上一节已经提到init进程将启动运行rc脚本,这一节将介绍rc脚本具体的工作。

一般情况下,rc启动脚本都位于/etc/rc.d目录下,rc.sysinit中最常见的动作就是激活交换分区,检查磁盘,加载硬件模块,这些动作无论哪个运行级别都是需要优先执行的。仅当rc.sysinit执行完以后init才会执行其他的boot或bootwait动作。

如果没有其他 boot、bootwait动作,在运行级别3下,/etc/rc.d/rc将会得到执行,命令行参数为3,即执行/etc/rc.d/rc3.d/目录下的所有文件。rc3.d下的文件都是指向/etc/rc.d/init.d/目录下各个Shell脚本的符号连接,而这些脚本一般能接受start、 stop、restart、status等参数。rc脚本以start参数启动所有以S开头的脚本,在此之前,如果相应的脚本也存在K打头的链接,而且已经处于运行态了(以/var/lock/subsys/下的文件作为标志),则将首先启动K开头的脚本,以stop作为参数停止这些已经启动了的服务,然后再重新运行。显然,这样做的直接目的就是当init改变运行级别时,所有相关的服务都将重启,即使是同一个级别。

rc程序执行完毕后,系统环境已经设置好了,下面就该用户登录系统了。

getty和login

在rc返回后,init将得到控制,并启动mingetty(见第五节)。mingetty是getty的简化,不能处理串口操作。getty的功能一般包括:

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Android Linux 启动

编辑录入:coldstar [复制链接] [打 印]
赞助商链接