ソフト・マクロのCPUでLinuxを動かす(後編) ──OSの実装とネットワーク対応機器への応用
2.uCLinuxを実装する
筆者らがFPGAベースのボード・コンピュータに実装したのは,uCLinuxというLinuxからの派生カーネルです.
● MMUがなくても動作するuCLinux
uCLinuxはLinux 2.0の時代に,D. Jeff Dionne氏がMMU(memory management unit;メモリ管理機構)を持たない68000プロセッサ向けにLinuxを移植したことがきっかけとなり,市場に登場しました.
「Linuxは386プロセッサの機能に強く依存しているため,移植性に乏しい」という,Linux開発者のLinus Torvalds氏の予言が外れたのは広く知られた話です.Linuxが依存していた386の機能の一つに,このMMUの存在があります.Dionne氏がMMUを持っていない68000にLinuxを移植したことは,当時大きな話題になりました.
uCLinuxのオリジナリティは,本来のLinuxと比べると決して小さいとは言えないため,区別して呼ばれることが多いようです.しかしLinuxの派生カーネルには変わりないので,ライセンスはGPLが適用されています.
● uCLinuxの入手
uCLinuxの開発成果は,Dionne氏の手をほとんど離れ,uCLinux.orgにおいて開発・配布が行われています.現在は,米国CyberGuard社のDavid McCullough氏とGreg Ungerer氏が開発と保守に携わっています.また,本家Linuxでも2.5系(開発版)からその成果を採り入れることとなり,最新安定版の2.6系でもサポートされています.
ソフト・プロッセッサであるMicroBlazeにはMMUが実装されていないため,このuCLinuxを採用しています.uCLinuxのMicroBlazeへのオリジナルの移植は,オーストラリアUniversity of QueenslandのJohn Williams博士によるものです.なお,MicroBlaze用のuCLinuxは2.6への移行がまだ完了していなかったため,2.4系のuCLinuxを使用しました.