码迷,mamicode.com
首页 > 系统相关 > 详细

[linux 整理] linux启动过程3

时间:2016-10-21 15:41:07      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:窗口   isp   查找   tle   读取   解析   order   inittab   user   


本文介绍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文件夹中。

[linux 整理] linux启动过程3

标签:窗口   isp   查找   tle   读取   解析   order   inittab   user   

原文地址:http://www.cnblogs.com/sslblog/p/5984637.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!