多くのコンピュータユーザは、それとは気づかぬまま毎日 GNU システム (18k キャラクタ) の変更されたバージョンを使っていますが、ひょんなことから 今日広く使われている GNU のあるバージョンは「Linux」として より広く知られています。そして、多くのユーザは GNU プロジェクト がどれほど深く Linux とつながっているか気づいていません。
たしかに、Linux というものは存在します。それはカーネルであり、 人びとはそれを使っているのです。しかし、カーネルをそのものだけで 使うわけにはいきません。カーネルはオペレーティングシステム全体の 一部として初めて使えるようになります。Linux は通常 GNU オペレーティング システムと組み合わせて使われます。システム自体は基本的には GNU で、 カーネルとして Linux が機能しているのです。
多くのユーザは、カーネルとしての Linux と、彼らがこちらもまた 「Linux」と呼んでいるところのシステム全体との区別がよく 分かっていないのです。名称のあいまいな使い方は理解を促進しません。
ふつう、プログラマたちは Linux はカーネルの一つであると 分かっているのですが、彼らはシステム全体もまた「Linux」と呼ばれていることを よく聞いているので、その名称にふさわしい歴史を思い浮かべてしまう ことが多いのです。例えば彼らの多くは、 Linus Torvalds がカーネルを 書き上げたのち、彼の友人たちが他のフリーソフトウェアを探し回ってみたところ、 どういうわけか Unix ライクなシステムを作るのに必要なものは すでにほぼすべて揃っていた、というようなことを信じています。
彼らが見つけたのは偶然の産物ではありません。それは GNU システムだったのです。 当時完全なシステムを構成するのに十分なだけの フリーソフトウェア が入手可能だったのは、 GNU プロジェクトが 1984 年以来そうした完全な システムを作るべく作業してきたからでした。 GNU 宣言(31k キャラクタ) によって GNU と呼ばれるフリーの Unix ライクなシステムを開発するという 目標が打ち出されました。また、GNU プロジェクトの 当初の声明に於いて、 GNU システムの原案の一部が概説されています。 Linux が書かれるまでに、システムはほとんど完成していたのです。
多くのフリーソフトウェアプロジェクトでは、ある特定の目的を持った ある特定のプログラムを開発するというのが目標になっています。 例えば、Linus Torvalds は Unix ライクなカーネル(Linux)を書くことを 目指していましたし、Donald Knuth はテキストフォーマッタ(TeX)を書くことを 目標にしていました。Bob Scheifler はウィンドウシステム( X Windows) の開発に取り組みました。これらのプロジェクトからある特定のプログラムが もたらされたということで、この種のプロジェクトが社会にどれだけ貢献したか というのを測るというのはごく自然なことです。
しかしもし私たちがこのようなやり方で GNU プロジェクトの貢献を 測ろうとすると、どういう結論に至るでしょう? ある CD-ROM 販売業者によると、彼らの「Linux ディストリビューション」 中ではGNU ソフトウェア が全ソースコードの約 28 % という、単一のグループとしては 最大の割合を占めており、 またその中には、それ無しではシステムが成立しない本質的かつ重要な コンポーネントが含まれています。Linux 自体は 大体 3 % を占めていました。ですから、誰がそのシステム内のプログラムを 書いたかという判断基準でそのシステムの名前を一つ選ぶということであれば、 もっともふさわしい選択は「GNU」ということになるでしょう。
しかし、私たちはこの問題をそのように考えるのが正しいとは思いません。 GNU プロジェクトはなにか特定のソフトウェアパッケージを開発する プロジェクトではありませんでしたし、今もそうではありません。 GNU プロジェクトは、C コンパイラ を開発しましたが、GNU は C コンパイラを開発するプロジェクトでは ありませんでした。同様に、私たちはテキストエディタを開発しましたが、 GNU はテキストエディタを開発するプロジェクトではなかったのです。 GNU プロジェクトの目標は、完全なフリーの Unix ライクなシステム を開発することです。
多くの人々がシステムに含まれるフリーソフトウェアに多大な貢献を してきましたし、それらはみな称賛に値します。しかしそれが 単なる有用なプログラムの寄せ集めではなく、システムで あるのは、GNU プロジェクトがそれをシステムとしてまとめ上げた からです。私たちはフリーの完全なシステムを構成するのに 必要なプログラムのリストを作り、そのリストに載っているもの すべてを組織的に探し、書き、あるいは書いてくれる人を探しました。 私たちは、アセンブラやリンカといった、不可欠だけれどもあまり エキサイティングであるとは言えない重要なコンポーネントを 書きました。それら無しではシステムを用意することができないからです。 また、完全なシステムには単なるプログラミングツール以上のものが 必要となります。Bourne Again シェル、PostScript インタプリタである Ghostscript、 そしてGNU C ライブラリなども 同様に重要なのです。
90 年代初頭までに、私たちはカーネルを除いたシステム全体を組み立てて いました(また、私たちは Mach の上で動く GNU Hurd というカーネルを開発していました)。このカーネルの 開発の困難さは予想をはるかに超えるもので、私たちは依然 完成に向け開発中 です。
幸運なことに、あなたは Hurd の完成を待つ必要はありません。 なぜなら、Linux が現在動いているからです。Linus Torvalds が Linux を書いたとき、彼は最後の大きな欠落を埋めました。 そして人びとは、Linux を GNU システムと一緒にすることで 完全なフリーのシステムを手に入れることができたのです。 それこそが、Linux をベースとした GNU システム(短くは GNU/Linux システム) にほかなりません。
一緒にするというと簡単なことのように聞こえますが、それは なみたいていの仕事ではありません。 GNU C ライブラリ(短く glibc と 呼ばれます)には相当な変更が必要となりました。完全なシステムを ディストリビューションとして「インストールすればすぐ使える」という レベルにまでするのも大変な作業でした。どうシステムをインストールし、 起動するかという問題を解決しなければならなかったからです。 Linux が登場する前は、まだそういう段階には到達していなかったので、 私たちはそれまでその種の問題に取り組んだことがありませんでした。 この件に関しては様々なシステムディストリビューションを開発した人々が 重要な貢献をしてくれました。
GNU の他に、Unix ライクなオペレーティングシステムを独立に 作り上げてきたプロジェクトがもう一つあります。このシステムは BSDとして 知られており、カリフォルニア大学バークリー校に於いて開発されました。 GNU プロジェクトにならって BSD の開発者たちは彼らの作品を フリーソフトウェアとし、またしばしば GNU の活動家によって 励まされてきましたが、彼らの実際の成果は GNU とほとんど重複するところ がありません。 GNU システムとその変種が BSD ソフトウェアのいくつかを使っているのと同様、 今日の BSD システムも GNU ソフトウェアの一部を使っています。 しかし、全体から見れば、この二つは別々に進化してきた 異なったシステムです。今日存在するフリーなオペレーティングシステムは GNU システムの変種か、BSD システムの一種と考えてまず間違いありません。
GNU プロジェクトは、GNU システムそれ自体 同様 GNU/Linux システム もサポートしており、資金的な援助すらしています。 私たちは GNU C ライブラリに対する Linux 関係の拡張の書き直しを 資金援助しました。結果として現在それらはうまく統合され、最新の GNU/Linux システムは現在のライブラリをなんら変更することなく 使用しています。私たちはまた Debian GNU/Linuxに対して、 その開発の初期において資金を提供しました。
私たちは今日作業の大半に Linux をベースとする GNU システムを使っており、 またみなさんもそうして下さることを望んでいます。しかし、どうか 「Linux」という名称をあいまいに使うことで一般大衆を混乱させないでください。 Linux はカーネルであり、システムに不可欠の重要な一部分ですが、 全体としてのシステムは多かれ少なかれ GNU システムなのです。
FSF または GNU へのお問い合わせやご質問は gnu@gnu.orgにお送りください。. FSF と連絡を取るには他の手段もあります。
これらのウェブページに対するご意見は webmasters@www.gnu.org までお送りください。その他のご質問は gnu@gnu.org までお願いします。
Copyright 1997, 1998 Richard Stallman
本文に一切の変更を加えず、この著作権表示を残す限り、 この文章全体のいかなる媒体における複製および配布も許可する。
Toshiki Minakuchi 氏の訳を元に、 八田真行 <mhatta@gnu.org> が修正を加えました。
Updated: 10 Dec 2000 mhatta