由于 init=/linuxrc,因此,在文件系统挂载后,运行的第一个程序就是根目录下的 linuxrc,而这是一个指向/bin/busybox 的链接,也就是说,系统起来后运行的第一个程序就是busybox 本身
busybox首先将试图解析/etc/inittab来获取进一步的初始化配置信息(参考 busybox源代码 init/init
c 中的 parse_inittab()函数)
而事实上,root_qtopia 中并没有/etc/inittab 这个配置文件,根据 busybox的裸机,它将生成默认的配置
其中最重要的一个,就是new_init_action(SYSINIT,INIT_SCRIPT,""), 也 就 决 定 了 接 下 来 初 始 化 的 脚 本 是INIT_SCRIPT 所定义的值,这个宏的默认值是"etc/init
d/rcS"
下面是文件系统中/etc/init
d/rcS 的内容,也是我们要分析的重点1
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:2
runlevel=S3
prevlevel=N4
umask 0225
export PATH runlevel prevlevel##为启动环境设置必要的环境变量;1
/bin/hostname FriendlyARM##设置机器名字;1
/bin/mount -n -t proc none /proc2
/bin/mount -n -t sysfs none /sys3
/bin/mount -n -t usbfs none /proc/bus/usb4
/bin/mount -t ramfs none /dev##挂载"虚拟"文件系统"/proc"和"/sys",并且在/dev 目录下挂载一个 ramfs,相当于把原本nand