busybox

busybox

BusyBox 是一個集成了三百多個最常用Linux命令和工具的軟體。BusyBox 包含了一些簡單的工具,例如ls、cat和echo等等,還包含了一些更大、更複雜的工具,例grep、find、mount以及telnet。有些人將 BusyBox 稱為 Linux 工具里的瑞士軍刀。簡單的說BusyBox就好像是個大工具箱,它集成壓縮了 Linux 的許多工具和命令,也包含了 Android 系統的自帶的shell。

基本信息

簡介

BusyBox 將許多具有共性的小版本的UNIX工具結合到一個單一的執行檔。這樣的集合可以替代大部分常用工具比如的GNU fileutils , shellutils等工具,BusyBox提供了一個比較完善的環境,可以適用於任何小的嵌入式系統。

發源

BusyBox 最初是由 Bruce Perens 在 1996 年為Debian GNU/Linux安裝盤編寫的。其目標是在一張軟碟上創建一個可引導的 GNU/Linux 系統,這可以用作安裝盤和急救盤。

編譯安裝

#make defconfig

#make

#make install

編譯好後在busybox目錄下生成子目錄_install,裡面的內容:

drwxr-xr-x 2 root root 4096 11月 24 15:28 bin

rwxrwxrwx 1 root root 11 11月 24 15:28linuxrc -> bin/busybox

drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin

其中執行檔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的原始碼下載。

android busybox android busybox

相關詞條

相關搜尋

熱門詞條

聯絡我們