嵌入式中busybox启动基本流程_第1页
嵌入式中busybox启动基本流程_第2页
嵌入式中busybox启动基本流程_第3页
嵌入式中busybox启动基本流程_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、BusyBoxBusyBox是标准 Linux工具的一个单个可执行实现。BusyBox包含了一些简单的工具,例如 cat和echo,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet。有些人将 BusyBox称为Linux工具里的瑞士军刀.简单的说BusyBox就好像是个大 工具箱,它集成压缩了Linux的许多工具和命令。嵌入式根目录下的bin、sbin和usr目录以及linuxrc通常就是BusyBox。在构建嵌入式linux的根文件系统的时候,会根据目标平台配置BusyBox源码,编译生成这三个目录和一个文件。根目录下的目录和文件需要自行建立或者从Bus

2、yBox的example中拷贝修改。二、嵌入式中的BusyBox的启动流程脚本执行顺序如下:/sbin/in it -> /etc/i ni ttab -> /etc/i nit.d/rcS1、在kernel/init/main.c的init函数中有代码if (execute_comma nd)execve(execute_comma nd,argv_i nit,e nvp_i nit);execve("/sb in/i nit",argv_i nit,e nvp_in it);bootloader会给内核的 main函数init=/linuxrc 这个参数,于

3、是就有了 execute_command = "/linuxrc", busybox 中 _install 目录下的 linuxrc 是 busybox 的一个软链 接,指向/bin/busybox,而/sbin/init也是/bin/busybox的符号链接,因此这个linuxrc基本没什么用处,我们不要这个linuxrc脚本可以直接通过/sbin/init执行busybox的初始化,或者重写 linuxrc,添加自己的一些初始化的东西。2、BusyBox初始化BusyBox是目标板系统上执行的第一个应用程序。当BusyBox知道调用它的目的是要执行init,它会立即跳转

4、到 init进程。BusyBox的in it进程依次进行以下工作:1 )为init设置信号处理进程。2 )初始化控制台。3)解析 inittab 文件(/etc/inittab )。4 )执行系统初始化命令。5 )执行所有阻塞的(会导致in it暂停的)ini ttab命令(动作类型:wait )。6) 执行所有仅执行一次的inittab命令(动作类型:once)。7) 一旦完成以上工作,init进程便会循环执行以下工作:8) 执行所有终止时必须重新启动的inittab命令(动作类型:respawn )。9) 执行所有中止时必须重新启动但启动前必须前询问用户的inittab命令(动作类 型:

5、askfirst)。其中,inittab文件的每一行的格式为:id:runlevel:action:process 。 process字段用来指定所执行程序的路径,包括命令行选项。action字段用来指定可应用到process的动作。BusyBoxinit能够识别的inittab动作类型如下表所示:动作结果sysi nit为init提供初始化命令行的路径respaw n每当相应的进程终止执仃便重新启动askfirst类似respawn,不过它的主要用途是减少系统上执行的终端应用程序的数量。它将会促使in it在控制台上显示Please press En ter to activate this

6、 con sole 的信息,并在 重新启动进程之前等待用户按下Enter键wait告诉init必须等到相应的进程完成才能继续执行ctrlaltdel当按下Ctrl-Alt-Delete组合键时,执行相 应的进程shutdow n当系统关机时,执行相应的进程restart当in it重新启动时,执行相应的进程。通常此处所执行的 进程就是in it本身下面就是一个典型的嵌入式busybox的inittab文件的例子::restart:/sbin/init初始化 init 进程:sysinit:/etc/iiiit.d/rcS运行个性化脚本:respawn:-/bin/sh川动后进入 shell 环

7、境:ctrla 1 tdel:/sbin/rebool捕捉 ctrl+alt+del 键,并巫启;shutdown:/bin/umount -a -r 当机时卸载所有文件系统:shutdow n:/sb i n/swapoff -a可见busybox分析完inittab脚本中会执行rcS脚本,下面就是一个rcS脚本的例子:echo "export system param."export PATH=/sbi n:/bin:export HOSTNAME=micro2440echo "init ip address."/sbi n/ifconfig eth

8、O 192.168.254.177echo "Mount all filesystems (of the give n types) men ti oned in fstab." mount -a其中mount -a会加载文件/etc/fstab文件中的选项,这个目录的编写主要是安排哪些目录挂载哪些次级文件系统:例如:proc/proc proc defaults 00tmpfs/tmp tmpfs defaults 00sysfs/sys sysfs defaults 00上面的rcS文件中不但加载了在etc/fstab中定义的文件系统(mount -a),还对系统的环境

9、变量、ifconfig以及打印欢迎信息进行设置,这样比较省事儿,还有一种做法是在rcS中运行/usr/etc/rc.local脚本,该脚本的主要工作是安装核心模块、进行网络配置、运行应用程序、启动图形界面等,这里的rc.local脚本只进行ifconfig,打印欢迎信息,并执行/usr/etc/profile ,profile文件时对应用程序的环境变量进行设置:/sbin/in it -> /etc/i nittab -> /etc/i nit.d/rcS->/usr/etc/rco cal->/usr/etc/profile;rcS/mn t/etc/i nit.d/#!/bin/sh/bin/mountexec /usr/etc/rcocalrcocal/usr/etc/#!/bin/sh /usr/etc/profileecho "HELLO! Embestuecho "ifconfig

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论