Linuxが公式のGNUカーネルとして受け入れられないのはなぜですか?


128

Hurdの存在と公式のGNUオペレーティングシステムカーネルとしてのその使命をかなり長い間知っていましたが、Linuxが長年にわたって公式のGNUカーネルとして受け入れられないのはなぜかと思っていました。ハードよりも?

Linuxはこれまで20年以上もこの役割を果たしてきましたが、Linux に関してはGNUプロジェクトがその距離を保っていることがわかります。なぜこうなった?Hurdが(将来のある時点で)生産品質レベルになるのは夢のせいですか?それは、GNUプロジェクトがその使命をLinuxで望んでいるほど反映していないからでしょうか?他の政治的理由によるものですか?


20
ここでの「違法」な質問ですが、興味深いものです。少し運が良ければ、「歴史的重要性」から保護され、十分に素晴らしい答えが得られます... ;
Hauke Laging

2
@HaukeLagingありがと 私もこれは良い質問だと思うし、興味深い答えを出すかもしれないし、なぜ誰かが投票するのか本当に理解できない。これは多くの人が知りたいと思うものだと確信しています。
NlightNFotis

1
ああ、それは簡単です:誰かがちょうど「オフトピック」よくある質問と掛け声を指すようにしており、「広すぎる」でしょう...
Hauke Laging

5
@HaukeLagingあなたは本当に真実であり、人々がより実用的で、単にFAQを指し示して叫ぶのではなく、価値がある質問を認識できることを望みます。最も興味深い質問が閉じられていることをSOで簡単に見ることができますが、疑問に思うだけです
...-NlightNFotis

4
FAQを読み直しただけです。私見これはここのトピックにあります。それはメタ質問ですが、質問自体はLinux / Unixに関連しており、非常に明確です。
ニルス

回答:


151

GNUは、開発者がすべての公式GNUプロジェクトを拘束する特定の規定に同意しない限り、何かをプロジェクトとして採用しません。

現在、Linuxカーネルはおそらくこれらの制限に適合しておらず、Linus Torvalds、kernel.orgなどには何もありません。前述の拘束力のある合意と、カーネルが現在GNUプロジェクトであるという一般的な認識は、ほとんどマイナスの影響を及ぼします。GNUの親組織であるフリーソフトウェア財団(FSF)は政治組織であり、トーバルズはそれについてさまざまな公的な批判を行っています。

さらに、GNUユーザースペースがLinuxカーネルを必要とする以上に、LinuxカーネルはGNUユーザースペースを必要としません。この独立性は、ソフトウェアエンジニアリングの基本原則によって良いものと見なされる必要があります。ソフトウェアエンジニアリングは、反対の(密結合のモノリシックなもの)とは対照的に、モジュール性と疎結合を支持します。

この考えに対するもう1つのポイントは、HURDはLinuxほど多くの人にとって関心がないかもしれないが、HURDの開発者とユーザーは、人気コンテストでプロジェクトを効果的にゴミ箱に入れることに反対するかもしれないということです。そして彼らにとって良い。この種の「競争」はポジティブなものですが、独占に屈することはそうではありません- モノリシック/巨大なコントロールに陥りやすいため、創造性を部分的に抑制する巨大なエンティティになります。Linux Foundationはすでに独立した組織であり、その方法を維持することもできます。


13
素晴らしい答えをありがとう。私からの+1、および2つのメモ:1)私を誤解しないでください: 私はHurdに対して高い意見を持っています。私は自分でハード開発者です。しかし、(私は信じている)Linuxがより良い状態であることは議論の余地がない。2)LinuxがGNUと結合したくない理由はわかりますが、私が見ることができるのは、これに対する最大の異議を示すGNUプロジェクトです。これについて詳しく説明していただけますか?
NlightNFotis

14
@NlightNFotis:ほとんどがGNUの異議であると確信していますか?:ちょうどこの読みtorvalds-family.blogspot.ca/2008/11/black-and-white.htmlを。私にとっては、関係者全員が正式な関係がなくてもずっと幸せなようです。
goldilocks

このブログ投稿をありがとう。今ではもっと理にかなっています。質問をしばらく開いたままにして、人々がより素晴らしい回答を詳しく述べているかどうかを確認します。そうでない場合は、あなたの質問がこの質問の「回答」として選択されます。最後の「請願」だけです。「HURDに対する高い意見はないかもしれない」と言い替えてもいいかと思いますが、それは私を少し不安にさせ、自分自身を不快にさせるからです。
-NlightNFotis

4
ハードの背後にあるアイデアが本当に好きです。私が思いついたのは、仮想化への進行中の傾向が、Hurdが現実世界の少なくとも一部を見るための大きな助けになることが判明したことです。誰かがそれを使用するのに完全なOSは必要ありません。Hurdの下で実行することから明らかな利点があるアプリケーションがいくつかある場合は、それらをHurd VMに単純に配置できます。chrooting、lxcなどに似ています。
ハウケレイジング

2
@NlightNFotis言い換え:)
goldilocks

77

これに関する多くのドキュメントと議論がネット上にあります。

GNUプロジェクトとLinuxカーネルプロジェクトには深いイデオロギーの違いがあり、統一の妨げになるという短い答え。

GNUプロジェクトの背後にある組織であるFSFの焦点は、フリーソフトウェアの概念に関するイデオロギーの純粋さにあります。これは主に、FSF / GNUの創設者であるリチャードストールマンの見解に基づいています。さらに、goldilocksが述べたように、FSFは現在ほとんど政治的擁護団体です。長い間、FSFは重要なリソースをGNUプロジェクトに投入していませんが、サポートインフラストラクチャを提供しています。

Linuxカーネルプロジェクトは、ソフトウェアの自由に対してはるかに実用的なスタンスを持っています。これも、その創設者であるLinus Torvaldsに起因します。Linuxカーネルプロジェクトは主に、カーネル/ OS開発に特化したソフトウェア開発者で構成され、政治的な擁護団体ではないフリーソフトウェアプロジェクトです。

これらのイデオロギーが実際にどのように機能するかの特定の例として、

1)ストールマンは、Debianプロジェクトがソフトウェアアーカイブのフリーでない部分を維持することでフリーでないソフトウェアを「宣伝する」という事実を受け入れられないと見なしている。DebianプロジェクトはFSFに非常に似ているが、イデオロギー的に厳格ではないソフトウェアの自由に焦点を当てているため、これは皮肉です。

2)Linuxカーネルが(フリーではない)バイナリカーネルモジュールをカーネルで使用できること。カーネル開発者はこれに熱心ではありませんが、それを容認しますが、FSFがそうすることを想像するのは困難です。

また、GNU / LinuxがFSFとLinuxカーネルコミュニティの関係を改善していないため、Linuxカーネルに基づいたオペレーティングシステムに名前を付けようとするStallmanの試みは、特にこれに関するデータはありませんが、注目に値します。

goldilocksが述べているように、FSFには、GNUプロジェクトが準拠しなければならないさまざまなルールがあります。これには、FSFへのすべてのコードの著作権の譲渡が含まれます。Linus Torvaldsはこのような著作権の譲渡を要求したことがないため、これはすべてそれ自体が契約違反となります。したがって、LinuxカーネルがGNUプロジェクトの一部となる場合、Linuxカーネルへの重要な貢献はすべて、FSFに著作権を割り当てる必要があります。プロジェクトの年齢と規模、および貢献者の数を考えると、これは基本的に不可能です。はるかに小規模で若いプロジェクト(Mercurialなど)では、ソフトウェアの再ライセンスが困難なタスクであることがわかりました。

この回答は、FSFまたはLinuxカーネル開発者の批判を意図したものではないことに注意してください。両側に独自の有効な視点があります。しかし、状況の現実は、それらがある程度互換性のない視点であるということです。


4
+1この回答が気に入っています。問題に関する確かな情報。ご意見ありがとうございます。
NlightNFotis

1
ヨーロッパの多くの国では、「著作権の譲渡」が法的に不可能であることは注目に値します。他にも可能性があります(寄稿者の同意)が、著作権の譲渡は法的に不可能な場合があります-技術的にだけではありません。
マチェイピエチョトカ

1
@FaheemMithaは、GNUの定義によってバイナリ・ブロブは最も確かではないので、あるカーネルの一部。これらはカーネルソースコードで配布され、カーネルバイナリに組み込まれ、機能するために必要です。
-psusi

8
ああ、プロプライエタリなドライバはGNUが反対するもう一つのことです。これがGPLv3の理由の1つでした。独自のモジュールが実行時であってもフリーコードにリンクされないようにし、LinuxがGPLv2にとどまることを選択した理由。
-psusi

1
@vonbrand、同意するかどうかは関係ありません。それはFSFの立場であり、そのためLinuxは決してGNUプロジェクトになることはできません。
-psusi

35

Richard StallmanによるLinuxではなくHurdを使用する決定についてのコメントを引用しています。

「FSFはなぜLinuxを使用する代わりに新しい無料のカーネルを開発したのですか?」簡単な答えは、それは私たちが直面した問題ではないということです。

1990年にHurdの開発を開始したとき、私たちが直面した質問は、「GNUシステム用の無料のカーネルをどのように入手できますか?」でした。 1。私たちが無料のカーネルを持つことを期待できる唯一の方法は、それを自分で書くことでした。だから始めました。

Linuxがリリースされてから聞いた。当時、私たちが直面していた質問は、「Hurdプロジェクトをキャンセルし、代わりにLinuxを使用する必要がありますか?」

Linuxはまったく移植性がないと聞きました(今日はそうではないかもしれませんが、それは当時聞いたことです)。そして、Linuxはアーキテクチャ的にはUnixカーネルと同等だと聞いた。私たちの仕事は、はるかに強力なものにつながりました。

すでにハードに投入した長年の仕事を考えると、私たちはそれらを捨てるのではなく、終了することにしました。

人々が尋ねる質問に直面した場合-Linuxがすでに利用可能であり、別のカーネルの作成を開始するかどうかを検討していた場合-しません。代わりに、既存のフリーソフトウェアではできない仕事をする別のプロジェクトを選択します。

しかし、当時はHurdを起動していましたが、今では動作させています。その優れたアーキテクチャにより、無料のオペレーティングシステムがより強力になることを願っています。


7
質問にはすでに素晴らしい回答が提供されていますが、GNUプロジェクトの作成者であるリチャード・ストールマンから直接、ハードにこだわるという選択の背後にある理論的根拠を示しているため、この回答を質問の正解として選択します。
-NlightNFotis

9
「今日、これは真実ではないかもしれない」ことに注意してください。Linuxに対するRMSの意見は、知識ではなく伝聞に基づいているようです。
マーティンシュレーダー2013年

19
@Martin:(Late Reply、しかし:) Torvaldsが最初にLinuxを発表したとき、それはx86固有であり、移植可能にする計画はありませんでした。でintialスレッドライナスフラットアウト「私は移植が不可能であることを言うだろう」と述べました。したがって、rmsには、Linuxが今日のようなものに成長すると当初信じる理由がありませんでした。プロジェクトリーダーの口からの証拠はほとんど聞かれません。
ケビンキャスカート

@KevinCathcart:RMS / FSFは、他の人に頼るのではなく、自分たちでコードを研究すべきでした(「聞いた」)。
マーティンシュレーダー2013

21
@MartinSchröder:なぜプロジェクトリーダーが移植性がないと明示的に言ったのにコードを勉強するのですか?とにかく、Linuxは1991年に発表されました。Linuxがアーキテクチャポート用のフォルダを追加するまで、1994年4月(リリース1.1.45)までかかりました。ポートが実用的になるまでに時間がかかります。FSFが1992年または1993年にHurdを継続するという決定を下した場合、コードを見ても、コードは移植性がないことを補強するだけでした。
ケビンキャスカート

4

ここに2セントを追加しただけです。この時点で議論されたことは非常に理にかなっていると思いますが、GNU基盤を本当に分極化できると思う大きな側面が1つあります。大企業が実際のお金と時間を投資している場所、Linuxは自家製のプロジェクトのようなものだという考えは真実ではなく、少しでもない、多分ランダムな男がシーンに注意を向けようとしているパッチを当てますが、Linuxの大部分は企業の仕事です。


1
私はFSFがソフトウェアプロジェクトの企業サポートに問題を抱えているとは思わない。彼らの主な焦点は、フリーソフトウェアの原則にあります。
ファヒムミタ

企業の支配は、GNU GPLが取り組むことを意図した大きな関心事でした。許可されたライセンスのソフトウェアは実際にはMITとバークレーの両方で通常の手順でしたが、コードが商用化されるとすぐに閉じられました。そのため、たとえば、今日Linuxソースをチェックアウトすれば、商業的に開発されたすべての改善が私の潜在的なプロジェクトに役立つでしょう。または、私の次の小さな個人プロジェクトでは、2、3ブロックしか使用しないかもしれませんが、ポイントは、リリースされた改善は、次にコードを使用する人に利益をもたらすということです。
JMベッカー14年

1

gnu.orgFAQにある別の説明:

GNU HurdをLinuxと競合できるほど十分に機能させることは大きな仕事であり、それは明らかに必要ではありません。カーネルとしてのLinuxで唯一倫理的に間違っているのは、ファームウェアの「ブロブ」を含めることです。その問題の最善の解決策は、ブロブの無料交換を開発することです。


-6

LinuxはPosixに準拠していないため、Linuxを Unixにすることはできません。

したがって、政治的な手間がなくても、LinuxはHurdの設計目標を達成できません。

引用:「Hurdは、人気のあるオペレーティングシステムカーネルであるUNIXに代わるGNUプロジェクトの代替品です。」

驚くべきことに、Debian / Hurd-Projektがあります。しかし、それはおそらく別の話です...

BTW:Windows(NT / XP以降)もMACHカーネルに基づいています。


8
LinuxがPOSIXに準拠していないと主張する場合は、少しバックアップする必要があります。FSFが絶対に100%POSIX準拠のカーネルを必要とする場所を含む。ところで、UnixはPOSIXではありません。Unix(登録商標)は特定の専有OSであるため、他の OSがその OSになれないことは言うまでもありません。
-psusi

6
MACHに基づくWindowsカーネルの引用?ウィキペディアによると、彼らはいくつかのデザインの選択肢を共有しています。ただし、MACHはプロトタイプのマイクロカーネルであり、Windows OSサービスの大部分はユーザーランドではなくカーネルで実行されます。私が知っているWindowsカーネルの唯一の主要なOSSコンポーネントは、以前はBSD実装に基づいていたネットワークスタックでした。しかし、それは取り払われ、数バージョン前のOS設計の残りの部分とより良くインターフェースするものに置き換えられました(XPまたは2kのIIRC)。
ダン・ニーリー

14
しかし、GNUはUnixでもありません。
サイモン

6
@Nils、あなたがリンクした質問はそれを支持するのではなく、あなたの立場に矛盾します。
-psusi

8
@Nils、マッハのナンセンスは、もう少し一般的な誤解です。NTにはマッハとの共通点はありません。その「サブシステムサーバー」は、マイクロカーネルを作成しないUNIXデーモンと変わりません。もともとguiはユーザーモードで実装され、これはマイクロカーネルシステム(LinuxをマイクロカーネルにしないXwindowsも同様)に似ているだけでしたが、これはNT4で破棄されてカーネルに移動しました。
-psusi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.