Linux ディストリビューションは単なる Linux カーネルではありません。これらにはすべて、Grub ブートローダー、Bash シェル、GNU シェル ユーティリティ、デーモン、X.org グラフィカル サーバー、デスクトップ環境など、他の重要なソフトウェアが含まれています。
これらのさまざまなプログラムはすべて、さまざまな独立した開発グループによって開発されています。これらは Linux ディストリビューションによって結合され、相互に構築されて完全な「Linux」オペレーティング システムが作成されます。これは、Microsoft が完全に開発した Windows とは異なります。
ブートローダー
コンピューターの電源を入れると、コンピューターの ブート デバイスからソフトウェアを読み込みます。オペレーティング システムで最初にロードされるプログラムはブート ローダーです。 Linux の場合、これは通常 Grub ブート ローダーです。
複数のオペレーティング システムがインストールされている場合、Grub はそれらから選択できるメニューを提供します。たとえば、デュアルブート構成で Linux がインストールされている場合、起動時に Linux または Windows のいずれかを選択できます。
オペレーティング システムが 1 つしかインストールされていない場合、Grub は Linux システムをほぼ即座に起動する可能性がありますが、まだ存在しています。 Grub は、実際に Linux を起動するプロセスを処理し、コマンドライン オプションを発行して、トラブルシューティングの目的で他の方法で Linux を起動できるようにします。ブート ローダーがなければ、Linux ディストリビューションは起動できません。
Linux カーネル
Grub がブートするソフトウェアの正確な部分は、Linux カーネルです。これは、実際には「Linux」と呼ばれるシステムの部分です。カーネルはシステムの中核です。 CPU、メモリ、キーボード、マウス、ディスプレイなどの入出力デバイスを管理します。カーネルはハードウェアと直接通信するため、多くのハードウェア ドライバーは Linux カーネルの一部であり、その中で実行されます。
他のすべてのソフトウェアはカーネル上で実行されます。カーネルはソフトウェアの最下位部分であり、ハードウェアとインターフェイスします。これは、ハードウェアの上に抽象化の層を提供し、さまざまなハードウェアの癖をすべて処理して、システムの残りの部分がそれらの癖をできるだけ気にしないようにします。 Windows は Windows NT カーネルを使用し、Linux は Linux カーネルを使用します。
デーモン
デーモンは本質的にバックグラウンド プロセスです。これらはブート プロセスの一部として開始されることが多いため、カーネルの後、グラフィカル ログイン画面が表示される前に読み込まれる次の処理の 1 つとなります。 Windows ではそのようなプロセスを「サービス」と呼びますが、UNIX 系システムではこれらのプロセスを「デーモン」と呼びます。
たとえば、スケジュールされたタスクを管理する crond はデーモンです。最後の d は「デーモン」を表します。 syslogd は、従来からシステム ログを管理するもう 1 つのデーモンです。 sshd サーバーなどのサーバーは、バックグラウンドでデーモンとして実行されます。これにより、常に実行され、リモート接続をリッスンすることが保証されます。
デーモンは本質的に単なるバックグラウンド プロセスですが、通常は気付かないシステム レベルのプロセスです。
シェル
ほとんどの Linux システムはデフォルトで Bash シェルを使用します。シェルはコマンド プロセッサ インターフェイスを提供し、テキスト インターフェイスでコマンドを入力してコンピュータを制御できるようにします。シェルは、スクリプトで指定された順序で実行されるコマンドと操作の集合である を実行することもできます。
グラフィカル デスクトップを使用しているだけの場合でも、シェルはバックグラウンドで実行され、使用されています。ターミナル ウィンドウを開くと、シェル プロンプトが表示されます。
シェルユーティリティ
シェルにはいくつかの基本的な組み込みコマンドが用意されていますが、Linux ユーザーが使用するシェル コマンドのほとんどはシェルに組み込まれていません。たとえば、 、ディレクトリ内のファイルを一覧表示する ls コマンド、ファイルを削除する rm コマンドなどの重要なコマンドは、GNU Core Utilities パッケージの一部です。
Linux システムは、これらの重要なユーティリティがなければ機能しません。実際、Bash シェル自体は GNU プロジェクトの一部です。 Linux を本当に「Linux」と呼ぶべきか、「GNU/Linux」と呼ぶべきか について論争があるのはそのためです。 「Linux」という名前を批判する人たちは、一般的な Linux システムにははるかに多くのソフトウェアが組み込まれているが、それが認識されていないことが多いと正しく指摘しています。 「GNU/Linux」という名前を批判する人たちは、一般的な Linux システムには「GNU/Linux」という名前には含まれない他の重要なソフトウェアも含まれていることを正しく指摘しています。
すべてのシェル ユーティリティとコマンドライン プログラムが GNU プロジェクトによって開発されているわけではありません。一部のコマンドとターミナル プログラムには、それぞれ専用のプロジェクトがあります。
X.org グラフィカル サーバー
Linux のグラフィカル デスクトップ部分は Linux カーネルの一部ではありません。これは、何年も前に誕生した「X ウィンドウ システム」を実装するため、「X サーバー」として知られる一種のパッケージによって提供されます。
現在、最も人気のある X サーバー (グラフィカル サーバー) は X.org です。グラフィカルなログイン ウィンドウまたはデスクトップが表示されたら、それは X.org が魔法を働いていることを意味します。グラフィック システム全体は X.org によって実行され、ビデオ カード、モニター、マウス、その他のデバイスとインターフェイスします。
X.org は完全なデスクトップ環境を提供するのではなく、デスクトップ環境とツールキットをその上に構築できるグラフィカル システムのみを提供します。
デスクトップ環境
Linux デスクトップで実際に使用しているのは 、デスクトップ環境 です。たとえば、Ubuntu には Unity デスクトップ環境が含まれ、Fedora には GNOME が含まれ、Kubuntu には KDE が含まれ、Mint には通常 Cinnamon または MATE が含まれます。これらのデスクトップ環境では、デスクトップの背景、パネル、ウィンドウのタイトル バー、境界線など、目に見えるものすべてが提供されます。
また、通常、デスクトップ環境全体に適合するように構築された独自のユーティリティも含まれています。たとえば、GNOME と Unity には GNOME の一部として開発された Nautilus ファイル マネージャーが含まれていますが、KDE には KDE プロジェクトの一部として開発された Dolphin ファイル マネージャーが含まれています。
デスクトッププログラム
すべてのデスクトップ プログラムがデスクトップ環境の一部であるわけではありません。たとえば、Firefox と Chrome はデスクトップ環境に依存しません。これらは、あらゆるデスクトップ環境上で通常どおり実行できるプログラムにすぎません。 OpenOffice.org も、特定のデスクトップ環境に関連付けられていないプログラム スイートです。
Linux デスクトップ プログラムはどのデスクトップ環境でも実行できますが、特定のデスクトップ環境向けに設計されたプログラムは場違いに見えたり、他のプロセスに引き込まれたりする可能性があります。たとえば、GNOME の Nautilus ファイル マネージャーを KDE 上で実行しようとすると、場違いに見え、さまざまな GNOME ライブラリをインストールする必要があり、おそらくそれを開いたときにバックグラウンドで GNOME デスクトップ プロセスを開始することになります。しかし、それは実行され、使用できるようになります。
Linux ディストリビューションは 最後のステップを実行します。彼らはこれらすべてのソフトウェアを取得し、うまく連携できるように組み合わせて、独自の必要なユーティリティを追加します。たとえば、ディストリビューションは、実際に Linux をインストールできるように独自のオペレーティング システム インストーラーを作成するだけでなく、追加のソフトウェアをインストールし、インストールされているソフトウェアを最新の状態に保つための パッケージ マネージャーも 作成します。
画像クレジット: Flickr の tao mai





