TTY: TeleTypewriter

Conheça a história, funcionamento e curiosidades do teletypewriter, mais conhecido como terminal TTY de sistemas Linux, BSD e outros.

| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.

O TTY, mais conhecido como teletypewriter é um terminal do tipo tela cheia que permite controlar o sistema de maneira direta. São sutilmente diferentes dos terminais abertos na interface gráfica dos sistemas baseados em UNIX e/ou puramente UNIX.

Hoje vou apresentar sua história, funcionamento, comandos e curiosidades destes terminais.

História

Nem sempre tivemos monitores de tubo sofisticados exibindo as mensagens na tela!
Antes desses monitores surgirem, existiam os teletypewriters:

Maquina Teletypewriter

O termo teletypewriter surgiu das máquinas que permitiam comunicação direta entre pessoas/máquinas utilizando papel como tela. Cada comando digitado surgia no papel imediatamente num sistema de impressão mecânico.

Veja uma demonstração:

Esse tipo de equipamento surgiu pouco depois do surgimento dos primeiros computadores, e bem antes das primeiras telas surgirem e se popularizarem no mercado no final da década de 1970.

Mas sua adoção se faz até hoje como uma alternativa a telefones para surdo-mudos que precisam se comunicar: cada tecla do emissor gera um tom que o cliente recebe e traduz em letras, como um chat do WhatsApp®, porém a escrita das mensagens é em tempo real, sem comando Enviar.

Ambiente Shell

O tempo passou, os monitores surgiram e se popularizaram e mesmo com a criação de ambientes gráficos, qualquer sistema baseado, ou puramente UNIX, possui um shell: A tela preta para digitar comandos.

De acordo com as convenções UNIX, os programas desenvolvidos para qualquer sistema desse tipo podem e devem ser operados via terminal shell sem precisar necessariamente de um ambiente gráfico.

Essa é a filosofia UNIX:
Escreva um programa que faça as coisas apenas uma vez, e as faça bem feito.
Escreve programas que trabalhem juntos.
Escreva programas que lidem com comandos via shell, pois essa é a interface universal.

A sintaxe do shell permite interação direta com o hardware/software com consumo mínimo de recursos, motivo pelo qual é a interface padrão de qualquer sistema baseado ou puramente UNIX desde meados de 1970. Claro, a interface shell surgiu antes de qualquer monitor; mas até hoje é a mais eficiente no uso e gerenciamento de um computador, mesmo com toda a tecnologia de um ambiente gráfico.

Interação com o Shell

Existem diversos tipos de shell num sistema baseado em UNIX: bash, zsh, tcsh, sh etc…

Cada um possui recursos próprios e ferramentas extras, mas todos tem o objetivo comum de permitir a comunicação humano/máquina ou mesmo humano/humano.

Outro fato em comum é a própria interação com o Shell. Os sistemas UNIX permitem que você interaja com o Shell de algumas maneiras distintas. Todos os terminais de um sistema atual representam uma versão emulada dos antigos terminais físicos de 1980, portanto sempre são denominados “terminais ou consoles virtuais”.

Tipos de Terminais

O primeiro e mais conhecido é o pty: pseudo tty ou pseudo teletype
Ele surge quando o shell é aberto num ambiente gráfico. Normalmente os usuários veem esse como pts/x onde X é um número, definido pela ordem em que diversos usuários logaram na máquina. Se o sistema pertence á 1 pessoa, este será o pts/1.

O segundo, é o tty: Ele é um terminal virtual que surge no comando CTRL + ALT + F1 na maioria dos sistemas baseados ou puramente UNIX. São conhecidos por consoles virtuais, são em tela cheia e exibem o sistema na tela. Sua numeração começa em 1, pois o tty0 é quem faz a comunicação direta entre sistema e placa de vídeo e não aparece para o usuário. Por exemplo, tty1, tty2, etc.

O terceiro é menos popular, o ttyS: Ele é usado para comunicar o sistema via portas seriais RS-232. Estão sendo pouco a pouco extintas em prol das portas USB. São as famosas COM1 do Windows.
Quando abrem, são denominadas ttyS1, ttyS2, etc.

Você pode checar o valor do terminal atual com o comando:

$ tty

Curiosidades

Reservas de Terminal

Normalmente você pode alternar entre os diversos TTY usando os comandos CTRL + ALT + Fn.
Ou seja, F1 até F6 para os TTY’s de 1 a 6, enquanto o 7 e o 8 são reservados para o servidor gráfico, como o XOrg ou Wayland.

Se o sistema for um servidor CentOS sem interface gráfica, o comando muda um pouco.
Nesse caso você poderá alternar de terminal apenas digital ALT + Fn, entre 1 e 6.

Acessos Simultâneos

Curiosamente, sob “o mesmo teclado, mouse e monitor” você pode logar até 7 ou 8 usuários dependendo da distribuição Linux. – Um em cada TTY, de 1 a 6 somente terminal e de 7 a 8 com interface gráfica. 

Porém a conexão remota via SSH permite que mais usuários usem o computador remotamente, apesar de estarem na mesma rede LAN. Com isso a quantidade limite de conexões aumenta! Quanto? O SSH suporta até 4096 usuários simultâneos logados e usando o sistema.

Qual sistema? Qualquer distro Linux, qualquer sistema BSD, qualquer UNIX, seja ele doméstico, empresarial ou industrial. É um padrão de todos os sistemas baseados ou puramente UNIX.

Alternando entre TTY sem teclas de atalhos

Você pode alternar de terminal apenas digitando um comando!
Se você abrir o terminal na sua interface de usuário, com CTRL + ALT + T na maioria das distribuições linux, você estará naquele momento no TTY 7 (servidor gráfico), pseudo terminal 1. Digite:

$ sudo chvt 2

E você vai alternar para o pseudo terminal 2: TTY2.

Para voltar?

$ sudo chvt 7

Tudo é Arquivo

Conforme já explicado nesta publicação, os TTY’s são retratados como arquivos dentro da pasta /dev.
Todos os TTY’s disponíveis estarão visíveis lá com o comando:

$ ls /dev

Conclusão

Por mais que hoje tenhamos interfaces gráficas incríveis e cheias de recursos, em diversos aspectos os pseudo terminais, shell’s serão mais práticos pelos comandos que podem ser agregados e com pouco consumo de recursos.

Continuam muito usados desde 1970 e isso não aparenta que vai mudar tão cedo, uma vez que compreende numa das filosofias principais dos UNIX’ses: Os programas devem lidar com comandos via shell, pois essa é a interface universal.

#UrbanCompassPony

Referencias Bibliográficas:
SejaLivre.org
LispCast
WiseGeek
MOTA FILHO, João Eriberto. Descobrindo o Linux. 3a Edição. São Paulo, NOVATEC, 2012.

Deixe um comentário