コンソール・ターミナル・シェルあたりの用語を整理する

コンソール、ターミナル、シェル。似たようで違う言葉なので整理する。

目次

コンソール

元々は、中央サーバを直接操作する卓のこと。

「タイムシェアリングシステム」の登場によって、中央サーバを多人数で利用できるようになった時に、中央サーバを操作するための子端末たちが生まれたが、コレが「ターミナル」にあたる。

現在コンソールという単語を使うのは、「ターミナル」とあまり区別がないかな。

ターミナル

イコール「端末」。主となるサーバに対して入出力する機械のこと。「コンソール」よりもコンピュータとの距離が遠い感じ。

大昔の、中央にある UNIX サーバに接続してペチペチするためだけの「ガワパソコン」みたいなモノが源流らしい。

ターミナルエミュレータ

現在の「ターミナル」という言葉は、正確には「ターミナルエミュレータ」といえる。

黒い画面に、テキストがズラズラ表示されるあのインターフェースのことを指す。その上で動いているコマンドなどは「シェル」の機能。

cmd.exe、PowerShell の、ウィンドウと画面表示を司る部分だと思えば良いか。その中で使われている Windows コマンドや PowerShell コマンドによる対話インターフェースの機能は「シェル」に当たる。

もう少しいえば、PowerShell を開いて、PS1> bash と叩いて Bash 環境を起動したとすると、「ターミナルエミュレータは PowerShell」で「シェルは Bash」という状態になる。中で使われるシェルの言語は関係ないワケだ。

ConEmu というフリーソフトは、それ自体はシェルを提供しない「ターミナルエミュレータ」機能のみのソフト、ということになる。だから、ConEmu 上でコマンドプロンプトでも PowerShell でも GitBash でも使える。

シェル

OS のカーネル (核) を守る「殻」。ユーザに直接カーネルを触らせるのではなく、シェルが間に立ち、ユーザには命令を送るためのコマンド群を提供する。ユーザはコマンドを利用して、シェルを経由してカーネルを操作することで、CUI が実現される。

以上

なんとなく分かりました。