[linux 整理] linux启动过程3
本文介绍linux启动过程的第三步
busybox--------------------> rc init
busybox位置即内容
busybox/init/init.c
1.各种设置信号
signal(SIGHUP, exec_signal)
......
2. ...public/apps/busybox/init/init.c function: console_init 作用:初始化窗口大小
3. ..../busybox/init/init.c function: parse_inittab 作用:读取etc/inittab file
rootfs/VD625/etc/inittab
sys初始化时会执行/etc/rcS
rootfs/VD625/etc/rcS
设置环境变量
挂载文件系统
调用rc命令:rc init
.../apps/rc/rc.c程序中
rc_init 函数
由user/private/apps/rc/rc_fun.c编译得到
工作:mkdir创建文件目录
将flash块挂载到对应目录
初始化配置,加载驱动模块,启动各种服务rc xxx start/stop/restart
rc xxx start/stop/restart/create过程解析
对于rc xxx start/stop/restart
在rc/rc.c中
发现传递到了rc_action(argc, argv)中 argv为 xxx start
在rc/rc_fun中
action函数
假如说为start时, 传递给了 rc_start(ap, ap_name, xargc, xargv) 其中ap_name为xxx
在rc_fun.c中 存在 rc_start()
可以看到start函数逐个查找ap中的name与 ap_name (即xxx) 比较,当相同的时候执行(*ap->startfun)(argc, argv)
我们观察ap指向的数组(在文件apps.h中),可以发现
startfun 即为 服务xxx的启动函数
该服务的定义函数以及头文件都在rc文件夹中。

![Image(33)[4] Image(33)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145422029-111412990.png)
![Image(34)[4] Image(34)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145422998-223710664.png)
![Image(35)[4] Image(35)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145423935-909205889.png)
![Image(36)[4] Image(36)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145425092-1707027356.png)
![Image(37)[4] Image(37)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145425967-1459813995.png)
![Image(38)[4] Image(38)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145426607-1244516204.png)
![Image(40)[4] Image(40)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145429123-967966596.png)
![Image(41)[4] Image(41)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145430170-509405295.png)
![Image(42)[4] Image(42)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145431092-1680120394.png)
![Image(43)[4] Image(43)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145431779-117077422.png)
![Image(44)[4] Image(44)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145432529-2031966902.png)
![Image(45)[4] Image(45)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145433670-1127588478.png)
![Image(46)[4] Image(46)[4]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145434357-1584978557.png)
![Image(47)[6] Image(47)[6]](http://images2015.cnblogs.com/blog/824074/201610/824074-20161021145435373-1908242283.png)
浙公网安备 33010602011771号