小型組み込み機器向けLinux ──MMUを持たないマイクロプロセッサで動作するしくみ
uClinuxシステムの実際
Lineo社の「uCdimm(写真1)」をもとに,uClinuxについて具体的に解説します.
uCdimmは,SODIMM(small outline DIMM)ベースのコンピュータです.米国Palm Computing社のプラットホームによって広く普及したプロセッサの一つであるMotorola社の68VZ328 DragonBallを中心に構成されています.2Mバイトのフラッシュ・メモリ,8MバイトのSDRAM,同期・非同期のシリアル・ポート,Ethernetコントローラを備えています.
〔写真1〕uCdimm
●カーネル/ルート・ファイル・システム
uCdimmには,専用(カスタム・レジデント)のブート・モニタがあります.uClinuxカーネルとルート・ファイル・システムで構成されるバイナリ・イメージをフラッシュ・メモリにダウンロードし,実行することが可能です.ルート・ファイル・システムは,ROMFSと呼ばれる読み込み専用のUNIXライクのフォーマットです.
DragonBallは33MHzで動作するため,カーネルやユーザ・プログラムはフラッシュ・メモリ内で実行されます.また,カーネルとルート・ファイル・システムをRAMにコピーして実行すれば,より高速なシステムになります.
組み込みシステムはネットワークへの接続を前提としていることが多いため,フラッシュ・メモリ内のカーネルはNFS(Network File System)経由で提供されるルート・ファイル・システムをマウントします.さらにネットワーク中心となるデバイスでは,カーネル・イメージとルート・ファイル・システムをDHCP(dynamic host configuration protocol)やBOOTP経由で要求する場合があります.なお,uClinuxカーネルには現在も,IDEやSCSIディスク,CD-ROMドライブ,フロッピ・ディスクなどに対応するドライバが入っています.
ルート・ファイル・システムの内容は,uClinuxを採用する機器によって異なります.その違いはLinuxワークステーション同士のそれよりも大きいものです.
●ユーザ空間
uClinuxディストリビューションは,小型のUNIXサーバとしての機能を満たすように,シリアル・ポート上のコンソール,TELNETデーモン,HTTP Webサーバ,NFSクライアント・サポート,一般的なUNIXツールをルート・ファイル・システムとして含んでいます.
MP3(MPEG layer 3 compressed audio)CDプレーヤのようなシステムでは,コンソールすら必要ありません.カーネルはCDドライブ,パラレルI/O,オーディオD-Aコンバータのサポートのみということもあります.ユーザ空間では,ボタンとLEDを動かすインターフェース・プログラムと,MPEGオーディオ・プレーヤ・プログラム,CDドライブを制御するプログラムが動作します.
このようなアプリケーションを限定したシステムの場合,フル装備のuClinuxに比べて,メモリ・サイズはかなりコンパクトになります.