/ «2003-11-08 (Sat) ^ 2003-11-10 (Mon)» ?
   西田 亙の本:GNU 開発ツール -- hello.c から a.out が誕生するまで --

Categories Books | Hard | Hardware | Linux | MCU | Misc | Publish | Radio | Repository | Thoughts | Time | UNIX | Writing | プロフィール


2003-11-09 (Sun)

[Writing] 解説 Linux から目覚めるぼくらのゲームボーイ! (その1)

Linux から目覚めるぼくらのゲームボーイ」に至る道のり

既に述べている通り、本書は PC-UNIX 上の GNU 開発ツールを用いたクロス開発の技法を、任天堂ゲームボーイアドバンス(GBA)を題材に用いて解説しています。

クロス開発とは、稼働環境とはことなる CPU 向けのプログラムを作成することであり、本書のように x86-PC-Linux 上で GBA が搭載している ARM7 CPU 用のコードを生成するケースが相当します。昔と違い、CPU のレパートリーが多様化している現在では、目的に応じて最適かつ最もコストパフォーマンスが高い CPU を導入できなければ、熾烈な競争に打ち勝つことはできません。x86 もしくは H8 だけが扱えれば良いという時代は終わったのです。

この「クロス開発」ですが、容易に想像できる通り、開発ツールであるアセンブラーやコンパイラーを、複数の CPU に同時に対応させることは、並大抵の難しさではありません。このため、従来は H8/SH であれば日立製、x86 であれば Microsoft 製、Power PC であれば Metrowerks 製など、CPU 毎に得意とする会社の開発環境を整備するケースがほとんどでした。しかし、これら一式を揃えると、値段はかなりの高額になりますし、全くことなる操作体系を一から習熟しなければならないプログラマーの負担たるや、想像を絶するものがあります。

そこで俄然注目されるのが、PC-UNIX 上の GNU 開発ツールです。GNU 開発ツールは主要な CPU のほとんどに対応しており(その一覧はこちら)、しかも無料です。開発チームは世界規模で作業を続けており、最新のスナップショット版は日々更新されています。

良いことずくめのようにも見えますが、実際に GNU 開発ツールを仕事に使っているプログラマーは、まだまだ少数派のようです。なぜでしょうか?理由は色々あると思いますが、ひとつは PC-UNIX 自体に対する敷居がまだまだ高い点が挙げられるでしょう。ここ数年で Linux が一気に広まったとは言え、世の中の開発環境は未だに Windows 一色です。

もう一点は、GNU 開発ツールに関する優れた解説書が、これまで存在していなかったことが挙げられます。Stallman 氏を筆頭とする Free Software Foundation (FSF) は、オープンソース界に対して、確かに大いなる貢献を果たしていますが、一方的にコードを配布するばかりで、その文書環境はあまりにお粗末と言わざるを得ません。もちろん、パッケージによっては優れた解説書が添付されているものもありますが、全体として「分かる人だけが使えば良い、分かる人だけが読めば良い」という姿勢が目立つようです。

私自身、これらの問題に数年以上悩まされてきましたが、結局答えは自分の力で見つけ出すしかありませんでした。この過程で得られたノウハウは、「GCCプログラミング工房」を始めとする連載を通じて、読者の皆さんに伝えることができたのではないかと思います。そして、2年近い準備期間を経て、ようやく「クロス開発」を実戦する時がやってきました。