トップ OSS紹介 BusyBox

BusyBox

NRIのOpenStandiaが提供するBusyBox詳細情報

バージョンアップ情報

BusyBox情報

BusyBox情報更新日:2021/08/02

BusyBoxとは

BusyBoxは、「組込みLinuxのためのスイスアーミーナイフ」と自らを謳っている、よく利用されているUNIXツール群をまとめて1つの実行ファイルにしたソフトウェアです。組込みLinux向けとあるのはファイルサイズがとても小さく、BusyBoxに含まれているコマンドの通常版をインストールするより大幅にディスク使用量を減らせるためです。これは、BusyBoxが開発された1996年当時に、Debianディストリビューション向けのフロッピーディスク1枚で、システムの復旧やインストーラーが起動するディスクに同梱させる目的で作られたことによります。なお、実際には、Androidを含む組込みLinuxに限らず、通常のLinuxディストリビューションでも動作します。

主な特徴

各ツールの実行ファイルは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が組み込まれたプロダクトが掲載されています。

動作環境

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で頒布されたプログラムを再頒布する際にはソースコードを公開する必要があります(コピーレフト)。

参考情報

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください
オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。