コラム15. :GNUプロジェクトとリチャード・ストールマン
フリーソフトウェアの父、リチャード・ストールマン
かつて、コンピュータソフトウェアというのは、フロッピーディスクやCD/DVDに焼き付けられ、値段も決して安いものではありませんでした。そのため、ちょっとしたソフトを利用するにしても、ユーザーは大金を支払う必要がありました。
しかし、そんな状況を大きく変えた一人の男がいました。それが、プログラマーのリチャード・ストールマンです。「ソフトウェアはフリー(自由)であるべきだ」という考えの持ち主で、その理想を実現するためMIT(マサチューセッツ工科大学)を拠点に、彼を中心とするグループ、FSF(Free Software Foundation:フリーソフトウェア財団)が設立されました。
そのFSFが推し進めるプロジェクトが、UNIX互換のソフトウェア環境を全てフリーソフトウェアで開発するプロジェクトであるGNUプロジェクトです。
開発者としてその名を連ねるソフトウェアには、UNIX系OSの定番のテキストエディタであるEmacsや、CコンパイラであるGCC(最初は、Gnu C Compiler/後にGNU Compiler Collection)などがあります。
GNUとは何か?
ここで出てくる、GNUとは、なんでしょう?これは、「 GNU is Not Unix 」という言葉の略なのだそうですが、GNUとはそもそも、「ヌー」というウシ科の哺乳類の名前で、このプロジェクトのマスコットキャラクターとなっています。
ただ、プロジェクトの名称としての「GNU」の正式な発音は「グニュー」または「グヌー」であるようです。なぜこの名称が選ばれたのかというと、GNUはあくまでもUnix系の設計ではあるが、UNIXとは違いフリーソフトウェアでありUNIXに由来するソースコードを全く使っていないことを示すためということです。
GCCの功績
このGNUが開発したソフトウェアは、コンピュータ界に実に多くの貢献をしました。その中で、C言語の関連するものとして、最も大きいものが、GCCです。もともと、UNIX系OSには、Cコンパイラである、CC(C Compiler)が付属していますが、そのコンパイラと互換性があるフリーのコンパイラとして登場しました。
GCCとは、この段階では、GNU C Compilerの略語で、1985年にストールマンによって、既成のコンパイラを拡張する形で開発が始められました。その後ストールマンとLeonard H. Tower, Jr.によってC言語で書き直され、GNUプロジェクトの一つとして1987年に公開されました。
GCCは、ソースコードが完全公開されていることから、様々な処理系に移植され、UNIX系OSのみならず、PC用や、組み込み機器用などにも利用されるようになり、広く普及しました。
例を挙げると、多くの組み込み系 OS や、ゲームの開発環境でもGCCを採用しているため、新しいハードや開発環境を作るごとに、一から言語・コンパイラを開発する必要がなくなりました。そのため、ソフトウェアのみならず、新しいハードウェアやOSなどの開発も容易になりました。
このように、GCCは誰もが無料でそれを利用・改造できるのですから、GCCがコンピュータの進歩にどれだけ貢献したか、計り知れないものがあります。
C Compilerから、Compiler Collectionへ
その後、GCCはどんどん進化を続け、C言語のみならず、C++言語、さらにはObjective-C、Objective-C++、Fortran、Java、Ada、Go のコンパイラ並びにこれらのライブラリが含まれるようになりました。
そのため、当初のCコンパイラのみならず、たくさんのコンパイラを含むことから、現在GCCはGNU Compiler Collectionの略、に意味が置き換えられるようになりました。このようにGCCは今でも少しづつ、そして強力に進歩を続けているのです。