BusyBox は、Coreutilsなど標準UNIXコマンドで重要な多数のプログラムを単一の実行ファイルに「詰め込んで」提供する、特殊な方式のプログラムである(その詰め込み方法を指して呼ぶこともある)。BusyBoxの実行ファイルはLinux上で最小の実行ファイルとなるよう設計されており、各コマンドの実行ファイルをインストールするのに比べディスクの使用量を大幅に削減することができる。そのため、特定用途のLinuxディストリビューションや組み込みシステムに適しており、「組み込みLinuxの十徳ナイフ」とも呼ばれている。GPLv2 でリリースされているフリーソフトウェアである。機能的には1994年にメリーランド大学カレッジパーク校で James da Silva が開発したFreeBSD用のプログラムである "crunchgen" コマンドと似ている。1996年、ブルース・ペレンズが書いたのが起源である。Debianディストリビューション用のレスキューディスクにもインストーラにもなるフロッピーディスク1枚の完全なブート可能システムとして設計した。組み込みLinuxや各種Linuxディストリビューションのインストーラのデファクトスタンダードとなった。Linux のそれぞれの実行ファイルには数キロバイトのオーバーヘッドがあるが、BusyBoxは200以上のプログラムを1つにまとめることで領域消費を大幅に削減している。BusyBox は、Debian のブートフロッピーインストーラ向けに Enrique Zanardi が1998年まで保守していたが、その後 Linux Router Project (LRP) の Dave Cinege が引き継いだ。Cinege はビルド環境のモジュール化などのいくつかの改良を施し、より組み込みシステム指向にした。1999年になって LRP の開発が低調になると、当時 にいた Erik Andersen が引継ぎ、1999年12月から2006年3月まで保守を行った。この間、Linux の組み込み用途の利用は爆発的に増大し、BusyBox の機能も利用も増えていった。2007年後半以降、BusyBox をGPLに違反した使い方をした複数の企業を訴え、勝利したことで有名になった。現在は Denys Vlasenko が保守を行っている。BusyBox は200以上のユーティリティの一部だけを実装するようカスタマイズできる。Single UNIX Specification に含まれるユーティリティの大部分と他のLinuxでよく使われるユーティリティを提供できる。ユーティリティの一覧はBusyBoxのサイトにある。BusyBox はUnixシェルには ash を使っている。通常、コンピュータプログラムにはそれぞれ個別のバイナリファイル(実行ファイル)がある。BusyBoxは全体で1つのバイナリになっており、その中に多数のアプリケーションが含まれている。それぞれのアプリケーションは単一のBusyBoxのバイナリをそれぞれの名前(ソフトリンクやハードリンクで名前とバイナリをリンクする)で適切な引数付きで呼び出すことで利用できる。BusyBoxの単一バイナリは、実行ファイルのフォーマット(通常、ELF)によるオーバーヘッドを削減し、ライブラリを使うことなく、複数のアプリケーション間でコードを共有可能にする。共通コードを共有し、サイズを最適化するよう心がけて各ルーチンを記述しているため、BusyBox が代替しているユーティリティ群に比較して大幅な領域削減を実現している。調査によると、GNUプロジェクト、BusyBox、asmutils、Perlによる実装の4種類でLinuxの標準的なコマンドを比較したとき、状況によっては BusyBox が最も性能がよい(常にそうとは限らない)。BusyBox 内のプログラムを実行するには、codice_1 のように、その名前を BusyBox の引数として指定すればよい。通常、それぞれのコマンド名を BusyBox 実行ファイルにリンクする(ハードリンクまたはシンボリックリンク)。BusyBox は呼び出されたときの名前を調べ、適切なコマンドを実行する。例えば、"/bin/ls" を "/bin/busybox" にリンクした状態で codice_2 を実行する。コンパイル後に codice_3 することで、各種コマンドは /bin, /usr/bin, /sbin などにシンボリックリンクが作成される。Linux カーネルから最初に起動される /sbin/init もシンボリックリンクでちゃんと作成される。これらに、加えて、/tmp を作り、/proc と /sys のマウント と /dev の生成を /etc/init.d/rcS に書くことにより、一つのLinuxディストリビューションが出来上がる。Linuxを使った機器で BusyBox を採用しているものは多い。以下に例を挙げる。より完全な一覧は公式サイトにある(外部リンク参照)。BusyBox の組み込み機器での使用が、初のGPL違反問題として法廷に持ち込まれた。2007年9月20日、Andersen と Landley の付託を受け Software Freedom Law Center (SFLC) が Monsoon Multimedia Inc. を訴えた(訴訟番号 07-CV-8205、ニューヨーク州南部地区連邦地方裁判所)。同社のファームウェアアップグレードの中に BusyBox のコードが見つかり、同社に連絡しようとしたができなかったのが発端である。この件は Monsoon 版のソースの公開と、Andersen と Landley への賠償金の支払い(金額は未公開)で決着した。2007年11月21日、SFLCは Andersen と Landley の付託を受けてさらに2社を訴えた。Xterasys(訴訟番号 07-CV-10456)と High-Gain Antennas(訴訟番号 07-CV-10455)である。Xterasys の件は12月17日、High-Gain Antennas の件は2008年3月6日、Monsoon の件と同じような決着(ライセンスに従うことと、賠償金の支払い)をした。2007年12月7日にはベライゾン・コミュニケーションズが同社の Actiontec ルーター用ファームウェアについて訴えられた。この件は2008年3月17日、ライセンスに従うこと、今後のライセンス遵守を監督する役員の指定、賠償金の支払い(金額は未公開)で決着した。次に2008年6月9日、Bell Microproducts(訴訟番号 08-CV-5270)と Super Micro Computer(訴訟番号 08-CV-5269)が訴えられ、Super Micro の件は2008年7月23日に決着し、Bell Microproducts は出廷しなかったため、2008年9月10日に同社が訴訟費用も含めた懲罰的な賠償金を支払うことで決着した。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。