嵌入式arm-linux系统一般从上电到程序运行的大致流程为
Bootloader->kernel->mount rootfs->excute init script->excute user APPs
今天我们只分析挂载文件系统之后到运行用户程序之前的那部分内容:
arm-linux在启动时,启动的init进程其实是busybox中的init,我们知道busybox它不仅仅只有简单一些应用小程序,它也有busybox版的init的!
busybox版本的init程序在busybox-1-23-2(2015年第一版发布的)/init/init.c--->init_main()
在init_main函数中,我们不难发现它初始化了什么,大概如下
1).初始化一些信号的默认处理行为
2).初始化控制台
3).设置信号处理函数
3).运行初始化脚本,默认检测/etc/init.d/rcS文件夹内容
4).运行SYSINIT
5).运行WAIT
6).运行ONCE
7).进入init循环
SYSINIT:是运行初始化配置文件
WAIT:是运行所有需要等待的
ONCE:是运行只运行一次的程序
init循环:
不断的检测系统中是否有需要运行停止的,停止的是否需要重新启动等等一些功能。
Bootloader->kernel->mount rootfs->excute init script->excute user APPs
今天我们只分析挂载文件系统之后到运行用户程序之前的那部分内容:
arm-linux在启动时,启动的init进程其实是busybox中的init,我们知道busybox它不仅仅只有简单一些应用小程序,它也有busybox版的init的!
busybox版本的init程序在busybox-1-23-2(2015年第一版发布的)/init/init.c--->init_main()
在init_main函数中,我们不难发现它初始化了什么,大概如下
1).初始化一些信号的默认处理行为
2).初始化控制台
3).设置信号处理函数
3).运行初始化脚本,默认检测/etc/init.d/rcS文件夹内容
4).运行SYSINIT
5).运行WAIT
6).运行ONCE
7).进入init循环
SYSINIT:是运行初始化配置文件
WAIT:是运行所有需要等待的
ONCE:是运行只运行一次的程序
init循环:
不断的检测系统中是否有需要运行停止的,停止的是否需要重新启动等等一些功能。