もともとあなたはただの端末を持っていました-最初は実際にはテレタイプライター(電気タイプライターに似ていますが、紙のロール)(したがって/ dev / tty-TeleTYpers)でしたが、後でスクリーン+キーボードコンボ-キーコードを送信しましたコンピューターに、コンピューターは端末に手紙を書いたコマンドを送り返しました(つまり、端末はローカルエコーがなかったため、コンピューターは端末にユーザーが入力した内容を書き込むように指示する必要がありました)-これが理由の1つですなぜこれほど多くの重要なUnixコマンドがそれほど短いのか。ほとんどの端末はシリアル回線で接続されていましたが、(少なくとも)1つはコンピューター(多くの場合同じ部屋)に直接接続されていました-これがコンソールでした。「コンソール」で作業することを信頼された少数のユーザーのみが信頼されました(これは、多くの場合、シングルユーザーモードで使用可能な唯一の「端末」でした)。
後にxterm
、画面とグラフィカルスクリーンカード、キーボード、マウス、および単純なプロセッサを備えたグラフィカル端末(いわゆる「xterminals」、-programと混同しないでください)もありました。Xサーバーを実行するだけです。彼らは自分自身で計算を行わなかったため、Xクライアントは接続先のコンピューターで実行されました。一部にはハードディスクがありましたが、ネットワーク経由で起動することもできました。それらは、PCが非常に安価で強力になる前の1990年代初期に人気がありました。
「端末エミュレータ」- xterm
またはkonsole
- などのプログラムで開く「端末ウィンドウ」-このようなダム端末の機能を模倣しようとします。PuTTY
(Windows)などのプログラムも端末をエミュレートします。
「コンソール」(キーボード+スクリーン)と「コンピューター」が単一のユニットであるPCでは、代わりに「仮想端末」(LinuxではAlt + F1からAlt + F6のキー)が得られましたが、これらも古いスタイルの端末を模倣します。もちろん、Unix / Linuxが1人のユーザーがよく使用するデスクトップオペレーティングシステムになりつつある今、ユーザーは以前はシリアル回線で接続された端末を使用していた「コンソール」でほとんどの作業を行います。
もちろん、プログラムを起動するのはシェルです。そして、fork-systemcall(C言語)を使用して、環境設定で自身のコピーを作成し、exec-systemcallを使用して、このコピーを実行したいコマンドに変換します。コマンドが完了するまで、シェルは(コマンドがバックグラウンドで実行されない限り)中断します。コマンドは、シェルからstdin、stdout、およびstderrの設定を継承するため、コマンドは端末の画面に書き込み、端末のキーボードから入力を受け取ります。