見出し画像

パソコン悪戦苦闘記録

Linuxシェルとターミナルの関係(Linux入門)

 UbuntuなどのLinuxをCLI(コマンドラインインターフェース)で操作するとき、窓口となるツールが「端末」です。端末は、「ターミナル」とも言います。

 Windows等のGUI(グラフィカルユーザーインターフェース)においては、そういったものは使いません。ですから、多くのWindowsユーザーにとっては、馴染みがないはずです。
 私も初めてLinuxに触れたとき、その「端末」というアプリケーションに戸惑いました。そもそも、何をするものか、いったい何のためのものなのか、分からなかったからです。

 
 大昔のコンピューターはバカでかくて、専用の部屋に設置されていました。その巨大なコンピューターを別室から遠隔操作していたわけです。別室からの遠隔操作に使用する、キーボードとディスプレイだけを備えたハードウェアが、文字どおり「端末」です。

 今では、Linux操作にハードウェアとしての端末を使用することはほとんどありません。物理的な端末に代わり、ソフトウェアによって実装されています。現代では、そのターミナルエミュレーター(模倣装置)が利用されています。
 ターミナルエミュレーターは、Linux機上で動作させることもできるし、Windows機など一般的なパソコン上で、アプリとして利用することもできます。


 一方で、LinuxをCLIで操作するには、シェルというのも利用します。
 端末アプリ(ターミナルエミュレーター)とシェルは、全く異なるソフトウェアです。例えば、Windows機からリモートログインしてLinuxを利用する場合、ターミナルエミュレーターはWindows機上で動作し、一方、シェルはLinux機上で動作します。

 ターミナルエミュレーターとシェルは、ともに重要なツールですが、異なる役割を持っています。

 ターミナルエミュレーターは、
ユーザーとオペレーティングシステム (OS) の間のインターフェースを提供するソフトウェアです。
 具体的には、以下の機能を提供します。
1 ユーザーがキーボードから入力したコマンドを受け取る。
2 OSからの出力をユーザーに表示する。
3 画面のスクロールやカーソル移動などの操作を処理する。

 シェルは、
ユーザーがOSとやり取りするためのCLIを提供するソフトウェアです。
 具体的には、以下の機能を提供します。
1 ユーザーが入力したコマンドを解釈する。
2 コマンドを実行するために必要なプログラムを起動する。
3 コマンドの実行結果をユーザーに表示する。

 上記のように、ターミナルエミュレーターは、入出力の画面を提供するためだけのソフトウェアです。
 ターミナルエミュレーターというウィンドウの中で、Linux機のシェルが動いていることになります。





 この両者の関係は、よくレストランのウェイターとコックに例えられます。
 ウェイターは、お客様から注文を受け取り、厨房の中のコックに伝え、また料理を運びます。つまり、ターミナルエミュレーターの役割です。
 厨房のコックさんは、注文に基づいて料理を作り、お客様に提供します。つまり、シェルの役割です。
 この例えによって、ターミナルエミュレーターとシェルとは、全く違うソフトウェアであることが理解できます。


 なお、注文を受けたコック(シェル)は、注文(コマンド)を解釈して材料、調味料を用意しますが、料理そのものは、グリルなどの厨房設備(カーネル)が担います。
 ここで登場するのがシステムコールという仕組みです。システムコールについては、今、勉強の途中です。
 人に説明できる程度に、自分の中でこなれてきたら、また、記事にまとめることができるかもしれません。




それでは、また次の記事で
goosyun


《2024年4月21日追記》
 パソコン用OSとして、Linuxはどれぐらいの人が使っているのか、
Linuxのシェアについて、記事を書きました。
  こちらをご覧ください。
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「Ubuntu」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事