Assistant)、液晶テレビなど、組み込み機器にLinuxを使用するケースが増えてきました。皆さんも日ごろからLinux搭載の組み込み機器を知らず知らずのうちに使っているかもしれませんね。本連載では、こうしたLinux搭載の組み込み機器には欠かせない存在ともいえる「BusyBox」について詳しく解説していきます。「ちょっと待って、BusyBoxって何?」という方は本連載を読み進める前に、特集「組み込みLinuxで際立つ『BusyBox』の魅力」に目を通しておいてください。“BusyBoxの概要”について分かりやすくまとめてありますので、本連載を読み解くうえで必ずや役に立つと思います。本連載ではBusyBoxについて“より詳しく”解説していくわけですが、BusyBoxの詳細BusyBoxを使った組み込み機器への適用BusyBoxの拡張の仕方BusyBoxコミュニティとのかかわり方の4つのテーマについて紹介していく予定です。前置きはこれくらいにして、早速本題に入っていきましょう。記念すべき連載第1回は「BusyBoxのおさらい」と、BusyBoxを組み込み機器向けにコンパイルするのに必要な「クロスコンパイル環境の構築」について説明していきます。組み込みLinuxで際立つ「BusyBox」の魅力BusyBoxのおさらいまずは、BusyBoxについておさらいしておきましょう。BusyBoxとは、いわゆるコマンドの集合体で、“busybox”という1つの実行ファイルで「ls」「cat」「vi」「httpd」といったさまざまなコマンドの機能を使うことができます。functions:”以下に利用可能なコマンドが表示されています。原稿執筆時点での最新バージョンは「1.10.2」ですが、このバージョンでは約300個ものコマンドが用意されています。実際にそれぞれのコマンドの機能を使う場合は、busyboxという実行ファイルにコマンド名のリンクを張って利用します(実際には、BusyBoxインストール時に自動的にリンクを作ってくれます)。いったように、「ls」コマンドを含め、さまざまなコマンドがbusyboxにリンクされていることが分かります。複数のコマンドを1つの実行ファイルにする必要があるのでしょうか?それは、複数のコマンドに必要な同じような処理(例えば、エラー処理やファイル操作など)や各実行ファイルに含まれるヘッダ情報などを1つにまとめることで、ディスク上のフットプリント(占有領域)を削減できるからです。組み込み機器のように限られたリソースしか使えない環境では、必要な機能を入れるためのサイズの縮小化は重要な課題となります。個々のコマンドを別々にコンパイルするのに比べ、BusyBox1つをコンパイルすることで、環境構築がとても簡単になります。そのため、組み込み向けのLinux環境構築では欠かせないツールといえます。サイズ縮小化のため、コマンドによってはあまり使われないオプションや機能は省略されています。いったように多くのオプションを利用することができますが、BusyBoxの「ps」コマンドでは次のように1つしか提供されていません。そのため、もし省略された機能を使いたい場合には、BusyBoxで提供されているコマンドをフル機能のコマンドに置き換えるか、もしくはBusyBoxのコマンドを拡張する必要があります。組み込みLinux開発入門おさらいはこれくらいにして、クロスコンパイル環境の構築を行ってみましょう。SNSfacebooktwitterITmediaはアイティメディア株式会社の登録商標です。