[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Linux と GNU プロジェクト

多くのコンピュータユーザは、GNU システムの修正版を毎日、それと 知ることなく使っている。変な成り行きで、現在広く使われている GNU の バージョンは “Linux” として知られていることの方が多い。多くのユーザは、 それが GNU プロジェクトにどれぐらい関係しているのかに気が付いていない。

実際に Linux は存在する。それはカーネルであり、上記の人々が 使っているものである。だが、カーネルというものはそれだけで 使うことはできないものである。カーネルは、システム全体の一部としてのみ 役に立つのである。Linux が良く使われているシステムは、GNU システムの 修正版である。言い換えれば、Linux ベースの GNU システムなのである。

多くのユーザは、カーネル–これは Linux である–とシステム全体– こちらも “Linux”と呼ばれている–と間の区別にあまり気が付いていない。 名前を曖昧に使うのは、理解の助けにならない。

プログラマは、大体 Linux がカーネルであることを知っている。 だが、かれらはシステム全体が Linux と呼ばれているのも同様に 聞いており、そのため、その名前にあった歴史をしばしば勝手に作り出して しまう。 例えば、多くの人が信じていることに、Linus Torvalds がカーネルを 書き上げ、彼の友人達が他のフリーソフトウェアを捜し回ったとき、 Unix ライクなシステムを作るのに必要なほとんど全てのものが 既に利用可能であったことに、特に理由はないというのがある。

彼らが見つけたものは偶然ではない。それは GNU システムだったのである。 利用可能なフリーソフトウェアを合わせた結果、完全なシステムに なったのは、GNU プロジェクトが 1984 年以来をそれを作るために 作業をしてきたからである。GNU 宣言は、GNU と呼ばれる、フリーな Unix ライクシステムを開発することを目標に明示した。 Linux が書かれたときには、システムはほとんど完成していたのである。

ほとんどのフリーソフトウェアのプロジェクトは、特定の仕事を行う特定の プログラムを開発することを目標にしている。例えば、Linus Torvalds は、 Unix ライクなカーネル(Linux) を書くことを目指した。Donald Knuth は テキスト・フォーマッタ(TeX) を書くことを目指した。Bob Scheifler は、 ウィンドウシステム(X Window System) を開発することを目指した。 この種類のプロジェクトの貢献度を、そのプロジェクトから出てきた 特定のプログラムで測ることは自然なことである。

この方法で GNU プロジェクトの貢献度を測ったらどうなるだろうか? ある CD-ROM ベンダは、自社の Linux ディストリビューションで、 GNU ソフトウェアは、一個の構成要素としては最大であり、ソースコード全体 の 28% 程度を占め、これには、それなしにはシステムとして成り立たない ような本質的で主要な要素が含まれている。Linux 自体は 3% 程度を占めるに 過ぎない。そういうことで、このシステムの名前を選ぶのに、 システムにあるプログラムを誰が書いたかを規準にするなら、 最も適切なものを一つ選ぶとしたら GNU になるだろう。

しかし、我々はこれが問題を考えるのに正しい方法だとは考えない。 GNU プロジェクトは、特定のソフトウェアパッケージを開発するプロジェクト ではなかったし、現在でもそうである。既に達成しているが、 C コンパイラを開発するプロジェクトではなかった。これも既に 開発済みであるが、テキストエディタを開発するプロジェクトではなかった。 GNU プロジェクトの目標は、完全なフリーの Unix 風システム を 開発することであった。

多くの人が、このシステムにあるフリーソフトウェアに重要な貢献をしており、 彼らは全て栄誉に値する。だが、これが システム であり、 単に便利なプログラムの集まりではないことの理由は、GNU プロジェクトが これらを一つにすることを目指していたからである。我々は、 完全なフリーのシステムを作るのに必要なプログラムを書いた。 本質的ではあるが、わくわくするようなものではない主要な要素、 例えばアセンブラやリンカを書いた。これらがないとシステムとして 成り立たないからである。完全なシステムにはプログラミングツール以上 のものが必要である。そのため、我々はその他の要素も同様に書いた。 例えば、Bourne Again SHell や PostScript インタプリタ Ghostscript や GNU C ライブラリ等である。

90年代初めには、カーネルを除けば全システムを組み立てていた (カーネルについても我々は作業をしていた。GNU Hurd がそれであり、 これは Mach 上で動くものであった)。このカーネルを開発するのは、 我々が思っていた以上に非常に困難であり、現在も完成させるべく 作業をしている。

幸運にも、GNU Hurd の完成を待つ必要はない。今では、Linux が 動作するからである。Linus Torvalds が Linux を書いたとき、 かれは最後の大きな隙間を埋めたのである。人々は、Linx を GNU システムと 組み合わせて完全なフリーのシステムを作ることが可能になった。 それが Linux ベースの GNU システムである(略して、GNU/Linux システム と言っても良い)。

これらを組み合わせるというと簡単なことのように聞こえるかもしれないが、 これは単純な作業ではない。GNU C ライブラリ(省略して glibc と呼ばれる)は 相当の変更が必要であった。完全なシステムを、箱から取り出してすぐ 動作するようなディストリビューションとして統合するのは、やはり 大仕事である。それにはシステムをインストールする方法とブートする方法という 問題を解決する必要がある。我々が取り組んだことのない問題である。 なぜなら、我々はその地点まで到達していなかったのである。 色々なシステムのディストリビューションを開発した人は相当な貢献を しているのである。

GNU プロジェクトは GNU システム同様 GNU/Linux システムもサポートしている。 資金提供も行っている。我々は、GNU C ライブラリに対する Linux に関連する 部分の拡張の書き直しに資金を提供しているので、現在ではうまく統合され、 最新の GNU/Linux システムは現在のライブラリのリリースを変更無しで 使っている。我々は、Debian GNU/Linux の開発の初期段階にも 資金を提供した。

我々は、現在では、我々自身の作業のほとんどに Linux ベースの GNU システム を使っている。読者も使ってくれることを望んでいる。ただし、“Linux” という名前を曖昧に使って、人々を混乱させないようにして欲しい。 Linux はカーネルであり、システムの本質的で重要な要素の一つである。 全体としてのシステムは多かれ少なかれ GNU システムなのである。


This document was generated using texi2html 1.78.