GNU/Linux OS における GNU の主な貢献は何ですか?

GNU/Linux OS における GNU の主な貢献は何ですか?

私はGNU/Linux よくある質問彼らが全員にシステム全体を GNU/Linux と呼ぶように求めている理由の 1 つは、次のとおりです。

  • オペレーティング システムの開発における GNU の主要かつ主要な貢献。

そこで私は、GNU/Linux オペレーティング システムの開発において GNU はどのような主要な貢献をしたのだろうかと考えました。

言い換えれば、GNU/Linux オペレーティング システムにおける GNU の主なコンポーネントは何ですか?

答え1

最も重要な部分は、GCC コンパイラ、glibc C ライブラリ、coreutils および binutils 基本 Unix ツール、そしておそらく bash シェルと Gnome デスクトップ環境 (使用している場合) です。

ソース行数だけでは、相対的な重要性は考慮されません。たとえば、Debian や Fedora の完全なソフトウェア セレクションを見ると、ほとんどの人はそのほんの一部しかインストールしていません。また、(非常に整理整頓が得意でない限り) 興味をそそられ、確認するためにインストールして、すっかり忘れてしまったために、多くのパッケージがインストールされている可能性があります。したがって、ダウンロードされたパッケージの統計 (Debian が維持していると思います) でさえ、公平な表現にはなりません。

後で追加:私は偶然出会ったこのページO'Reilly 著 (Linux システムへの貢献を示すポスターが付属)。

答え2

vonbrand 氏の回答に加えて、GNU/Linux OS への大きな貢献として、Linux (カーネル) プロジェクトの開始時に、多くの GNU の機能がすでに存在し、エコシステム全体としてすでに機能しており、オープン ソース ライセンスの下で自由に利用可能であったことを忘れてはなりません。

GNU プロジェクトの当初の目標、つまりフリーの Unix クローンを構築すること、を忘れてはなりません。Unix は、オペレーティング システムが準拠する必要があるすべての API、コマンド、機能を含む仕様セットであり、現在でもその傾向が強まっています。この標準は、開発者がポータブル アプリケーションを構築するのに非常に役立ちます。

GNU libc と GNU coreutils/binutils は、Linux カーネルに基づくほとんどの OS にこれらの API とコマンドを正確に提供しています。これらは、他のすべてのものを構築するための基盤を形成します。

残りのコンポーネントは、その有用性と複雑さにかかわらず、オプションであり、Unix 標準では指定されていないため、技術的には Unix オペレーティング システムおよびそのクローンの一部ではありません。

これが、Linux ディストリビューションを Linux/GNU/TeX/X11/Python/ISC/Apache などと呼ぶことにあまり意味がないと私が考える理由です。なぜなら、Unix/Linux エコシステム全体で期待される共通の基盤を提供するコアを形成するのは、Gnu と Linux だけだからです。

TEX/X11/Gnome/KDE/Perl/Python/ISC/Apache/Tomcat/LibreOffice/Mozilla/Chromium などは、どれほど便利であっても、Unix/Linux の一部ではありません。

答え3

この記事を読むことをお勧めしますLinux と GNU システムGNU プロジェクトGNU への貢献のアイデアを得るため。


以下は、Linux と GNU システム:

  • 貢献の概要:

    GNUプロジェクトの貢献をこのように測定すると、どのような結論になるでしょうか。あるCD-ROMベンダーは、自社の「Linuxディストリビューション」で、GNUソフトウェア最大の単一割合は、全ソースコードの約 28% で、これには、システムを構成する上で欠かせない主要コンポーネントの一部が含まれています。Linux 自体は約 3% でした。(2008 年の割合も同様で、gNewSense の「メイン」リポジトリでは、Linux が 1.5%、GNU パッケージが 15% です。) したがって、システム内のプログラムを作成した人に基づいてシステムの名前を選択する場合、最も適切な単一の選択肢は「GNU」になります。

  • 目標についての明確化:

    しかし、それはこの問題を深く考える方法ではありません。GNUプロジェクトは、特定のソフトウェアパッケージを開発するためのプロジェクトではありませんでしたし、今もそうではありません。Cコンパイラを開発する、私たちはそれをやりました。テキスト エディターを開発するためのプロジェクトではありませんでしたが、私たちはテキスト エディターを開発しました。GNU プロジェクトは、完全に無料の Unix ライクなシステム、つまり GNU を開発することを目指しました。

  • 必須コンポーネントの宣言:

    多くの人々がシステムのフリー ソフトウェアに多大な貢献をしており、そのソフトウェアに対しては皆が称賛に値します。しかし、このシステムが単なる便利なプログラムの集まりではなく統合されたシステムである理由は、GNU プロジェクトが統合システムの構築を目指したからです。私たちは完全なフリー システムを作るために必要なプログラムのリストを作成し、リストにあるすべてのプログラムを体系的に探し、作成し、または作成する人々を見つけました。必要不可欠だが面白くない(1)コンポーネントは、それがなければシステムを構築できないからです。私たちのシステムコンポーネントの一部、プログラミングツールは、プログラマーの間で人気を博しましたが、ツールではないコンポーネントも数多く作成しました。(2)完全なシステムにはゲームも必要であるため、私たちはチェス ゲーム、GNU Chess も開発しました。


Wikipediaの記事よりGNU>コンポーネント:

システムの基本コンポーネントには、GNU コンパイラ コレクション(GCC)、GNU C ライブラリ(glibc)、およびGNU コアユーティリティ(コアユーティリティ)[8]GNUデバッガ(GDB)もGNU バイナリ ユーティリティ(binutils)、[38]GNU Bashシェル[33][39]そしてそのグノームデスクトップ環境。[40]

こちらもご覧くださいGNU パッケージの一覧>基本システムウィキペディアより。


したがって、主要なコンポーネントは次のようになります。

  1. GNU Binutils
  2. GNU コアユーティリティ
  3. GNU C ライブラリ
  4. GNU コンパイラ コレクション(元の名前: GNU C コンパイラ)
  5. GNU タール
  6. GNUバッシュ
  7. グノーム

その他にも多数あります。


さらに、よくある質問:

Linus Torvalds は、1990 年にフィンランドで行われた GNU に関するスピーチに部分的に影響を受けました。この影響がなかったとしても、Unix のようなカーネルを作成した可能性はありますが、おそらくそれはフリー ソフトウェアではなかったでしょう。Linux は、Linus が GNU GPL の下で再リリースした 1992 年にフリーになりました。


また、彼らが私たちにGNU/Linuxと呼ぶように求めているのは、システムへの最大の貢献という理由だけではなく、その背後にあるより重要なことは、GNUの理想主義と目標を紹介し、維持し、奨励することであることに注意してください。なぜ GNU/Linux なのか?

関連情報