下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、仅执行相应的进程一次,而且不会等待它完成一、BusyBoxBusyBox是标准Linux工具的一个单个可执行实现。BusyBox包含了一些简单的工具,例如cat和echo,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet。有些人将BusyBox称为Linux工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令。嵌入式根目录下的bin、sbin和usr目录以及linuxrc通常就是BusyBox。在构建嵌入式linux的根文件系统的时候,会根据目标平台配置BusyBox源码,编译生成这三个目录和一个文件。根目录下的目
2、录和文件需要自行建立或者从BusyBox的example中拷贝修改。二、嵌入式中的BusyBox的启动流程脚本执行顺序如下:/sbin/init-/etc/inittab-/etc/init.d/rcS1、在kernel/init/main.c的init函数中有代码if(execute_command)execve(execute_command,argv_init,envp_init);execve(/sbin/init,argv_init,envp_init);bootloader会给内核的main函数init=/linuxrc这个参数,于是就有了execute_command=/linu
3、xrc,busybox中install目录下的linuxrc是busybox的一个软链接,指向/bin/busybox,而/sbin/init也是/bin/busybox的符号链接,因此这个linuxrc基本没什么用处,我们不要这个linuxrc脚本可以直接通过/sbin/init执行busybox的初始化,或者重写linuxrc,添加自己的一些初始化的东西。2、BusyBox初始化BusyBox是目标板系统上执行的第一个应用程序。当BusyBox知道调用它的目的是要执行init,它会立即跳转到init进程。BusyBox的init进程依次进行以下工作:1)为init设置信号处理进程。2)初始
4、化控制台。3)解析inittab文件(/etc/inittab)。4)执行系统初始化命令。5)执行所有阻塞的(会导致init暂停的)inittab命令(动作类型:wait)。6)执行所有仅执行一次的inittab命令(动作类型:once)。7)一旦完成以上工作,init进程便会循环执行以下工作:8)执行所有终止时必须重新启动的inittab命令(动作类型:respawn)。9)执行所有中止时必须重新启动但启动前必须前询问用户的inittab命令(动作类型:askfirst)。其中,inittab文件的每一行的格式为:id:runlevel:action:process。process字段用来指
5、定所执行程序的路径,包括命令行选项。action字段用来指定可应用到process的动作。BusyBoxinit能够识别的inittab动作类型如下表所示:动作结果sysinit为init提供初始化命令行的路径respawn每当相应的进程终止执行便重新启动askfirst类似respawn,不过它的主要用途是减少系统上执行的终端应用程序的数量。它将会促使init在控制台上显示“PleasepressEntertoactivatethisconsole.的信息,并在重新启动进程之前等待用户按下Enter键wait告诉init必须等到相应的进程完成才能继续执行仅执行相应的进程一次,而且不会等待它完
6、成ctrlaltdel当按下Ctrl-Alt-Delete组合键时,执行相应的进程shutdown当系统关机时,执行相应的进程restart当init重新启动时,执行相应的进程。通常此处所执行的进程就是init本身面就是一个典型的嵌入式busybox的inittab文件的例子::restart:/sbin/init/初始化init进程:sysinit:/etc/initd/rcS/运行个性化脚本:respawn:-/bin/sh启动后进入shell环境:ctrialtdel:/sbin/reboot捕捉ctrl-Halt+del键,并重肩:shutdown:/biwumount-r门机时卸载所
7、有文件系统可见bUSybox分析完lnittab脚本中会执行rcS脚本,下面就是一个rcS脚本的例子:echoexportsystemparamexportPATH=/sbln:/bln:exportHOSTNAME=mlcro2440echolnltlpaddress/sbln/lfconflgeth0192.168.254.177echoMountallfllesystems(oftheglventypes)mentlonedlnfstab.mount-a其中mount-a会加载文件/etc/fstab文件中的选项,这个目录的编写主要是安排哪些目录挂载哪些次级文件系统:例如:proc/pr
8、ocprocdefaults00tmpfs/tmptmpfsdefaults00sysfs/syssysfsdefaults00上面的rcS文件中不但加载了在etc/fstab中定义的文件系统(mount-a),还对系统的环境变量、ifconfig以及打印欢迎信息进行设置,这样比较省事儿,还有一种做法是在rcS中运行/usr/etc/rc.local脚本,该脚本的主要工作是安装核心模块、进行网络配置、运行应用程序、启动图形界面等,这里的rc.local脚本只进行ifconfig,打印欢迎信息,并执行/usr/etc/profile,proflle文件时对应用程序的环境变量进行设置:/sbin/init-/etc/inittab-/etc/init.d/rcS-/usr/etc/rc.local-/usr/etc/profile;rcS/mnt/etc/init.d/#!/bin/sh/bin/mount-aexec/usr/etc/rc.localcocal/usr/etc/#!/bin/sh/usr/etc/profileechoHELLO!Embeste
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论