ターミナル(端末)はMacOSに付属するアプリケーションでもあるが、これはシェルとよく混同されるが、まったく別のソフトウェアである。
ターミナルは入出力の画面を提供するだけのソフトウェアで、そのなかでシェルを使用し、コマンドをカーネルが実行するという流れになる。
カーネルは、OSの中核であり、アプリケーションとハードウェアのデータ処理の架け橋である。
つまりシェルはカーネルのインターフェースとなっているソフトウェアである。
このような構造になっている理由はさまざまであるが、具体的には下記のようなものである。
- シェルを自分好みのものにすることができるシェル
- シェルがOS間の違いを埋めることができる
- シェルが高負荷の状態になっても、カーネルへの影響を最小限に抑えられる