原文げんぶん英語えいごで、これはその翻訳ほんやくです。

LinuxとGNUシステム

おおくのコンピュータ利用りようしゃは、毎日まいにちGNUシステム変更へんこうばん使つかっていますが、がついていません。ひょんなことから今日きょうひろ使つかわれているGNUのはんは、“Linux”としばしばばれ、おおくの利用りようしゃは、それが基本きほんてきにはGNUプロジェクト開発かいはつされたGNUシステムであることをりません

たしかに、Linuxというものは存在そんざいし、ひとびとはそれを使つかっています。ただし、それはたん使つかっているシステムの一部いちぶです。Linuxはカーネルです: システムのなかのプログラムで、ほかのプログラムの実行じっこうのためにマシンのリソースをてます。カーネルは、オペレーティング・システムの重要じゅうよう部分ぶぶんですが、それだけではやくちません。カーネルは完全かんぜんなオペレーティング・システム全体ぜんたいのコンテクストではじめて機能きのうします。Linuxは通常つうじょうGNUオペレーティング・システムとわせて使つかわれます。システム全体ぜんたい基本きほんてきにはGNUであり、それにLinuxがくわえられたものです。いわゆる“Linux”ディストリビューションは、すべて、本当ほんとうはGNU/Linuxのディストリビューションなのです。

カーネルとしてのLinuxと、こちらもまた“Linux”とんでいるシステム全体ぜんたいとの区別くべつを、おおくの利用りようしゃは、かっていないのです。名称めいしょうのあいまいな使つかかた理解りかい促進そくしんしません。そのような利用りようしゃは、リーナス・トーバルズがオペレーティング・システム全体ぜんたいを1991ねんすこしのたすけとともに開発かいはつしたと、しばしばかんがえています。

ふつう、プログラマたちはLinuxはカーネルであるとっています。しかし、システム全体ぜんたいもまた“Linux”とばれていることをふつうにいているので、カーネルからシステム全体ぜんたいづけられるのにふさわしい歴史れきしをしばしば想像そうぞうしてしまいます。たとえば、リーナス・トーバルズがカーネルLinuxをげて、その利用りようしゃがLinuxと一緒いっしょうごほか自由じゆうソフトウェアをさがまわってみたところ、(どういうわけか)Unixライクなシステムをつくるのに必要ひつようなものはすでにほぼすべてそろっていた、というようなことをおおくはしんじています。

かれらがつけたのは偶然ぐうぜん産物さんぶつではありません。それはまだ完全かんぜんではないGNUシステムだったのです。追加ついかすることで完全かんぜんなシステムを構成こうせいするのに十分じゅうぶんなだけの自由じゆうソフトウェア入手にゅうしゅ可能かのうだったのは、GNUプロジェクトが1984ねん以来いらい、そうした完全かんぜんなシステムをつくるべく作業さぎょうしてきたからでした。GNU宣言せんげんによって、GNUとばれる自由じゆうのUnixライクなシステムを開発かいはつするという目標もくひょうされました。また、GNUプロジェクトの最初さいしょ声明せいめいにおいて、GNUシステムの原案げんあん一部いちぶ概説がいせつされています。Linuxが開始かいしされるまでに、GNUはほぼ完成かんせいしていたのです。

おおくの自由じゆうソフトウェアプロジェクトでは、ある特定とくてい目的もくてきったある特定とくていのプログラムを開発かいはつするというのが目標もくひょうになっています。たとえば、リーナス・トーバルズはUnixライクなカーネル(Linux)をくことを目指めざしていましたし、ドナルド・クヌースはテキストフォーマッタ(TeX)をくことを目標もくひょうにしていました。ボブ・シェイフラーはウィンドウシステム(Xウィンドウ・システム)の開発かいはつ目標もくひょうにしました。プロジェクトからのある特定とくていのプログラムによって、このたねのプロジェクトの貢献こうけんはかるというのは自然しぜんなことです。

もし、わたしたちがこのようなやりかたでGNUプロジェクトの貢献こうけんはかろうとすると、どういう結論けつろんいたるでしょうか。あるCD-ROM販売はんばい業者ぎょうしゃによると、かれらの「Linux ディストリビューション」ちゅうではGNUソフトウェアぜんソースコードのやく28%という、単一たんいつ寄与きよとしては最大さいだいで、またそのなかには、それしではシステムが成立せいりつしえない本質ほんしつてきかつ重要じゅうようなコンポーネントがふくまれていました。Linux自体じたい大体だいたい3%でした。(2008ねんにおいて、割合わりあい同様どうようです。gNewSenseの“main”リポジトリ)で、Linuxは1.5%、GNUパッケージは15%です。) ですから、だれがそのシステムないのプログラムをいたかという判断はんだん基準きじゅんでそのシステムの名前なまえひとえらぶということであれば、もっともふさわしい選択せんたくは“GNU”ということになるでしょう。

しかし、これは、この問題もんだいふかかんがえる方法ほうほうではないでしょう。GNUプロジェクトはなにか特定とくていのソフトウェアパッケージを開発かいはつするプロジェクトではありませんでしたし、いまもそうではありません。わたしたちはCコンパイラを開発かいはつしましたが、GNUプロジェクトは、Cコンパイラの開発かいはつをするプロジェクトではありませんでした。わたしたちはテキストエディタを開発かいはつしましたが、GNUプロジェクトはテキストエディタを開発かいはつするプロジェクトではなかったのです。GNUプロジェクトは、完全かんぜん自由じゆうのUnixライクなシステム: GNUを開発かいはつすることを目標もくひょうとしたのです。

おおくの人々ひとびとがシステムの自由じゆうソフトウェアに多大ただい貢献こうけんをしてきましたし、それらはみな称賛しょうさんあたいします。しかしそれがたんなる有用ゆうようなプログラムのあつめではなく、統合とうごうされたシステムであるのは、GNUプロジェクトがそれをシステムとしてまとめげる目標もくひょうてたからです。わたしたちは自由じゆう完全かんぜんシステムを構成こうせいするのに必要ひつようなプログラムのリストをつくり、そのリストにっているものすべてを組織そしきてきさがし、き、あるいはいてくれるひとさがしました。わたしたちは、アセンブラやリンカといった、重要じゅうようだがあまりエキサイティングではない(1)コンポーネントをきました。それらしではシステムはありえないからです。システム・コンポーネントのいくつか、プログラミング・ツールは、プログラマのあいだでそれ自身じしん人気にんきました。しかし、ツールではない [2]たくさんのコンポーネントもわたしたちはきました。チェスのゲーム、GNU Chessも開発かいはつしました。完全かんぜんなシステムにはゲームも必要ひつようですから。

90年代ねんだいはじめまでに、わたしたちはカーネル以外いがいのシステム全体ぜんたいてていました。また、MachのうえうごGNU Hurdというカーネルのプロジェクトをわたしたちは開始かいししていました。このカーネルの開発かいはつ困難こんなんさは予想よそうをはるかにえるものでした。2001ねんにGNU Hurdはたしかにうごくようになりましたが、一般いっぱん使用しようきょうするのに十分じゅうぶんえるまでには、まだまだながみちのりがあります。

幸運こううんなことに、Linuxがあったので、わたしたちはHurdを必要ひつようはありませんでした。1992ねんにトーバルズがLinuxを自由じゆうソフトウェアとしてから、それはGNUシステムの最後さいご主要しゅようなギャップに適合てきごうしたのです。そして、LinuxをGNUシステムにわせ完全かんぜんなシステムをつくることができるようになりました: LinuxもふくんだGNUシステムのバージョンです。べつ言葉ことばえば、GNU/Linuxシステムです。

それらを一緒いっしょうごくようにするということは、とるにたらない仕事しごとではありませんでした。いくつかのGNUのコンポーネント [3]は、Linuxとともにうごくのに相当そうとう変更へんこう必要ひつようとなりました。ディストリビューションとして完全かんぜんなシステムに統合とうごうし、「はこからしてすぐに」使つかえるとするのも大変たいへん作業さぎょうでした。どうシステムをインストールし、起動きどうするかという問題もんだいあつか必要ひつようがあったからです。— そういう段階だんかいにまだ到達とうたつしていなかったので、それは、わたしたちがそれまでんだことのなかった問題もんだいでした。ですから、様々さまざまなシステム・ディストリビューションを開発かいはつした人々ひとびと重要じゅうよう仕事しごとをたくさんしました。しかし、それは、ものごとの本質ほんしつとして、だれかによってかならずなされなければならない仕事しごとだったのです。

GNUプロジェクトは、GNU/Linuxシステムを、GNUシステムそれ自体じたいおなじく、支持しじしています。FSFは、GNU CライブラリのLinux関連かんれん拡張かくちょうなおしに資金しきん援助えんじょし、いま、それらはうまく統合とうごうされ、最新さいしんのGNU/Linuxシステムでは現在げんざいのライブラリのリリースを変更へんこうなしで利用りようするようになりました。FSFは、また、Debian GNU/Linux の開発かいはつ初期しょき段階だんかい資金しきん提供ていきょうをしました。

今日きょう、たくさんのGNU/Linuxシステムのことなる変種へんしゅ(「ディストロ」としばしばばれます)があります。そのほとんどが不自由ふじゆうなプログラムをふくみます。—開発かいはつしゃは、むしろLinuxに関連かんれんした“オープンソース”の理念りねんにしたがい、GNUの自由じゆうソフトウェア”の理念りねんにしたがいません。しかし、完全かんぜん自由じゆうなGNU/Linuxディストロもあるのです。FSFは、こういったディストリビューションのいくつかにコンピュータ設備せつび提供ていきょうしています。

自由じゆうなGNU/Linuxディストリビューションをつくるのはたんにさまざまな不自由ふじゆうなプログラムを除去じょきょするだけの問題もんだいではありません。近年きんねんでは、通常つうじょうはんのLinuxには不自由ふじゆうなプログラムもはいっているからです。これらのプログラムはシステムが起動きどうしたときにI/Oデバイスにロードされることが意図いとされ、Linuxの「ソースコード」のなかになが数列すうれつとしてふくまれています。自由じゆうなGNU/Linuxディストリビューションを保守ほしゅするには、いまや、自由じゆうはんのLinux保守ほしゅすることが必然ひつぜんてきともなうのです。

GNU/Linuxを使つかうかどうかはべつにして、どうか“Linux”という名称めいしょうをあいまいに使つかうことで一般いっぱん大衆たいしゅう混乱こんらんさせないでください。Linuxはカーネルであり、システムに不可欠ふかけつ重要じゅうようなコンポーネントのひとつです。全体ぜんたいとしてのシステムはGNUシステムであり、Linuxが追加ついかされたものなのです。このわせについてかたるときには、“GNU/Linux”とんでください。

参照さんしょうとして、“GNU/Linux” についてリンクをりたいときは、このページとこちら https://www.gnu.org/gnu/th-gnuproject.html選択せんたくです。カーネルのLinuxについてべ、参照さんしょうとしてリンクをくわえたいときには、https://foldoc.org/linux使つかうのにてきしたURLです。

あとがき

GNUのほかに、べつにプロジェクトがもうひとつあり、Unixライクなオペレーティング・システムを独立どくりつつくげています。このシステムはBSDとしてられ、カリフォルニア大学だいがくバークレーこうにおいて開発かいはつされました。80年代ねんだいにはこれは不自由ふじゆうでしたが、90年代ねんだいはじめに自由じゆうとなりました。今日きょう存在そんざいする自由じゆうなオペレーティングシステム [4]はGNUシステムの変種へんしゅか、BSDシステムの一種いっしゅかんがえてまず間違まちがいありません。

BSDはGNUのひとつのはんかどうか(GNU/Linuxのように)、と、かれることがままあります。BSDの開発かいはつしゃたちは、GNUプロジェクトのれい触発しょくはつされて、かれらのコードを自由じゆうソフトウェアとしました。GNUの活動かつどうによってはげまされてきましたが、かれらのコードにはGNUとほとんど重複じゅうふくするところがありません。今日きょうのBSDシステムもいくつかのGNUプログラムを使つかっています。GNUシステムとその変種へんしゅがいくつかのBSDソフトウェアを使つかっているのと同様どうように。しかし、全体ぜんたいかられば、このふたつは別々べつべつ進化しんかしてきたものです。BSDの開発かいはつしゃはカーネルをき、GNUシステムにくわえたわけではありません。ですから、GNU/BSDというような名前なまえ状況じょうきょうそくしたものではないでしょう。 [5]

脚注きゃくちゅう

  1. エキサイティングではないが重要じゅうようなコンポーネントには、GNUアセンブラ(GAS)、リンカー(GLD) (両方りょうほうともいまGNU Binutilsパッケージにはいっています)、GNU tar、などをふくめ、たくさんのものがふくまれます。
  2. たとえば、Bourne Again SHell (BASH)、PostScriptインタプリタGhostscriptGNU Cライブラリはプログラミング・ツールではありません。GNUCash、GNOME、GNU Chessもそうではありません。
  3. たとえば、GNU Cライブラリです。
  4. これがかれてから、だいたい全部ぜんぶ自由じゆうなウィンドウズライクなシステムが開発かいはつされましたが、技術ぎじゅつてきにはこれはまったくGNUあるいはUnixにたものではありませんから、この問題もんだい関係かんけいしません。Solarisのカーネルのほとんどは自由じゆうになりましたが、自由じゆうなシステムをそれからつくりたいとすると、カーネルのりない部分ぶぶんえるほかに、これもまた、GNUかBSDにせる必要ひつようがあるでしょう。
  5. 一方いっぽう、この論説ろんせつかれてなんねんかたった、GNU Cライブラリは、BSDカーネルのいくつかのはん移植いしょくされました。これにより、GNUシステムをBSDのカーネルとわせることが簡単かんたんになりました。GNU/Linuxのように、まさにこれらはGNUの変種へんしゅです。ですから、たとえば、システムのカーネルにおうじて、GNU/kFreeBSDやGNU/kNetBSDのようにばれます。ふつうの典型てんけいてきなデスクトップ利用りようしゃがGNU/LinuxとGNU/*BSDを区別くべつすることはほとんどできないでしょう。