■OS (ディストリビューション) の役割
OS の役割は何かというと、コンピュータのハードウェアの違いをプログラムからとユーザの両方から隠すことにあります。理想的には同じ(バージョンの)OSであれば、ハードウェアの制約(ディスプレイの有無やCPUの速度など)を除いて、ユーザにとって同じ使い勝手になります。
プログラムは、CPUが同じ場合にはバイナリがそのまま、CPUが違っても同じ手順でコンパイルをやり直すだけで動作します。ここでの内容のほとんどは、同じバージョンの Debian の動作している PC で、同じように動くはずです。
■OS の移植 ある OS (ディストリビューション) を移植する場合には、まずターゲットとなるハードウェアの CPU にあった開発環境を用意します。たとえば、玄箱PROに Linux を移植するなら、 ARM の C 言語開発環境を用意します。つぎに、ブートローダとカーネルの移植をします。
ブートローダは、カーネルをメモリに読み込むためのソフトウェアです。玄箱PROの場合は u-boot が採用されています。カーネルの移植時には、デバッグに役立つシリアル・ポートとイーサネットが優先されることが多いようです。カーネルが起動するようになると、あとは、コマンド類をコンパイルして環境を整えていくことになりますが、CPU, ハードウェアの違いを意識することはなくなっていきます。
■玄人志向の HDD 環境を見てみる 玄箱PROのフラッシュのみの環境では開発は難しいですが、玄箱PROに付属する CD-ROM を使って、セルフ開発のできる HDD 環境を構築することができます。この環境は、CD-ROM の source ディレクトリ内にあるコマンド類が入っていると考えていいようです。gcc や make, gdb, autoconf などが既にコンパイル済みで用意されています。一方で Debian パッケージや RPM パッケージを扱うコマンド類は用意されていません。
ここで紹介しているシリアル・ポートを使うプログラム(LEDを点滅したり、秋月の液晶に時計を表示する)程度の簡単なプログラムだと、HDD環境そのままでも、コンパイル・テストすることができます。
■Debian化せずに使うとすると HDD環境をスタートにして、Debianなどのディストリビューションを使わずに、必要になるコマンドのソース・コードを入手し、一つずつコンパイル・インストールを繰り返して環境を構築していくことも可能です。
mail 環境など複数のプログラムと設定ファイルが関連する場合や、lcdproc や、lcd-stuff などのように複数のライブラリが必要なプログラムをコンパイルする場合などには、必要なソース・コードを集めることを含め努力と根気が必要になります。すぐに試したい場合には Debian などのディストリビューションを使うのがよいでしょう。
<光永 法明>
コメントする