人々はなぜLinuxをオペレーティングシステムではなくカーネルと呼ぶのですか?

人々はなぜLinuxをオペレーティングシステムではなくカーネルと呼ぶのですか?

人々はなぜLinuxをオペレーティングシステムではなくカーネルと呼ぶのですか?私が知る限り、カーネルはオペレーティングシステムの一部です。

答え1

Linuxシステムはさまざまな部分で構成されています。

重要な部分はLinuxカーネルです。 (あなたはそれを得ることができますkernel.org、もともとはリヌス・トバルズ誰が「Linux」と名付けましたか? )

カーネル自体はほとんど使用されません。あらゆる種類のハードウェアを管理し、アプリケーションで使用するインターフェイスを提供します。したがって、それを使用するには、そのコアを使用するアプリケーションが必要です。

一方、GNUプロジェクト、イニシエータリチャード・ストルマン。その使命は、周りのすべての標準ツールを備えた完全な無料のオペレーティングシステムを作成することです。

数年後、GNUプロジェクトは順調に進み、すべての標準ツールを作成しましたが、まだ機能しているカーネルが欠けていました。

したがって、ツールなしのカーネルプロジェクト(Linux)とすべてのツールは存在しますが、カーネルのないプロジェクト(GNU)は同時に発生します。どちらも同じUNIXの考え方で書かれているため、 ""と呼ばれる完全なオペレーティングシステムにまとめることができます。GNU/Linux」。

しかし、この単純な「GNU / Linux」システムでさえ、実行したいソフトウェアがなければそれほど役に立ちません。 (ブラウザ、メールサーバーなど)

したがって、一部分散(例:Debian、RedHat、SuSE、Archなど)簡単なインストールとメンテナンスのために、Linuxカーネル、GNUツール、およびさまざまなアプリケーションを一緒にパッケージ化します。 (他のカーネルを使用するディストリビューションもあります。たとえば、次のディストリビューションがあります。Debian システムFreeBSD または GNU-Hurd をカーネルとして使用します。 )

「一般的な」人(たとえば、Webブラウザを実行したい人)の場合、この背景はあまりにも詳細であり、必要なのは名前だけです。したがって、ほとんどの場合、誰かが自分が「Linux」をインストールしたと主張するとき、彼は実際には多くのディストリビューションの一部としてLinuxカーネルを含むいくつかのディストリビューションをインストールしました。

簡単に言えば、人々は通常、システム全体を指すために中央コアの名前を使用します。

「オペレーティングシステム」を決定することは、ユーザーによって異なります。これは、ハードウェアを管理するもの(Linuxなど)ですか、それともユーザーが対話するもの(好みのデスクトップ環境)ですか、それとも基本(コマンドラインベース)GNU / Linuxなどの中間にありますか?

答え2

カーネルは、より大きなオペレーティングシステムの不可欠な部分です。通常、Linuxディストリビューションでは、より大きなオペレーティングシステムにはGNUツールベースが含まれています。これがまさに多くの人がカーネルをLinuxに、全体のオペレーティングシステムを「GNU」/Linuxと呼ぶ理由です。 (多くの人はこのような区別をしませんが)。

人々がLinuxをオペレーティングシステムと呼ぶのは、オペレーティングシステムの部分の合計であるオペレーティングシステム全体を指すために名前を選択する必要があるからです。 Linuxはユーザーが見やすい最も低いレベルのコンポーネントなので、この名前と役割を採用するのは当然です。人々は通常、GNU grepを「GNU grep」と呼ぶのではなく、単に「grep」と呼びます。多くのユーザーにとって、GNUツールはLinuxカーネルほど明確にバンドルされていません。

Richard StallmanはLinuxに多くのGNUツールが含まれているため、人々はLinuxを「GNU / Linux」と呼ぶことを非常に主張しています(Cコンパイラはおそらく最も重要です)。私はあまり騒々しくなかったし、他の人も同じだった。

明確に考えると、GNU / Linuxは明らかにオペレーティングシステム(カーネルではない)を表します。文脈から離れると、「Linux」の意味ははるかに曖昧になります。

答え3

私が知る限り、カーネルはオペレーティングシステムの一部です。

カーネルはオペレーティングシステムの「核心」です。ほとんどの主要なサービスを提供します。プロセスの開始、終了および予約、プロセスへのメモリおよびスワップ空間の割り当て、プロセス間通信、ファイル、ネットワークスタックの下位レベル、いくつかのレベルのIO抽象化。

コアの上に一連の異なるコンポーネントを構築します。まず、少なくとも他のコンポーネントがなければ、カーネルはあまり役に立ちません。一方、これらのコンポーネントのうち、実際には必須コンポーネントはほとんどなく、ほとんどは他のコンポーネントに置き換えることができます。

したがって、どのコンポーネントが「オペレーティングシステム」の一部と見なされるべきかは正確に不明である。

人々はなぜLinuxをオペレーティングシステムではなくカーネルと呼ぶのですか?

2つの理由。

まず、これは技術的に本当です。 「Linux」というプロジェクトは、1つのカーネルのみを維持します。サードパーティのディストリビュータは、他のソフトウェアをまとめて真に便利なシステムに置き換える必要があります。

第二に、フリーソフトウェア財団は、Linuxがすべての栄光を享受しているという事実に少し迷惑をかけます。特にリヌスは理想主義者ではなくフリーソフトウェア実用主義者である。

GNUプロジェクトは、UNIXのフリーソフトウェアの代替案を作成するためにFSFによって設立されました。彼らは、コンパイラ、binutils(アセンブラ、リンカなど)libc(C標準ライブラリを提供し、カーネルのシステムコールインターフェイスをposixに変換するラッパー)、textutils、shellutils、およびfileutils(現在マージ)などの重要なコンポーネントへの多くの置き換え要素を作成しました。 coreutilsへ)。

しかし、彼らはUnixカーネルを置き換えるカーネルを見つけるのに苦労しました。 1987年、StallmanはMachマイクロカーネルとHurdというデーモンセットをベースにしたシステムを採用することにしました。しかし、許可の問題により事業の着手が3年も遅れ、その後も引き続き停滞してきた。

同時に、Linusという学生がMINIXからインスピレーションを得て自分のカーネルを作成しました。カーネルだけではオペレーティングシステムを設定できないため、GNUコンポーネントは新しいカーネルに移植されました。数ヶ月以内に、カーネルは十分に進化し、システムが「自己ホスト」するのに十分なソフトウェアが移植されました。つまり、LinuxをLinux上に構築できました。しばらくして、LinuxはGPLを採用し、急速に推進力を獲得し始めました。

良いか悪いかは、Linuxという用語はカーネルだけでなくシステム全体を記述するために使用されます。これはカーネルをいくつかのコンポーネントのうちの1つに過ぎないと思ったFSFを迷惑させました。彼らの観点から、彼らは彼らのプロジェクトが本質的に共同選択されたと見ています。

答え4

Linuxはカーネルです。これがカーネルと呼ばれる主な理由です。 Ubuntu、Android、Chrome OSは基本的に異なるオペレーティングシステムです。 Ubuntu アプリが Windows で必ずしも実行されるわけではないように、Android で必ずしも実行されるわけではありません。理由は簡単です。オペレーティングシステムが異なるためです。セキュリティの観点からは、Linuxベースのオペレーティングシステムも大きく異なります。 Chrome OSは非常に安全であることが知られています。 Androidはそれほど安全ではありません。http://www.forbes.com/sites/gordonkelly/2014/03/24/report-97-of-mobile-malware-is-on-android-this-is-the-easy-way-you-stay-安全/

関連情報