嵌入式linux的启动过程,嵌入式Linux启动过程

嵌入式Linux启动时,首先运行u-boot引导内核。内核初始化后,执行/sbin/init,接着运行/etc/inittab指定的脚本。init根据runlevel执行/etc/init.d/rcS及rcS.d目录下的相关文件,完成系统服务配置。这个过程中,inittab文件和rcS脚本起着关键作用。
摘要由CSDN通过智能技术生成

在嵌入式Linux中,系统上电后,首先运行u-boot,u-boot引导内核启动

在内核初始化完成后,嵌入式linux 文件系统的启动过程主要包含以下几个步骤:

1. 内核执行/sbin/init 文件,init进程开始运行

2. init进程分析并执行/etc/inittab 文件

3. init进程根据inittab文件执行/etc/init.d/rcS 文件

3.1/etc/init.d/rcS 执行

/etc/init.d/rcS.d/S*目录下的相关文件

4.init进程根据inittab文件中的runleve执行/etc/init.d/rc0.d到rc6.d目录中的一个目录中的文件

说明1:inittab文件内容

#设置默认的运行级别

id:5:initdefault:

#系统开机需要运行的第一个脚本

si::sysinit:/etc/init.d/rcS

# 运行级

#0 挂起系统,6 重新引导,1 单用户模式,2-5多用户模式

I0:0:wait:/etc/init.d/rc 0

I1:1:wait:/etc/init.d/rc 1

I2:2:wait:/etc/init.d/rc 2

I3:3:wait:/etc/init.d/rc 3

I4:4:wait:/etc/init.d/rc 4

I5:5:wait:/etc/init.d/rc 5

I6:6:wait:/etc/init.d/rc 6

上述格式如下(参考https://blog.csdn.net/pengrui18/article/details/49757451):

label:runlevel:action:process

action字段定义了该进程应该运行在何种状态下

boot

在系统启动时运行,忽略runlevel

bootwait

在系统启动时运行,等待init进程完成。忽略runlevel

ctrlaltdel 当Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。忽略runlevel

initdefault 不要执行这个进程,它用于设置默认runlevel

kbrequest

当init从键盘中收到信号时运行。这里要求键盘组合符合KeyBoardSigral(参见/usr/share/doc/kbd-*关于键盘组合的文档)

off

禁止进入,因此该进程不运行

once

每一个runlevel级别运行一次

ondemand

当系统指定特定的运行级别A、B、C时运行

powerfail 当init收到SIGPWR信号时运行

powerokwait 当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行

powerwait 当收到SIGPWD信号,并且init等待进程结束时运行

respawn

不管何时终止都重新启动进程

sysinit

在运行boot或bootwait进程之前运行

wait

运行进程等待输入运行模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值