web-dev-qa-db-ja.com

Ctrl-Sのポイントは何ですか?

Ctrl+S で再起動できる端末へのすべての出力を停止します Ctrl+Q

しかし、なぜ Ctrl+S そもそも存在する?その制御シーケンスを配置することで解決しようとしていた問題は何ですか?

146
Jeff King

コンピュータが登場するずっと前から、 テレプリンター (テレタイプライター、テレタイプとも呼ばれる)がありました。それらは電信とほぼ同じテクノロジーであると考えてください。ただし、あるタイプのキーボードとあるタイプのプリンターが接続されています。

テレタイプは、コンピューターが最初に構築されたときにすでに存在しており、当時のコンピューターは部屋サイズだったため、最初のコンピューターへの便利なユーザーインターフェイスになりました。コマンドを入力し、送信ボタンを押し、しばらく待って、コマンドの出力は、目の前の紙に印刷されます。

ソフトウェアフロー制御 この時代に始まった–たとえば、テレタイプがデータを受信して​​いたのと同じ速さでプリンターが印刷できなかった場合、テレタイプはXOFFフロー制御コマンド(Ctrl+S)「今は送信を停止して」と言ってリモート側に送信し、XONフロー制御コマンド(Ctrl+Q)リモート側に「追いつきました。続行してください」と言います。

そして、最近のターミナルエミュレーターはテレタイプを(ある意味で)エミュレートしていた物理ターミナル( vt1 など)をエミュレートしているため、この使用法はUnixでも存続します。

161
godlygeek

VT100端末などからの制御文字です。これらの端末では、CTRL-Sで始まるスクロール機能(ある場合)が制限されていたため、出力をフリーズして、現在画面に表示されているものを書き留めることなく表示できました。

現代の端末で見られるほとんどすべてのものは、それらの古い端末システムをエミュレートするために配置されました。

27
Livinglifeback

ところで、画面に長い出力を一覧表示している場合、出力を出力するコンピューターほど速く読み取れない可能性があります。猫(またはアクティブテール)でCTRL-S/CTRL-Qを使用すると、出力の停止と再開に非常に役立ちます。

25
mdpc

紙テープリーダーを備えた古代のテレタイプでは、control-Qを受信すると、紙テープリーダーがオンになり、キーボードで入力したかのようにテープから文字を送信し始めます。 Control-Sは紙テープリーダーをオフにします。テレタイプがもともとコンピューターからのデータを印刷するためではなく、他のテレタイプからの印刷を意図したものであると考える場合、「紙テープリーダーをオフにする」が「送信を停止するように他の端に要求する」に類似しているとどのように解釈できるかは明らかです。

ちなみに、control-Rは紙テープパンチをオンにし、テレタイプ(またはローカルエコーが有効になっている場合はキーボードで入力)が受け取ったすべての文字も紙テープにパンチされます。 control-Tは、紙テープのパンチをオフにします。ただし、control-Sおよびcontrol-Qに関連する操作とは異なり、これらの操作には同等の操作がないようです。

また、control-Q/R/S/Tの元の名前はDC1/DC2/DC3/DC4(「デバイス制御1」など)でしたが、履歴はわかりませんが、そのような名前は、元々は不特定の種類のアクションをトリガーすることを目的としていましたが、DC1およびDC3で最も一般的に行われたことは、紙テープリーダーを制御することでした。

17
supercat