BusyBox原理简单分析
刚刚接触嵌入式不久,花了半天的时间大体上看了看BusyBox,下面我对BusyBox的原理进行一个肤浅的分析(在网上我不有找到相关的内容).1、介绍 BusyBox称作是嵌入式开发的瑞士军刀,实用,短小,稳定。
- BusyBox利用Linux实用工具中代码大量重复的事实,将重复的代码重新整理,放到一个文件中,减少了多次包含。
- BusyBox通过简化非必要的复杂功能,减少占用的空间。
- BusyBox的完全可定制性,提供了非常灵活,宜于扩展的结构。
- 直接使用BusyBox
- 建立指向BusyBox的链接
3、BusyBox源码分析 BusyBox源码算是一个比较庞大的工程,但是该工程整体上看可以分为三个部分来讲述:
- (1) BusyBox架构
- (2) BusyBox实用库
- (3) BusyBox的Applet扩展
4、BusyBox源中的一些脚本分析
(1) applets /busybox.mkll, 该脚本通过分析include/config.h和 inlcude/applets.h两个文件来得到被配置的文件的链接。
(2) applets/install.sh, 该脚本根据busybox.mkll生成的busybox.link来建立链接文件
(3) 源码目录下的Makefile,提供了make menuconfig对源码进行配置,生成.config文件,make将生成busybox.
5、扩展BusyBox的功能
请参考docs/new_applet-HOWTO.txt文档
(1) 、在适当的目录编写applet代码
(2)、在所在目录的Makefile.in文件中,增加相应的 applet配置
(3)、在所在目录的 config.in文件中,增加applet的图形配置
(4)、在include/usage.h中增加相应的usage说明
(5)、在 inlucde/applet.h中增加相应的applet,注意必须保证其正确的按母排序
6、其它 BusyBox本身为了减化期间 ,在很多时间不提供配置,比如你想要改telnetd的端口,那么 ,你要做的通常是去修源代码,后重新编译成busybox.