嵌入式linux的启动流程

1.首先是从init/main.c的start_kernel开始,启动/sbin/init程序,如果bootargs中有指定init=linuxrc,则启动对应的init进程

   start_kernel - rest_init - kernel_init - /sbin/init

2.init起来后会去读/etc/inittab配置文件执行对应的启动命令:

   ::sysinit:/etc/init.d/rcS  -->读取fstab挂载proc&sys,执行mdev动态生成设备节点
   ::respawn:-/bin/sh       -->以登陆模式启动shell

3.登录shell会首先从/etc/profile文件以及.profile文件(若存在的话)读取命令并执行。如果在进入shell时设置了ENV环境变量,或       者在登录shell的.profile文件中设置了该变量,则shell下一步会从该变量命名的文件中读去命令并执行。因此用户应该把每次登录     时都要执行的命令放在.profile文件中,而把每次运行shell都要执行的命令放在ENV变量指定的文件中。设置ENV环境变量的方法     是把下列语句放在你起始目录的.profile文件中
   ENV=$HOME/.anyfilename; export ENV

4.然后根据/etc/profile启动对应的开机程序:

#!/bin/sh
export PATH=/sbin:/bin
export LD_LIBRARY_PATH=/lib
mkdir -p /dev/pts
busybox telnetd&
ulimit -c unlimited
export PATH=$PATH:/config
mkdir -p /dev/bus/usb
mkdir -p /dev/pts
mount -t sysfs none /sys
mount -t tmpfs mdev /dev
mount -t debugfs none /sys/kernel/debug/
mount -t jffs2 mtd:nvrservice /config
mdev -s
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
busybox telnetd&
if [ -e /etc/core.sh ]; then
    echo "|/etc/core.sh %p" > /proc/sys/kernel/core_pattern
chmod 777 /etc/core.sh
fi;
if [ -e /config/demo.sh ]; then
    /config/demo.sh
fi;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值