シェル(shell)とは?
-
Linuxカーネル(Linuxの本体で、コマンドを実行する部分のこと)のインタフェース(窓口)となっているソフトウェアのこと。
-
ユーザーからコマンドが入力されることで、OSの中核であるLinuxカーネルとやり取りをしてLinuxカーネルのプログラムを呼び出している。つまりシェルの役割は、**「人からの入力とコンピュータからの出力をそれぞれに伝えること」**である。
-
shellは英語で「殻」という意味を持っていることから、Linuxカーネルを包み込むように動作するが、イメージとしてはユーザとLinuxカーネルの間を取りもつメッセンジャーの役割をしている。
カーネルとシェルが別れている理由
主に以下の3つの理由がある。
-
Linuxカーネルには手を入れずに、シェルだけを自分好みのものに変更することができるから
-
Linux以外のOS(FreeBSDやNetBSD、Solarisなど)を利用する際も、シェルが移植されていれば操作を同様に行うことができるから。
-
シェルがエラーや高負荷状態になってクラッシュしたとしても、OS本体であるLinuxカーネルへの影響を最小限に抑えることができるから。