なぜ Linux は OS ではなくカーネルと呼ばれるのでしょうか?

なぜ Linux は OS ではなくカーネルと呼ばれるのでしょうか?

なぜ Linux はオペレーティング システムではなくカーネルと呼ばれるのでしょうか? 私の知る限りでは、カーネルはオペレーティング システムの一部です。

答え1

Linux システムはさまざまな部分から構築されています。

中心となる部分はLinuxカーネルです。(以下から入手できます)カーネル.org、これはもともとリーナス・トーバルズ(それを「Linux」と名付けた人です。)

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

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

数年後、GNU プロジェクトは順調に進み、標準ツールはすべて作成されましたが、まだ動作するカーネルがありませんでした。

そのため、ツールのないカーネル (Linux) のプロジェクトと、ツールはすべてあるがカーネルがないプロジェクト (GNU) が同時に存在していました。どちらも同じ UNIX の考え方で書かれていたため、これらを組み合わせて完全なオペレーティングシステムを作成することができました。このオペレーティングシステムは、適切に「GNU/Linux「」。

しかし、このような基本的な「GNU/Linux」システムであっても、その上で実行したいソフトウェアがなければ、あまり役に立ちません。(ブラウザ、メール サーバーなど)

そのため、配布(Debian、RedHat、SuSE、Archなど) Linuxカーネル、GNUツール、あらゆる種類のアプリケーションをパッケージ化して、インストールとメンテナンスを容易にしました。(他のカーネルを使用するディストリビューションもあります。たとえば、Debian システムカーネルとして FreeBSD または GNU-Hurd を使用します。

さて、「普通の」人々 (たとえば、単に Web ブラウザーを実行したい人) にとって、この背景は非常に詳細すぎるため、彼らはただ 1 つの名前だけを望んでいます。そのため、誰かが「Linux」をインストールしたと主張する場合、実際には、多くのディストリビューションの 1 つとして Linux カーネルが付属するディストリビューションをインストールしたのがほとんどです。

簡単に言えば、システム全体を指すときに、中央カーネルの名前だけを使用することが多いのです。

「オペレーティング システム」を何と呼ぶか​​は、あなた次第です。それは、ハードウェアを管理するもの (Linux など) だけでしょうか、それとも対話するもの (お気に入りのデスクトップ環境など) でしょうか、あるいは基本的な (コマンド ライン ベースの) GNU/Linux のような中間的なものでしょうか。

答え2

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

Linux はオペレーティング システムと呼ばれます。これは、さまざまなパーツの集合体によって提供されるオペレーティング システム全体を指す名前を選択する必要があるためです。Linux は、ユーザーがすぐに目にする最も低レベルのコンポーネントであるため、この名前と役割を担うのは当然です。通常、GNU grep は「GNU grep」とは呼ばれず、単に「grep」と呼ばれます。多くのユーザーにとって、GNU ツールは Linux カーネルほど目に見えて結びついていません。

リチャード・ストールマンは、Linux には多くの GNU ツール (おそらく最も重要なのは C コンパイラ) が含まれているため、Linux を「GNU/Linux」と呼ぶことを強く主張しています。私はそれほど気にしていませんし、他の人もあまり気にしていません。

明確に言えば、GNU/Linux は (カーネルではなく) オペレーティング システムを明確に指します。「Linux」は文脈から外れると、かなり曖昧になります。

答え3

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

カーネルはオペレーティング システムの「コア」です。プロセスの起動、終了、スケジュール、プロセスへのメモリとスワップ領域の割り当て、プロセス間通信、ファイル、ネットワーク スタックの下位レベル、ある程度の IO 抽象化など、重要なサービスのほとんどを提供します。

カーネルの上に、他のコンポーネントのスタックを構築します。一方で、カーネルは、他のコンポーネントの少なくとも一部がなければあまり役に立ちません。他方、これらのコンポーネントのうち、本当に必須なものはほとんどなく、大部分は他のものに置き換えることができます。

したがって、これらのコンポーネントのうちどれを「オペレーティング システム」の一部としてカウントすべきかは明確ではありません。

なぜ Linux はオペレーティング システムではなくカーネルと呼ばれるのでしょうか?

理由は2つあります。

まず、厳密に言えば、それは真実です。「Linux」と呼ばれるプロジェクトはカーネルのみを保守します。他のソフトウェアを集めて実際に有用なシステムにするのは、サードパーティのディストリビューターの責任です。

2 つ目は、フリー ソフトウェア財団が Linux がすべての栄光を得ることに多少不満を抱いているということです。特に Linus はフリー ソフトウェアの実用主義者であり、理想主義者ではないため、なおさらです。

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

しかし、彼らは Unix カーネルの代替品を作るのに苦労しました。1987 年に Stallman は Mach マイクロカーネルと Hurd として知られるデーモンのコレクションに基づくシステムを採用することを決定しました。しかし、ライセンスの問題によりプロジェクトの開始が 3 年遅れ、それ以来開発は停滞しています。

一方、Linus という学生が MINIX に触発されて独自のカーネルを作成しました。カーネルだけでは OS は作成されないため、GNU コンポーネントが新しいカーネルに移植されました。数か月以内にカーネルは十分に進歩し、十分なソフトウェアが移植されてシステムを「セルフホスティング」できるようになりました。つまり、Linux 上で Linux を構築できるようになりました。その後すぐに、Linux は GPL を採用し、急速に勢いを増し始めました。

良くも悪くも、Linux という用語はカーネルだけでなくシステム全体を表すために使用されるようになりました。これは、カーネルを多くのコンポーネントの 1 つにすぎないと見なしていた FSF を苛立たせました。彼らの視点から見ると、彼らのプロジェクトは本質的に乗っ取られたように見えました。

答え4

Linux はカーネルです。これが Linux をカーネルと呼ぶ主な理由です。Ubuntu、Android、Chrome OS は根本的に異なるオペレーティング システムです。Ubuntu のアプリケーションは必ずしも Android で動作するとは限りません。Windows で動作するとも限りません。理由は単純です。オペレーティング システムが異なるからです。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-safe/

関連情報