shell
名詞
[元はMulticsのtechspeak。Unixを介して広く伝播した]
[techspeak] オペレーティングシステムにコマンドを渡すために使われるコマンドインタープリタ。オペレーティングシステムのうち外界と接する部分であることからこう呼ばれる。
より一般的には、利便性、効率、またはセキュリティ上の理由から、特別なリソースやserverへのアクセスを仲介するあらゆるインターフェースプログラム。この意味では、通常「何々のまわりのshell(a shell around whatever)」という言い方をする。この種のプログラムはwrapper(ラッパー)とも呼ばれる。
手作業で、または(たとえばパーサジェネレータのような)別のプログラムによって作られる骨格プログラムで、何らかのタスクをセットアップするのに必要なincantationと、それを駆動する制御フロー(driverという用語が同義に使われることもある)を提供する。ユーザーは、実際の仕事を片付けるのに必要なコードを埋めることになっている。この用法はAIやMicrosoft Windowsの世界で一般的で、Unixハッカーを混乱させる。
歴史的な注記: どうやら、元のMulticsのshell(語義1)は、それがshell(語義3)だったからそう呼ばれたらしい。それはユーザープログラムを、別々のプロセスを起動するのではなく、プログラムを自身のコードに動的にリンクし、サブルーチンとして呼び出し、復帰時に動的にリンクを解除することで実行した。VMSのコマンドインタープリタは今でもこれと非常によく似たことをしている。