Ctrl- Qist in der Tat die Antwort. Ich dachte, ich würde eine kleine Geschichte davon einwerfen, die zu lang ist, um in die Ränder der richtigen Antwort von ak2 zu passen .
In den dunklen Zeiten war ein Terminal ein großes Gerät, das über eine lange Leitung oder über Telefonleitungen mit Modems mit einem entfernten Gerät verbunden war (ursprünglich ein anderes Terminal, da die Bedienung von Teletypen so viel einfacher zu erlernen war als eine Telegrafentaste). Zu der Zeit, als Unix entwickelt wurde, war der ASCII-Code bereits gut etabliert (obwohl der konkurrierende EBCDIC-Code von IBM immer noch ein Muss war).
Die frühesten Terminals hielten eine gedruckte Aufzeichnung jedes empfangenen Zeichens. Solange die Zeichen nicht schneller ankamen, als der Druckkopf sie schreiben konnte, zumindest. Sobald jedoch CRT-basierte Terminals möglich waren, trat das Problem auf, dass nur etwa 25 Zeilen auf die CRT passten und 25 Zeilen mit 80 Zeichen genügend RAM darstellten, so dass niemand ernsthaft darüber nachdachte, mehr RAM für Zeichen bereitzustellen, die von oben gescrollt worden waren der Bildschirm.
Daher war eine Konvention erforderlich, um zu signalisieren, dass das Sendeende pausieren sollte, damit der Leser aufholt.
Der 7-Bit-ASCII-Code enthält 33 Codepunkte für Steuerzeichen (0 bis 31 und 127). Einige von denen waren wirklich gut Zwecke hergestellt, wie zum Beispiel NUL
(leere Papier Bandführung zum Einfädeln, Lücken und Spleißstellen), DEL
( „durchgestrichen“ Zeichen auf Papierband durch Stanzen all sieben Löcher angegeben), BEL
(ding!) CR
, LF
Und TAB
. Aber vier wurden explizit definiert das Endgerät selbst (für die Steuerung DC1
zu DC4
aka Ctrl + Q, Strg + R, Strg + S und Strg + T).
Ich vermute, dass ein Ingenieur dachte, dass (wie es in der Mnemonik heißt) "S" für "Stop" und "Q" für "Continue" nicht allzu schlimm sind und DC3
"Bitte aufhören zu senden" und DC1
"OK " bedeuten , sende jetzt weiter ".
Sogar diese Konvention war bereits etabliert, als Unix bei Bell Labs das Nest verließ, um in die Welt hinauszugehen.
Die Konvention ist als Software-Flusskontrolle bekannt und in realen seriellen Geräten äußerst verbreitet. Die korrekte Implementierung ist nicht einfach, da die Verwendung eines dieser Zeichen für einen anderen Zweck im Kommunikationskanal verhindert wird und das Stoppsignal vor ausstehenden empfangenen Zeichen behandelt werden muss, um zu vermeiden, dass mehr als das empfangende Ende gesendet wird Griff.
Wenn es praktikabel ist, wird die Verwendung zusätzlicher Signale außerhalb des Bandes aus dem seriellen Datenstrom zur Flusssteuerung stark bevorzugt. Bei direkt verdrahteten Verbindungen, die zusätzliche Signaldrähte bieten, wird ein Hardware-Handshake verwendet, der diese Zeichen für andere Zwecke freigibt.
Natürlich verwendet das heutige Terminalfenster keinen physischen seriellen Anschluss, verfügt über Bildlaufleisten und benötigt überhaupt kein Software-Handshaking. Aber die Konvention bleibt bestehen.
Ich erinnere mich an die Behauptung, dass Richard Stallman in den ersten Versionen von Emacs Beschwerden über die Zuordnung von Strg + S zur inkrementellen Suche erhalten hat und dass er jedem Benutzer, der auf eine 7-Bit-Verbindung angewiesen war, eher unzufrieden war.
vim
und Strg-S gedrückt, um meine Änderungen zu speichern. Uh-ohXD