busybox是一个工具库,里面包含了很多的工具,比如:ls、cd、mkdir等linux下常用的命令工具,一般用于嵌入式系统中,为啥呢?
刚刚已经说了busybox是一个工具库,为什么适用于嵌入式中呢,主要是体积小,嵌入式中flash存储小,要是把pc系统上的各种安装包安装工具的话,没有这么大的空间来存放这些工具,busybox优点就是体积小,完全功能编译也不到1M,在嵌入式系统中使用最为合适。
从源码中可以看出,工具命令的代码实现已经被重构了,源码中有一个公用的库libbb,所有工具都公用这个库,减少了代码体积,使得编译出来的程序体积更小但功能不变。
可以去busybox源码包下载地址下载。
有三种配置选项:
(1)defconfig (缺省配置)
(2)allyesconfig(最大配置)
(3)allnoconfig(最小配置)
一般使用缺省配置就可以,配置完成后,生成.config文件。在使用上述命令配置之前,需要去Makefile文件中指定编译工具链。
然后在使用命令配置:
make defconfig
配置好.config文件之后,使用:
make
直接编译即可。如果在编译过程中报错,可以把报错的相关工具给去掉,然后重新编译即可。使用下面命令进行安装,会生成busybox执行程序。
make install
.config文件结构
从配置文件结构可以看出,需要编译的工具选项后面“=y”,不需要编译的工具注释掉根据文件中的格式配置即可。
手动裁剪完成后,重新编译即可。
busybox的使用有三种方式:
(1)busybox后面直接跟要调用的命令
busybox ls -l
busybox cd /home
(2)将busybox程序重命令
cp busybox tftp
然后直接使用tftp命令即可。
(3)使用软连接方式
ln -s busybox cd
ln -s busybox ls
然后直接调用cd、ls 命令即可。
大家在编译使用过程中遇到什么问题或有好的想法,环境大家留言讨论。