シェル(shell)とは何か?


シェル(shell)とは?

  • Linuxカーネル(Linuxの本体で、コマンドを実行する部分のこと)のインタフェース(窓口)となっているソフトウェアのこと。

  • ユーザーからコマンドが入力されることで、OSの中核であるLinuxカーネルとやり取りをしてLinuxカーネルのプログラムを呼び出している。つまりシェルの役割は、「人からの入力とコンピュータからの出力をそれぞれに伝えること」である。

  • shellは英語で「殻」という意味を持っていることから、Linuxカーネルを包み込むように動作するが、イメージとしてはユーザとLinuxカーネルの間を取りもつメッセンジャーの役割をしている。

カーネルとシェルが別れている理由

主に以下の3つの理由がある。

  1. Linuxカーネルには手を入れずに、シェルだけを自分好みのものに変更することができるから

  2. Linux以外のOS(FreeBSDやNetBSD、Solarisなど)を利用する際も、シェルが移植されていれば操作を同様に行うことができるから。

  3. シェルがエラーや高負荷状態になってクラッシュしたとしても、OS本体であるLinuxカーネルへの影響を最小限に抑えることができるから。

参考サイト:https://blog2.cct-inc.co.jp/blog/os/shell/