這是第一次聽到這個東東,經過調查後,發覺這東東很好,特別適用在對磁碟空間有嚴格限制的基於Linux的嵌入式系統中使用.而且這個玩意目前已經在很多的產品中得到應用,如諾基亞的770,摩托羅拉的A780等等手機.
Busybox是什麼東西呢? 直接引用作者的話是: "BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system." (摘自 http://www.busybox.net/about.html)
Busybox的官方網站:http://www.busybox.net/
這裡有必要提一下開發busybox的背景,busybox開發的目的是在一張1.44M的磁碟片上建立一張GNU/Linux可啟動盤,盤中包含核心,裝置驅動和基本一些工具軟體,如編輯文本,建立目錄等等工具.busybox就是包含這些基本的應用軟體.
基於這樣的開發目的,必須想辦法去精簡這些工具軟體的代碼量的大小. Busybox中主要使用兩種辦法來較少代碼量.
(1) 僅提供應用最基本的功能.如vi,僅提供簡單的編輯檔案功能.剔除其他一些增強功能.用作者的原話說,busybox提供的vi是"a small 'vi' clone"
(2) 共用應用軟體間的功能相同的代碼.如grep和find,都需要在目錄中遞迴尋找檔案,就可以共用這部分代碼.
Busybox包含了許多常用的應用,vi,mkdir等等,還提供了指令碼的命令解析器,能夠解析ash,bourne shell格式的指令碼.這些應用是可以手工配置的,通過make menuconfig可以任意指定你要包含的應用.
本章主要對busybox做個簡單的介紹,接下來文章會詳細講到如何安裝,配置即使用等等.
1007/10/24
參考: IBM的developerworks論壇的 BusyBox simplifies embedded Linux systems