LinuxとGNUはどのように関係しているのだろうと思っていました。誰かが私の疑問を解消できますか?
ありがとう!
Richard Stallmanによって設立されたGNUは、完全に機能するオペレーティングシステムの作成に多かれ少なかれ役立つツールのコレクションです。GNUの目標は、UNIXの完全に無料のオープンソースの代替品を作成することでした。
Linuxは、GNUに接続せずにLinusTorvaldsによって作成されました。Linuxはオペレーティングシステムカーネルとして機能します。Linuxが作成されたとき、すでに多くのGNUコンポーネントが作成されていましたが、GNUにはカーネルがなかったため、LinuxをGNUコンポーネントとともに使用して、完全なオペレーティングシステムを作成しました。現在、開発中のGNUチーム(GNU Hurd)によって作成されたカーネルがあり、Linuxの代わりに使用して完全にGNUベースのオペレーティングシステムを作成できます。ただし、GNU Hurdはまだ開発段階にあり(20年前)、Linuxはより成熟したカーネルです。
(Androidの場合のように)GNUコンポーネントを持たないLinuxベースのオペレーティングシステムを持つことも可能です。
ただし、通常、完全なオペレーティングシステムは、Linuxと多くのGNUコンポーネントで構成され、GNU/Linuxと呼ばれることもあります。
もともと GNU は、完全な Unix 互換のオペレーティング システムを少しずつ構築するプロジェクトでした。
計画は、仕様に従って各小さなユーティリティを書き直し、元のユーティリティを置き換えて動作中の Unix でテストすることでした。進行が特に遅いカーネルを除いて、それは非常にうまくいきました。これはおそらく、何人かの優れた開発者が絶対的な最良の設計について合意できなかったためです。
計画された HURD カーネルは、実際には非常に高度な設計であり、多くの革新が行われていましたが、すぐに完成することはないように思われました。
一方、Linus Torvalds は、主に Intel 80386 プロセッサの低レベルの側面を制御する方法を独学するために、独自のカーネルを作成していました。最初は単なるタスク スイッチャーでしたが、古い syscalls 仕様のほとんどをすぐに実装し、MINIX (主に教育で使用される別の Unix 系システム) 環境のほとんどを新しいカーネルで実行できるようになりました。
すぐに、MINIX ユーティリティの代わりに GNU ユーティリティを使用することを提案する人々が現れ、より完全なシステムを手に入れました。これは非常にうまく機能したため、ほとんどの GNU 開発者は HURD カーネルを永久に待つのではなく、Linux カーネルを採用しました。
結果として得られる OS は一般に単に「Linux」と呼ばれますが、Linux が単なるカーネルであることは事実です。すべての GNU ユーティリティは、より多くのコード行であるため、GNU/Linux と呼ぶ方が適切です。