博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[linux 整理] linux启动过程3
阅读量:4318 次
发布时间:2019-06-06

本文共 950 字,大约阅读时间需要 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文件夹中。

转载于:https://www.cnblogs.com/sslblog/p/5984637.html

你可能感兴趣的文章
Spring MVC 异常处理 - SimpleMappingExceptionResolver
查看>>
props 父组件给子组件传递参数
查看>>
【loj6038】「雅礼集训 2017 Day5」远行 树的直径+并查集+LCT
查看>>
十二种获取Spring的上下文环境ApplicationContext的方法
查看>>
UVA 11346 Probability 概率 (连续概率)
查看>>
linux uniq 命令
查看>>
Openssl rand命令
查看>>
HDU2825 Wireless Password 【AC自动机】【状压DP】
查看>>
BZOJ1015: [JSOI2008]星球大战starwar【并查集】【傻逼题】
查看>>
HUT-XXXX Strange display 容斥定理,线性规划
查看>>
mac修改用户名
查看>>
一道关于员工与部门查询的SQL笔试题
查看>>
Canvas基础
查看>>
[Hive - LanguageManual] Alter Table/Partition/Column
查看>>
可持久化数组
查看>>
去除IDEA报黄色/灰色的重复代码的下划波浪线
查看>>
Linux发送qq、网易邮件服务配置
查看>>
几道面试题
查看>>
【转】使用 WebGL 进行 3D 开发,第 1 部分: WebGL 简介
查看>>
js用正则表达式控制价格输入
查看>>