Originalmente, "tty" tinha duas definições: o hardware (agora o emulador) e o driver (interface através de / dev / pty * ou / dev / tty *).
O hardware / emulador foi / é responsável por:
- Tomando um fluxo de dados e apresentando-o; isso incluía interpretar seqüências de controle como "mover o cursor para esquerda", "cursor piscando", "limpar a tela", embora essas sequências de controle fossem freqüentemente diferentes entre os fabricantes.
- Enviando códigos de tecla para chaves digitadas pelo usuário; a maioria destes eram caracteres ASCII padrão, mas alguns terminais enviavam códigos de tecla de propriedade para chaves padrão mesmo.
O driver 'tty' era responsável por:
- Gerenciando o armazenamento em buffer, no modo raw ou canonical; por exemplo, armazenando em buffer uma linha de caracteres até que Enter seja pressionado.
- Gerenciando o fluxo de controle; por exemplo. ser capaz de parar / continuar com Cntl -s / Cntl-q .
- Traduzindo códigos de códigos de propriedade para ASCII padrão, onde aplicável.
- Interceptando certos caracteres de controle (como Cntl-c e Backspace ) e processando-os adequadamente (envie SIGINT em um Cntl-c ou sinal um EOF em Cntl-d .
- Exibição canônica de caracteres, por exemplo, se
echo
estiver desativado, então não envie feedback (caractere digitado) de volta ao terminal.
Os bancos de dados terminfo e termcap gerenciavam quais caracteres de controle de terminal devem ser enviados para uma operação (como 'clear-screen'). Essas seqüências de controle foram / não são interpretadas pelo driver, mas pelo hardware / emulador.