BusyBoxの概要
BusyBoxは、「組込みLinuxのためのスイスアーミーナイフ」と自らを謳っている、よく利用されているUNIXツール群をまとめて1つの実行ファイルにしたソフトウェアです。組込みLinux向けとあるのはファイルサイズがとても小さく、BusyBoxに含まれているコマンドの通常版をインストールするより大幅にディスク使用量を減らせるためです。これは、BusyBoxが開発された1996年当時に、Debianディストリビューション向けのフロッピーディスク1枚で、システムの復旧やインストーラーが起動するディスクに同梱させる目的で作られたことによります。なお、実際には、Androidを含む組込みLinuxに限らず、通常のLinuxディストリビューションでも動作します。
BusyBoxの主な特徴
各ツールの実行ファイルはLinuxで動作可能な最小のサイズになるよう設計されており、実行ファイルのサイズはuClibcライブラリーを使ったもので1MB未満に収まっています。(uClibc は組み込みシステム向けのC ライブラリーで、glibcよりもサイズが小さいです)。その一方で、通常版のコマンドに比べ、オプションが削除されていることがあります。
各コマンドのサイズ比較
コマンド
BusyBox
Linux
echo
28 KB
33 KB
ls
53 KB
115 KB
find
69 KB
195 KB
httpd
85 KB
512 KB
BusyBoxは各コマンドが1つのバイナリファイルの中に組み込まれて提供されています。そのため、各コマンドを実行するには、busyboxコマンドの第一引数に実行したいコマンドを渡して呼び出します。
例) ls コマンドの呼出
/bin/busybox ls -a
例) ヘルプを使って利用可能なオプションを確認
/bin/busybox ls -help
通常は各コマンドをBusyBoxのコマンドへのリンク(ハードリンク、シンボリックリンク)として作成して、通常のコマンドの呼出がbusyboxコマンドを通した呼出となるようにします。
BusyBoxは、軽量であるため多くのプロダクトに組み込まれています。下記URLにBusyBoxが組み込まれたプロダクトが掲載されています。
https://www.busybox.net/products.html
BusyBoxの動作環境
BusyBoxは、Linuxカーネル2.4以降で完全に動作します。BusyBoxのコードはLinux向けに作られたものですが、FreeBSD、Solaris、MacOSXまたは、Windowsへのポートも容易に可能です。
- Linuxカーネル2.4では、下記のアーキテクチャーで完全に動作します。
ARM, CRIS, H8/300, x86, ia64, x86_64, m68k, MIPS, PowerPC, S390, SH3/4/5, Sparc, v850e, x86_64
- Linuxカーネル2.6では、すべてのアーキテクチャーで動作するとされています。
BusyBoxのライセンス
BusyBox は、GPLv2ライセンスのオープンソース・ソフトウエアです。GPLv2ライセンスの特徴は、次のようなものです。
- 私的組織内部や個人で利用するにあたってのソースコード改変、再コンパイルには制限がありません。
- GPLv2で頒布されたプログラムを再頒布する際にはソースコードを公開する必要があります(コピーレフト)。
BusyBoxの参考情報
BusyBox公式サイト
https://www.busybox.net/
BusyBoxのダウンロード
ソース版
https://www.busybox.net/
バイナリ版
https://www.busybox.net/downloads/binaries/
BusyBoxのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。