コンソール・ターミナル・シェルあたりの用語を整理する
コンソール、ターミナル、シェル。似たようで違う言葉なので整理する。
目次
コンソール
元々は、中央サーバを直接操作する卓のこと。
「タイムシェアリングシステム」の登場によって、中央サーバを多人数で利用できるようになった時に、中央サーバを操作するための子端末たちが生まれたが、コレが「ターミナル」にあたる。
現在コンソールという単語を使うのは、「ターミナル」とあまり区別がないかな。
ターミナル
イコール「端末」。主となるサーバに対して入出力する機械のこと。「コンソール」よりもコンピュータとの距離が遠い感じ。
大昔の、中央にある UNIX サーバに接続してペチペチするためだけの「ガワパソコン」みたいなモノが源流らしい。
ターミナルエミュレータ
現在の「ターミナル」という言葉は、正確には「ターミナルエミュレータ」といえる。
黒い画面に、テキストがズラズラ表示されるあのインターフェースのことを指す。その上で動いているコマンドなどは「シェル」の機能。
cmd.exe、PowerShell の、ウィンドウと画面表示を司る部分だと思えば良いか。その中で使われている Windows コマンドや PowerShell コマンドによる対話インターフェースの機能は「シェル」に当たる。
もう少しいえば、PowerShell を開いて、PS1> bash
と叩いて Bash 環境を起動したとすると、「ターミナルエミュレータは PowerShell」で「シェルは Bash」という状態になる。中で使われるシェルの言語は関係ないワケだ。
ConEmu というフリーソフトは、それ自体はシェルを提供しない「ターミナルエミュレータ」機能のみのソフト、ということになる。だから、ConEmu 上でコマンドプロンプトでも PowerShell でも GitBash でも使える。
シェル
OS のカーネル (核) を守る「殻」。ユーザに直接カーネルを触らせるのではなく、シェルが間に立ち、ユーザには命令を送るためのコマンド群を提供する。ユーザはコマンドを利用して、シェルを経由してカーネルを操作することで、CUI が実現される。
以上
なんとなく分かりました。