GNU/Linux名称論争
GNU/Linux名称論争とは、一般にLinuxカーネルをカーネルとして使用しているシステムの多くが単に「Linux」と呼ばれていることについて、特にGNUのプロダクトがシステムの主要な部分のほとんどを占めていることから「GNU/Linux」と呼ぶべき、という主張に対する論争である。
歴史
GNUプロジェクトは、1983年にフリーソフトウェア財団の創設者であるリチャード・ストールマンによって立案された。この年の9月、ストールマンは『Dr. Dobb's Journal』誌上において彼の新しいプロジェクトの詳細と彼のフリーソフトウェアに対するビジョンに関する声明を発表し、ソフトウェア開発は1984年1月に始まった。GNUはすべてをフリーソフトウェアで構成した完全なUnixライクオペレーティングシステムとすることになっていた。1991年までにはオペレーティングシステムの中間層部分はほぼ完成し、上位層はX Window Systemによって供給することができたが、下位層（カーネル、デバイスドライバ、システムレベルユーティリティ、およびデーモン）はほとんどが欠けたままだった。GNUカーネルのGNU Hurdはその野心的な設計が予想以上に実装困難であることがわかり、この時点ではまだほとんど使い物にならなかった。
1991年、最初のバージョンのLinuxカーネルがリーナス・トーバルズによってリリースされた。初期のLinuxカーネル開発者はGNU Cコンパイラを含むGNUコードをLinux上で動作するよう移植した。後にGNU開発者がLinuxを知ると、彼らはGNUの他の部分をLinuxカーネルに対応させた。この作業は完全にフリーなオペレーティングシステムを動作させるための最後のギャップを埋めることになった。
その後数年に渡り、LinuxカーネルとGNUコンポーネントを使用したオペレーティングシステムの名称に関する多くの意見があった。1992年、Yggdrasil Linuxディストリビューションは「Linux/GNU/X」という名称を採用した。早くも1992年には、Usenetおよびメーリングリストでの議論の中で「GNU/Linux」という名称案が、1993年には「GNU+Linux」という案が出された。1994年初頭にはDebian Projectが呼称を「GNU/Linux」へ変更した。Debian創設者のイアン・マードックは後に、この変更はストールマンの要請によるものだったと語っている（ストールマンは当初「Lignux」という名称を提案したが、その言葉のぎこちなさが不評であったため、後に「GNU/Linux」を提案した）。1994年6月の『GNU's Bulletin』では「Linux」という名称で「（多くのユーティリティやライブラリはGNUによる）386マシン用のフリーなUnixシステム」として説明しているが、1995年1月の「Bulletin」では「GNU/Linux」に切り替えられている。ストールマンとFSFは1994年頃から名称に「GNU」を含めさせるための行動を開始したが、伝えられるところでは、それは1996年までは専ら（上記のDebianに対する要請のような）個人的なコミュニケーションを通してのものだった。1996年5月、ストールマンはGNU Emacs 19.31をリリースした際にAutoconfのシステムターゲットを「linux」から「lignux」へ変更し（その後すぐに、GNU Emacs 19.32で「linux-gnu」に変更した）、エッセイ『Linux and the GNU system』のなかで、「LinuxベースGNUシステム」（または「GNU/Linuxシステム」や、短く「Lignux」）という言葉を使用するよう提案した。彼は後に「GNU/Linux」のみを使用するようになり、このエッセイはストールマンの1997年のエッセイ『Linux and the GNU project』によって破棄された。
Unixライク・LinuxベースシステムにおけるGNUコード
Unixライク・Linuxベースオペレーティングシステムは、Linuxカーネル、GNUプロジェクトにより開発されたソフトウェア、および相当量のX Window Systemのような他者によるソフトウェアなど、多くのコンポーネントで構成されている。ほとんどすべてのLinuxベースのデスクトップおよびサーバシステムはGNU Cライブラリ (glibc)、GNU コアユーティリティ (coreutils)、およびbashといったGNUコンポーネントを使用している。代表的なLinuxディストリビューションであるRed Hat Linux 7.1を構成するパッケージのソースコードの分析において、GNUプロジェクトによるパッケージの合計サイズがLinuxカーネルのそれよりはるかに大きいことがわかった。「オペレーティングシステム」自体を構成するものとは何かを正確に定義づけることは継続的に議論されている問題である。
その一方で、いくつかの、携帯機器などで使用されている組み込みシステムでは、スペース効率を考慮して設計されており、GNUコンポーネントを伴わないLinuxカーネルが使用されている。μClinuxが動作するシステムでは、glibcの代わりにuClibcが、Coreutilsの代わりにBusyBoxが使用されているものもある。FSFを含むすべての人々はこれらのシステムを「GNU/Linux」と呼ぶことは適切ではないという意見で一致している。
「GNU/Linux」支持
FSFは、そもそもGNUプロジェクトが実際に完全なシステムの開発を行っているという理由で「GNU/Linux」という名前を正当化し、Linuxカーネルが最後のギャップの一つを埋めたと主張する。そのようなシステムで相当量のGNUコンポーネントおよびGNUソースコードが使用されるということは二次的な議論である。
つまり、あなたがシステムの名前を選ぶときに誰がそのプログラムを書いたかに基づくとするならば、たった一つの最適な選択は「GNU」になるだろう。しかし、我々はそれがこの問題について考える正しいやり方だとは思わない。GNUプロジェクトは特定のソフトウェアパッケージの開発プロジェクトではなかったし、今もそうではない。（中略）多くの人々はこのシステムでのフリーソフトウェアに素晴らしい貢献をしたし、彼らはすべて称賛に値する。しかし、それが統合システム — 便利なプログラムのコレクションではない — であるのは、GNUプロジェクトがそれを一つにまとめ上げようとしたからだ。我々は完全なフリーのシステムを作成するために必要なプログラムのリストを作成し、我々はそのリストにあるすべてを体系的に書いたか、書く人々を捜し出した。
 — リチャード・ストールマン
さらにFSFも、「GNU/Linux（という呼称）は我々の理想主義が我々のコミュニティを築き上げる役割を担っていることを認め、公衆がこれら理想の実際的な重要性への理解を助ける」と主張しており、Linuxカーネル開発者の「自由」よりも「技術的な優位性」に対し関心をもつことと対照的である。Linuxカーネルの場合の自由より技術的な優位性に対する関心が勝っていることについての、よく知られ、繰り返される例として、長い間Linuxカーネルが多くの非フリーなファームウェアやその他の非フリーなライセンス条項のファイルに含まれてきたことが挙げられている。
通常、「オペレーティングシステム」といえば、カーネル — ハードウェアと直接やりとりする特定のサブシステム — と、ユーザーランドと呼ばれる利用者またはコンピュータを制御するアプリケーションソフトウェアに使用されるソフトウェアが含まれる。また、「GNU」および「Linux」という名称はどちらも意図的に「Unix」という名称が絡んでおり、Unixは常に概念的にカーネルと同様にCライブラリおよびユーザーランドツールを含んでいた。1991年のLinuxカーネルのバージョン0.01から0.11へのリリースノート（バージョン0.12までGPL条項下でリリースされなかった）においてトーバルズは、「悲しいことに、カーネルはそれ自身ではあなたに何ももたらしません（中略）LinuxのほとんどのツールはGNUソフトウェアを使用しています。」と述べている。トーバルズはまた、1992年のアンドリュー・タネンバウムとリーヌス・トーヴァルズの議論において、「（私だけでなく）指摘されたように、Linuxカーネルは完全なシステムのほんの一部でしかありません」と述べている。
「Linux」という言葉は、カーネル、オペレーティングシステム、あるいはLinuxディストリビューション全体のいずれかを指し、しばしばこの3つの間で混乱を招いている。メディア関係者は、トーバルズが1991年に（単にカーネルではなく）Linuxオペレーティングシステム全体を一から作ったと断定してしまったり、トーバルズは他のグラフィカルインターフェイスやGNUツールのようなコンポーネントの開発を監督しているとか、カーネルの新しいリリースはMicrosoft Windowsのようなカーネル以外の多くのものが同時に変わるプロプライエタリオペレーティングシステムと同様に、ユーザの目に見える変更がなされているといった誤りをしばしば犯している。
この混乱のため、SCOグループやAlexis de Tocqueville Institution（AdTI）が始めたような、明らかにカーネルに対して向けられている法的脅迫や広報キャンペーンが、オペレーティングシステム全体が標的とされていると思い込んだ多くの解説者によって誤解された。これらの組織も故意にこの混乱を利用したとして糾弾された。
ストールマンの名称変更運動が自己中心主義または個人な感情から生じているという指摘に対し、ストールマン本人は自分の関心は自分が称賛されることではなく、GNUプロジェクトにあると返答した。「一部の人々はそれが私のエゴを満足させるためにやっていると思っている。言うまでもなく、私はあなた方に『Stallmanix』と呼ぶようにお願いしてはいない。」
もう一つのよくある議論（以下参照）に対し、FSFは多くの人々がそのシステムに貢献したことに感謝の意を示し、（Linuxという）短い名前では彼ら全員の功績を讃えることができないとして、そのシステムを「Linux」と呼ぶことは正当化できないと主張する:
GNU/X11/Apache/Linux/TeX/Perl/Python/FreeCivといったような長い名前にするのもばかげているので、あるところで区切りをつけ、その他多くの二次的な貢献の名称は省かざるをえないでしょう。適切な区切り位置というものはないので、あなたがどこで区切ろうが我々は反対しません … しかし、公正さとその功績の認知を満たすことのできない一つの（考えうるあらゆる区切りをしない）言葉が「Linux」です。主要な貢献（GNU）を省略し、二次的な貢献（Linux）のみとするのでは、公正さを欠き、すべての功績を認めることができません。
「Linux」支持
「GNU/Linux」への言及が、まれにメインストリームのソースにおいてのみ現れるのに対し、「Linux」は圧倒的に広く知られた名称になっている。ストールマンが人々に「GNU/Linux」と呼ぶよう求め出した1990年代半ば頃には、すでにトーバルズが1991年から複合システムに使用している「Linux」という名前はポピュラーになっており、また、「Linux」は「GNU/Linux」より短く、言いやすかった。
エリック・レイモンドは『ジャーゴンファイル』の「Linux」のエントリで述べている:
一部の人々は「Linux」という名称はオペレーティングシステム全体に対してではなく、カーネルに対してのみ使用されるべきであると異議を唱えている。この主張はその根底にある縄張り争いの替え玉になっており、GNU/Linuxという言葉を強く主張する人々は、ストールマンと友人達がユーザレベルツールの多くを開発したことから、FSFのLinuxに対する功績を認めてもらうことを望んでいる。この理屈もGNU/Linuxという言葉も、少数の支持しか得られていない。
リーナス・トーバルズはドキュメンタリー『Revolution OS』の中で、GNU/Linuxという名前は理にかなっているかという問いに対し答えている:
えっと、私は理にかなっていると思っています。が、それはあなたが実際にLinuxのGNUディストリビューションを作ったらの話です … 「Red Hat Linux」はいいでしょう。「SuSE Linux」も「Debian Linux」もです。あなたは実際にあなた自身のLinuxのディストリビューションを作ったんですからその名前をつけるのはあなたです。でも、Linuxを総じて「GNU/Linux」と呼ぶのはちょっとおかしいと思います。
トーバルズのこの名称論争に関する初期のコメントでは、以下のように述べている:
うーん、この議論は十分長く続きました、どうもありがとう。その功績が十分に認められている限り、人が何をもってLinuxと言うかは（双方にとって）本当に重要な問題ではありません。個人的には、これからもずっと「Linux」と呼びつづけます。
同様な文脈で、オペレーティングシステムの名前に関する議論は時々取るに足らない邪魔なものとみなされる。例えば、ジョン・C.ドヴォラクは「Linuxコミュニティは（GNU/Linux対Linuxといった）名前のようなものについて、そのエネルギーのあまりに多くを費やしている」と語っている。
『Linux Journal』はストールマンのGNU/Linux名称の啓蒙活動は、「リーナスが、ストールマンがしたかったことで称賛を得た」ことに対するフラストレーションに起因するのではないかと推測している。
他の人々は、そのメリットに関係なく、ストールマンの見込みのないように思われるこだわりが、時々彼とGNUの印象を悪くしていると指摘する。例えば、ラリー・マクヴォイ（一時Linuxカーネルの開発管理で使用されたプロプライエタリソフトウェアBitKeeperの作者）は「功績を主張することは、その人を愚かで欲張りに見せるだけだ」という見解を述べている。
「Linux」の名称を好む多くの利用者とベンダーは、カーネル以外にも、Apache HTTP Server、X Window System、あるいはKDEといった非GNUツールがLinuxカーネルベースのエンドユーザオペレーティングシステムに包含されている点を指摘する。X Windowの創設者ジム・ゲッティーズは次のように述べている:
たくさんの人々がこのバスに乗っており（私はGNUが他の多くのコンポーネントよりも重要であるという支援者の叫びには耳を貸さない）、車輪を外すことはできず、最終的にエンジンやシートが付いた使える車になります。あなたは我々がバスを持っていることを喜んではどうでしょうか。
発音
「GNU/Linux」（/gnuː slæʃ ˈlɪnəks/、グヌースラッシュリナックス） はしばしば「スラッシュ」を発音せずに読まれるが、ストールマンはLinuxカーネルそのものがGNUプロジェクトであるとの誤解を避けるため、はっきりと「スラッシュ」を発音することを推奨している。