- - PR -
携帯電話やPDA(Personal Digital Assistant)、液晶テレビなど、組み込み機器にLinuxを使用するケースが増えてきました。皆さんも日ごろからLinux搭載の組み込み機器を知らず知らずのうちに使っているかもしれませんね。
本連載では、こうしたLinux搭載の組み込み機器には欠かせない存在ともいえる「BusyBox」について詳しく解説していきます。
「ちょっと待って、BusyBoxって何?」という方は本連載を読み進める前に、特集「組み込みLinuxで際立つ『BusyBox』の魅力」に目を通しておいてください。“BusyBoxの概要”について分かりやすくまとめてありますので、本連載を読み解くうえで必ずや役に立つと思います。
さて、本連載ではBusyBoxについて“より詳しく”解説していくわけですが、
- BusyBoxの詳細
- BusyBoxを使った組み込み機器への適用
- BusyBoxの拡張の仕方
- BusyBoxコミュニティとのかかわり方
の4つのテーマについて紹介していく予定です。
前置きはこれくらいにして、早速本題に入っていきましょう。記念すべき連載第1回は「BusyBoxのおさらい」と、BusyBoxを組み込み機器向けにコンパイルするのに必要な「クロスコンパイル環境の構築」について説明していきます。
| 関連リンク: | |
| 組み込みLinuxで際立つ「BusyBox」の魅力 http://monoist.atmarkit.co.jp/fembedded/articles/busybox/busyboxa.html |
|
| 組み込みLinux関連記事−@IT MONOist http://monoist.atmarkit.co.jp/fembedded/index/embedded.html#linux |
|
| @IT 「Linux Square」フォーラム http://www.atmarkit.co.jp/flinux/ |
|
BusyBoxのおさらい
まずは、BusyBoxについておさらいしておきましょう。
BusyBoxとは、いわゆるコマンドの集合体で、“busybox”という1つの実行ファイルで「ls」「cat」「vi」「httpd」といったさまざまなコマンドの機能を使うことができます。
以下は、BusyBoxのUsageを表示した一例ですが、“Currently defined functions:”以下に利用可能なコマンドが表示されています。
$ /bin/busybox |
原稿執筆時点での最新バージョンは「1.10.2」ですが、このバージョンでは約300個ものコマンドが用意されています。
実際にそれぞれのコマンドの機能を使う場合は、busyboxという実行ファイルにコマンド名のリンクを張って利用します(実際には、BusyBoxインストール時に自動的にリンクを作ってくれます)。例えば、BusyBoxをインストールした環境の“/bin”ディレクトリを「ls」コマンドで見てみると、
$ ls -l /bin/ |
といったように、「ls」コマンドを含め、さまざまなコマンドがbusyboxにリンクされていることが分かります。
では、なぜ複数のコマンドを1つの実行ファイルにする必要があるのでしょうか?
それは、複数のコマンドに必要な同じような処理(例えば、エラー処理やファイル操作など)や各実行ファイルに含まれるヘッダ情報などを1つにまとめることで、ディスク上のフットプリント(占有領域)を削減できるからです。組み込み機器のように限られたリソースしか使えない環境では、必要な機能を入れるためのサイズの縮小化は重要な課題となります。また、個々のコマンドを別々にコンパイルするのに比べ、BusyBox1つをコンパイルすることで、環境構築がとても簡単になります。そのため、組み込み向けのLinux環境構築では欠かせないツールといえます。
ただしサイズ縮小化のため、コマンドによってはあまり使われないオプションや機能は省略されています。例えば、プロセスを表示する「ps」コマンドのオプションの場合、FedoraやDebianなどで使われているフル機能では、
[shinji@Fedora9 ~]$ ps --help |
といったように多くのオプションを利用することができますが、BusyBoxの「ps」コマンドでは次のように1つしか提供されていません。
$ ps --help |
そのため、もし省略された機能を使いたい場合には、BusyBoxで提供されているコマンドをフル機能のコマンドに置き換えるか、もしくはBusyBoxのコマンドを拡張する必要があります。
>>おさらいはこれくらいにして、クロスコンパイル環境の構築を行ってみましょう。
関連記事 組み込みLinux
組み込み開発フォーラム 新着記事
- フルスクラッチの“Hello World”を動かしてみよう(2011/3/31)
- FlexRayプロトコルの概要(その2)(2011/3/29)
- JASA、東北地域に拠点を置く会員企業を支援(2011/3/25)
- NEC、震災の影響を受けた4拠点の生産再開を発表(2011/3/23)
- 内部ブロック図の基礎と共通要素(2011/3/22)
- インテル、被災地におけるITインフラの復旧を支援(2011/3/22)
- Facts on AUTOSAR/AUTOSAR導入の現実(2011/3/18)
- 計測器・震災被害ホットラインを開設、テクトロニクス(2011/3/18)
- ZMP、地震の揺れを多角的に計測するアプリ無償配布(2011/3/16)
- メンター、3Dテレビ・マルチメディア検証プラットフォーム(2011/3/16)
- 【番外編】タチの良い計測値、悪い計測値とは?(2011/3/15)
- tarファイルシステムをAndroidに組み込む!!(2011/3/10)













