「シェル」という用語に興味があります。私はそれが何であるかを知っていると思いますが(「シェル」と「ターミナル」の区別はまだあいまいですが)、なぜこのタイプのプログラムを説明するために「シェル」という言葉が選ばれたのですか?
これは重要ではないように思えるかもしれませんが、通常、単語の選択が私を混乱させるとき、それは私の理解のギャップを指しています。
「シェル」という用語に興味があります。私はそれが何であるかを知っていると思いますが(「シェル」と「ターミナル」の区別はまだあいまいですが)、なぜこのタイプのプログラムを説明するために「シェル」という言葉が選ばれたのですか?
これは重要ではないように思えるかもしれませんが、通常、単語の選択が私を混乱させるとき、それは私の理解のギャップを指しています。
回答:
Multicsの用語集は、手掛かりを提供することができます。シェルは次のように定義されます:
Multicsコマンドプロセッサは、以前はシェルと呼ばれていました。このプログラムには、リスナーによる実行のためのコマンドラインが渡されます。行をコマンド名と引数に解析し、コマンドを見つけて開始し、PL / I文字列である引数でコマンドプログラムを呼び出します。cu_ $ set_cpを呼び出すことにより、システムが提供するデフォルトのシェルをユーザー提供のプログラムに置き換えるのは簡単です(略語を参照)。Unixシェルには、Multicsの意味でのシェルとリスナーの両方の概念が含まれています。
シェルとリスナーの関係は、語源的にも比phor的にも意味があります [1]。
[1]「シェルは権威、言論、聴聞の象徴であるため、預言の象徴である...」
類推はナットを使用したものです。外側はシェル、内側はカーネルです。
http://en.wikipedia.org/wiki/Thompson_shell#Historyから
「コマンドラインインタープリターの「シェル」という名前と、シェルをオペレーティングシステムカーネル外のユーザープログラムにするという概念は、Unixの前身であるMulticsで導入されました。」
ウィキペディアのウサギの穴のさらに下で、「ルイプージン、Multicsで使用されるコマンド言語のシェルという用語を導入しました」
完全には読んでいませんが、ここに書いた彼の回答があなたに答えを与えるかもしれません:http : //www.multicians.org/shell.html
編集:確かにそれは説明されていません。彼は単に用語を「コイニング」しました。あなたが望んでいた面白い話ではありませんでしたか?
たぶんそれは表面であり、ユーザーから内部カーネルを保護しているからでしょうか?そのため、カーネルはシェル内の真珠になります。
答えはここにあるようです:
歴史的注記:明らかに、元のMulticsシェル(センス1)は、シェル(センス3)であるため、そう呼ばれていました。ユーザープログラムは、個別のプロセスを起動するのではなく、プログラムを独自のコードに動的にリンクし、サブルーチンとして呼び出してから、戻り時に動的にリンク解除することで実行されました。VMSコマンドインタープリターは、まだこのようなことをしています。
- ウィキペディア
つまり、「シェル」は、Unixの前身であるMulticsがプログラムを実行した方法の現実世界の良い例えでした。
私が理解しているように、「シェル」は、現在「プライマリユーザーインターフェース」と呼ぶものの古い用語です。現代の類似した用語は「デスクトップ環境」です。これは、ほとんどすべての最新システムがデスクトップのメタファーを使用しているためです。
カーネルはシステムの中核であり、シェルはカーネルを囲み、カーネルとユーザーの間のインターフェースです。
UNIXシステム内では、Linuxシステムでも、シェルはシステム管理者がシステムを構成および管理するために働く場所です。
現代の用語では、多くの場合、CLIまたはコマンドラインインターフェイスという用語を使用してシェルプロンプトを記述しています。これは、GUIまたはグラフィカルユーザーインターフェイスに従います。ただし、実際のシステム管理者は、GUIツールを使用してUNIX / Linuxを構成することはできず、シェルコマンドプロンプトでのみ直接動作することを知っています。
これは、「Linuxを使用しているが、実際にはCLIを学んでいない」など、Linuxの熱狂的なファンが言うようになった今、さらに重要になっています。
古いことわざにあるように、「シェルプロンプトで実行できない場合は実行できません。」