BusyBox
開発元 | ブルース・ペレンズ、Erik Andersen、Rob Landley、Denys Vlasenko |
---|---|
最新版 |
1.24.1
/ 2015年10月24日 |
リポジトリ | |
対応OS | Linux |
種別 | SUS XCU (Command and Utility) 実装 |
ライセンス | GNU General Public License v2 |
公式サイト |
www |
BusyBox は、Coreutilsなど標準UNIXコマンドで重要な多数のプログラムを単一の実行ファイルに「詰め込んで」提供する、特殊な方式のプログラムである(その詰め込み方法を指して呼ぶこともある)。なおかつ、その実行ファイルはLinux上で最小の実行ファイルとなるよう設計されており、各コマンドの実行ファイルをインストールするのに比べディスクの使用量を大幅に削減することができる。そのため、特定用途のLinuxディストリビューションや組み込みシステムに最適である。「組み込みLinuxの十徳ナイフ」と呼ばれている。GPLv2 でリリースされているフリーソフトウェアである。
1994年、メリーランド大学カレッジパーク校で James da Silva が開発したFreeBSD上の crunchgen コマンドと機能的には似ている[1]。
歴史
1996年、ブルース・ペレンズが書いたのが起源である。Debianディストリビューション用のレスキューディスクにもインストーラにもなるフロッピーディスク1枚の完全なブート可能システムとして設計した。組み込みLinuxや各種Linuxディストリビューションのインストーラのデファクトスタンダードとなった。Linux のそれぞれの実行ファイルには数キロバイトのオーバーヘッドがあるが、BusyBoxは200以上のプログラムを1つにまとめることで領域消費を大幅に削減している。
BusyBox は、Debian のブートフロッピーインストーラ向けに Enrique Zanardi が1998年まで保守していたが、その後 Linux Router Project (LRP) の Dave Cinege が引き継いだ。Cinege はビルド環境のモジュール化などのいくつかの改良を施し、より組み込みシステム指向にした。1999年になって LRP の開発が低調になると、当時 Lineo, Inc. にいた Erik Andersen が引継ぎ、1999年12月から2006年3月まで保守を行った。この間、Linux の組み込み用途の利用は爆発的に増大し、BusyBox の機能も利用も増えていった。
2007年後半以降、BusyBox をGPLに違反した使い方をした複数の企業を訴え、勝利したことで有名になった。
現在は Denys Vlasenko が保守を行っている。
機能
BusyBox は200以上のユーティリティの一部だけを実装するようカスタマイズできる。Single UNIX Specification に含まれるユーティリティの大部分と他のLinuxでよく使われるユーティリティを提供できる。ユーティリティの一覧はBusyBoxのサイトにある[2]。BusyBox はUnixシェルには ash を使っている[3][4]。
単一バイナリ
通常、コンピュータプログラムにはそれぞれ個別のバイナリファイル(実行ファイル)がある。BusyBoxは全体で1つのバイナリになっており、その中に多数のアプリケーションが含まれている。それぞれのアプリケーションは単一のBusyBoxのバイナリをそれぞれの名前(ソフトリンクやハードリンクで名前とバイナリをリンクする[5])で適切な引数付きで呼び出すことで利用できる。
BusyBoxの単一バイナリは、実行ファイルのフォーマット(通常、ELF)によるオーバーヘッドを削減し、ライブラリを使うことなく、複数のアプリケーション間でコードを共有可能にする。
共通コードを共有し、サイズを最適化するよう心がけて各ルーチンを記述しているため、BusyBox が代替しているユーティリティ群に比較して大幅な領域削減を実現している。調査によると[6]、GNUプロジェクト、BusyBox、asmutils、Perlによる実装の4種類でLinuxの標準的なコマンドを比較したとき、状況によっては BusyBox が最も性能がよい(常にそうとは限らない)。
実行方法
BusyBox 内のプログラムを実行するには、/bin/busybox ls
のように、その名前を BusyBox の引数として指定すればよい。
インストール
通常、それぞれのコマンド名を BusyBox 実行ファイルにリンクする(ハードリンクまたはシンボリックリンク)。BusyBox は呼び出されたときの名前を調べ、適切なコマンドを実行する。例えば、/bin/ls を /bin/busybox にリンクした状態で /bin/ls
を実行する。
コンパイル後に make install
することで、各種コマンドは /bin, /usr/bin, /sbin などにシンボリックリンクが作成される。Linux カーネルから最初に起動される /sbin/init もシンボリックリンクでちゃんと作成される。これらに、加えて、/tmp を作り、/proc と /sys のマウント と /dev の生成を /etc/init.d/rcS に書くことにより[7]、一つのLinuxディストリビューションが出来上がる。
利用している機器
Linuxを使った機器で BusyBox を採用しているものは多い。以下に例を挙げる。
- Actiontec GT701 DSLモデム/ルーター(GT701-WG 無線DSLモデム/ルーター)Qwest製DSLを採用。
- Actiontec M1000 DSLモデム/ルーター Qwest製DSLを採用。
- Actiontec MI424WR MoCA 無線ルーター Verizon FiOS を採用。
- Amazon Kindle・電子ブックリーダー
- ASUS 無線ブロードバンドルーター WL-500g、AM604G、RT-AC68U
- AZTECH 無線DSLブロードバンドルーター 605EW
- BT無線ルーター BT Home Hub
- ディーリンク製品(DSL-500B, DSL-504T, DSL-524T, DSL-564T, DSL-584T, DSL2500U, DSL2540U, DSL2640U, DSL-2640T, DSL-G604T, DSL-G624T, DSL-G664T, DSL-G684T など)
- Dream Multimedia Dreambox ホビースト用DVBサーバ
- Edimax 製品(EW-7206APg Wifi Access Point など)
- Emprex ME1 HD Multimedia Enclosure
- フランスの通信業者 Iliad が配布しているDSLモデム/ルーター Freebox
- Gamepark Holdings のオープンソース Linux ゲーム機 GP2X
- HP Media Vault
- IBM Hardware Management Console (HMC)
- LaCie Ethernet Big Disk 1TB[8]
- LevelOne [9] 製品(WBR-3460A など)
- リンクシス製品(NSLU2 NAS、WRT54Gブロードバンドルーターなど)
- Motorola A780
- Mvix MX-760HD メディアプレーヤー
- Netcomm NB1 ADSLモデム
- NTT ルータ (RT-200-KI)
- ネットギア製ルーター(DG834G など)
- Neuros OSD MPEG ビデオレコーダー
- Nokia 770, Nokia N800, Nokia N810
- OvisLink製品(WL-5460AP WiFi AccessPoint、Evo-DSL04 Modem/Router ADSL2+ など)
- OpenMoko
- Open Networks iConnect612 ADSLルーター
- Picotux(Linuxの動作する世界最小のコンピュータ)
- QNAP NAS (TS-101, TS-201など)
- Qtopia Greenphone
- ザウルス
- Sonos Digital Music System
- ソニー Digital Video Recorders DHG-HDD250 & DHG-HDD500
- Synology NAS
- Telindus 1130 ADSL Router
- Thecus NAS
- TP-Link 製品(TD-88xx ADSL ルーターなど)
- Western Digital My Book
- Zipit Wireless Messenger
より完全な一覧は公式サイトにある(外部リンク参照)。
GPL違反問題
BusyBox の組み込み機器での使用が、初のGPL違反問題として法廷に持ち込まれた。2007年9月20日、Andersen と Landley の付託を受け Software Freedom Law Center (SFLC) が Monsoon Multimedia Inc. を訴えた(訴訟番号 07-CV-8205、ニューヨーク州南部地区連邦地方裁判所)[10]。同社のファームウェアアップグレードの中に BusyBox のコードが見つかり、同社に連絡しようとしたができなかったのが発端である。この件は Monsoon 版のソースの公開と、Andersen と Landley への賠償金の支払い(金額は未公開)で決着した[11]。
2007年11月21日、SFLCは Andersen と Landley の付託を受けてさらに2社を訴えた。Xterasys(訴訟番号 07-CV-10456)と High-Gain Antennas(訴訟番号 07-CV-10455)である[12][13]。Xterasys の件は12月17日[14]、High-Gain Antennas の件は2008年3月6日[15]、Monsoon の件と同じような決着(ライセンスに従うことと、賠償金の支払い)をした。2007年12月7日にはベライゾン・コミュニケーションズが同社の Actiontec ルーター用ファームウェアについて訴えられた[16][17]。この件は2008年3月17日、ライセンスに従うこと、今後のライセンス遵守を監督する役員の指定、賠償金の支払い(金額は未公開)で決着した[18]。次に2008年6月9日、Bell Microproducts(訴訟番号 08-CV-5270)と Super Micro Computer(訴訟番号 08-CV-5269)が訴えられ[19]、Super Micro の件は2008年7月23日に決着し[20]、Bell Microproducts は出廷しなかったため、2008年9月10日に同社が訴訟費用も含めた懲罰的な賠償金を支払うことで決着した[21]。
脚注
- ^ crunchgen man page at freebsd.org
- ^ BusyBox - The Swiss Army Knife of Embedded Linux
- ^ http://busybox.net/cgi-bin/viewcvs.cgi/trunk/busybox/shell/Config.in?rev=11083 The 'ash' shell adds about 60k in the default configuration and is the most complete and most pedantically correct shell included with busybox. This shell is actually a derivative of the Debian 'dash' shell (by Herbert Xu), which was created by porting the 'ash' shell(written by Kenneth Almquist) from NetBSD.
- ^ ash variants - BusyBox
- ^ Busybox simplifies embedded Linux systems a developerWorks article by M. Tim Jones
- ^ Doug Thayer and Keith Miller, Four UNIX Programs in Four UNIX Collections: Seeking Consistency in an Open Source Icon
- ^ mdev.txt
- ^ LaCie Network Space
- ^ LevelOne
- ^ On Behalf of BusyBox Developers, SFLC Files First Ever U.S. GPL Violation Lawsuit (Software Freedom Law Center 20 September 2007)
- ^ Settlement reached in Busybox-Monsoon GPL case (Bruce Byfield, Linux.com, 30 October 2007)
- ^ Linux legal team sues over GPL violations (Martin LaMonica, CNET News.com, 21 November 2007)
- ^ SFLC press release
- ^ SFLC press release
- ^ BusyBox Developers and High-Gain Antennas Agree to Dismiss GPL Lawsuit (SFLC press release)
- ^ Open-source legal group strikes again on BusyBox, suing Verizon (Grant Gross, Computerworld, Dec 7 2007)
- ^ SFLC press release
- ^ Verizon Settles Open Source Software Lawsuit (Paul McDougell, InformationWeek, March 17, 2008)
- ^ SFLC Files Another Round of GPL Violation Lawsuits on Behalf of BusyBox Developers (SFLC press release)
- ^ BusyBox Developers and Supermicro Agree to End GPL Lawsuit: Good Faith Discussions Result in Dismissal of Copyright Infringement Case (SFLC press release)
- ^ [1] PDF of Court of Southern District of New York Default-Judgement on behalf of BusyBox signed by the judge on 10 Sept 08. (Bell Microsystems failed to appear).