Qual é o sentido do Ctrl-S?

120
Ctrl + S pára toda a saída para o terminal que pode ser reiniciada com Ctrl + Q . / p>

Mas, por que Ctrl + S existe em primeiro lugar? Qual problema estava tentando ser resolvido colocando essa sequência de controle no lugar?

    
por Jeff King 18.06.2014 / 16:28

4 respostas

139

Muito antes de haver computadores, havia teleprinters (telegrafistas, telegraphs a.k.a.). Pense neles como a mesma tecnologia que um telégrafo, mas com algum tipo de teclado e algum tipo de impressora ligada a eles.

Como os teletipos já existiam quando os computadores eram construídos pela primeira vez, e como os computadores na época eram do tamanho de um quarto, os teletipos tornaram-se uma interface de usuário conveniente para os primeiros computadores - digite um comando, aperte o botão Enviar e espere um pouco. , e a saída do comando é impressa em uma folha de papel à sua frente.

O controle de fluxo de software se originou nessa época - se a impressora não pudesse imprimir tão rápido quanto o teletipo recebia dados por exemplo, o teletipo poderia enviar um comando de controle de fluxo XOFF ( Ctrl + S ) para o lado remoto dizendo "Pare de transmitir por enquanto", e então poderia enviar o XON comando de controle de fluxo ( Ctrl + Q ) para o lado remoto dizendo "Eu alcancei, por favor, continue".

E esse uso sobrevive no Unix porque os emuladores de terminal modernos estão emulando terminais físicos (como o vt100 ) que eles mesmos eram ( de certa forma) emulando teletipos.

    
por 18.06.2014 / 16:42
25

É um caractere de controle do tempo dos terminais VT100 e similares. A capacidade de rolagem limitada (se houver) nesses terminais para começar com o CTRL-S permitia congelar a saída para ver o que está atualmente na tela sem que ela seja cancelada.

A maioria das coisas que você vê nos terminais modernos foi implementada para emular os sistemas de terminal mais antigos.

    
por 18.06.2014 / 16:33
21

BTW, se você está listando uma saída longa em sua tela, é provável que você não leia necessariamente tão rápido quanto o computador que produz a saída. Usar CTRL-S / CTRL-Q em um gato (ou cauda ativa) é MUITO útil para parar e retomar a saída.

    
por 18.06.2014 / 19:37
17

Em teletipos antigos com um leitor de fita de papel, o recebimento de um controle-Q ligaria o leitor de fita de papel e começaria a enviar caracteres da fita como se tivessem sido digitados no teclado. Control-S desligaria o leitor de fita de papel. Se considerarmos que os teletipos tinham a intenção original de não imprimir dados de computadores, mas sim de outros teletipos, deveria ficar bem claro como o "desligamento do leitor de fita de papel" poderia ser interpretado como análogo a "solicitar outro extremo para parar de transmitir". / p>

A propósito, o controle-R ativaria o perfurador da fita de papel, de modo que cada caractere recebido pelo teletipo (ou, se o eco local fosse habilitado, digitado no teclado) também fosse perfurado na fita de papel; control-T desligaria o perfurador da fita de papel. Diferentemente das operações associadas ao controle-S e ao controle-Q, no entanto, essas operações parecem não ter um equivalente moderno.

Além disso, os nomes originais para controle-Q / R / S / T eram DC1 / DC2 / DC3 / DC4 ("Controle de Dispositivo 1", etc.) Embora eu não esteja certo da história, tal nomeação sugeriria que originalmente eles pretendiam desencadear algum tipo de ação não especificada, mas a coisa mais comum que as pessoas faziam com o DC1 e DC3 era controlar o leitor de fita de papel.

    
por 19.06.2014 / 01:21