next up previous contents
Next: シェルの機能 Up: Bourne Shell自習テキスト Previous: もくじ

シェルとは

シェル(shell)とはunixのコマンドインタプリタで、ユーザ端末から入力された 文字列を解釈し、その指示に従って仕事をするプログラムです。しかし、シェルは決し て特殊プログラムではありません。シェルも他のツールと同様にunix上の1つのコマン ドに過ぎません。シェルが他の多くのプログラムと違う点は自分自身がある特定の仕事 をするのではなく「他のコマンド類のまとめ役」として機能することです。

なぜコマンドインタプリタが「殻」を意味するシェル(shell)なのでしょうか。 ユーザから見るとオペレーティングシステムの核(kernel)を貝殻のように包んでいる ことに由来しているようです。 Rod Maris, Marc H. Meyer著「The UNIX Shell Programing Language」 には名前の由来について次のような記述があります。

It is called the shell, beacuse, like the shell of a nut or an egg, it is the part that we see from the outside. The inside part is called the kernel. The shell takes to us and to the kernel.
それは、胡桃や卵の殻のように、外から眺める部分なので、 シェル(殻:shell)と呼ばれている。内部は核(カーネル:kernel)と呼ばれる。 シェルはカーネルと我々との仲立ちをする。
kernelとはオペレーティングシステムの中枢で、プロセスやメモリ、ファイル等の管 理を行う部分です。unix上で何か仕事をする時には必ずお世話にならなければならな いものですが、ユーザ側からkernelに働きかける手段はシステムコールのみです。 プログラムを書くのでしたらシステムコールを操れますが、 対話形式ではシェルを通す以外触れる方法がありません。シェルを通して備え付 けのコマンドなり、自分の作ったプログラムを起動して初めてユーザはkernelへなん らかの指示を出すことができるわけです。プログラムを書かないユーザにとって はシェルこそがオペレーティングシステム、あるいはコンピュータそのものに見えま すから、シェルを使いこなすことがそのままコンピュータを使いこなすことになるわ けです。

unixの世界標準、POSIXのドラフトでは唯一のシェルとされる「Bシェル(Bourne Shell)」 をminix上で体験しながらunixの心髄に触れてみましょう。なお、文中でminixと表現し ている部分はそのままunixと読み換えても不都合は起こらないように配慮したつもり です。



Riichiro Saito
1995年08月29日(火) 11時41分26秒 JST