BusyBox 是一个集成了三百多个最常用
Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和
echo等等,还包含了一些更大、更复杂的工具,例grep、
find、
mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的
瑞士军刀。简单的说BusyBox就好像是个大
工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Linux 系统的自带的
shell。
简介
BusyBox 将许多具有共性的小版本的UNIX工具结合到一个单一的可执行文件。这样的集合可以替代大部分常用工具比如的GNU fileutils , shellutils等工具,BusyBox提供了一个比较完善的环境,可以适用于任何小的
嵌入式系统。
发源
BusyBox 最初是由
Bruce Perens 在 1996 年为Debian
GNU/Linux安装盘编写的。其目标是在一张
软盘上创建一个可引导的 GNU/Linux 系统,这可以用作安装盘和急救盘。
编译安装
#make defconfig
#make
#make install
编译好后在busybox目录下生成
子目录_install,里面的内容:
其中
可执行文件busybox在需要制作文件系统映像烧入板子的情况下,busybox应放在根文件
系统目录下的bin中,其他的都是指向他的
符号链接.
交叉编译
要实现
交叉编译,需要设置好
交叉编译器前缀,可以使用以下命令设置前缀:
#make CROSS_COMPILE=arm-linux-uclibcgnueabi-
或者,可以由
环境变量设置CROSS_COMPILE的值,CROSS_COMPILE的
默认值不是可执行文件的前缀。
配置
busybox的配置程序和
linux内核菜单配置方式简直一模一样.熟悉用make menuconfig方式配置linux内核的朋友很容易上手.
#cp busybox-1.00.
tar.gz /babylinux
#cd /babylinux
#tar xvfz busybox-1.00.tar.gz
#cd busybox-1.00
#make menuconfig
下面是需要编译进busybox的功能选项。
General Configuration应该选的选项
Show verbose applet usage messages
Runtime SUID/SGID configuration via /etc/busybox.conf
Build Options
Build BusyBox as a static binary (no shared libs)
这个选项是一定要选择的,这样才能把busybox编译成
静态链接的
可执行文件,
运行时才独立于其他
函数库.否则必需要其他
库文件才能运行,在单一个
linux内核不能使它正常工作.
Installation Options
Don't use /usr
这个选项也一定要选,否则make install 后busybox将安装在
原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向它的链接.
其它选项都是一些
linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了,配置好后退出并保存。
使用技巧
可以这样用busybox
#busybox ls
他的功能就相当运行ls命令
最常用的用法是建立指向busybox的链接,不同的链接名完成不同的功能.
#ln -s busybox ls
#ln -s busybox rm
#ln -s busybox mkdir
然后分别运行这三个链接:
#./ls
#./rm
#./mkdir
就可以分别完成了ls rm 和mkdir命令的功能.虽然他们都指向同一个
可执行程序busybox,但是只要链接名不同,完成的功能就不同,很多
linux网站都提供busybox的
源代码下载。