O que é um terminal?
Um terminal consiste em uma tela e um teclado que se usa para se comunicar remotamente com um computador (o host). Um usa quase como se fosse um computador pessoal, mas o terminal é remoto de seu computador host com o qual ele se comunica (do outro lado da sala ou mesmo do outro lado do mundo).
Pergunta 1
-
/dev/tty
significa o terminal de controle (se houver) para o Processo atual. Para descobrir quais tty's estão ligados aos quais processos usam o comandops -a
no prompt do shell (comando linha). Veja a colunatty
. Para o processo de shell em que você está,/dev/tty
é o terminal que você está usando agora. - No Linux, o monitor do PC é chamado de console e tem vários dispositivos
arquivos especiais associados a ele:
tty0
,tty1
,tty2
, etc. Quando você logar você está emtty1
. Para ir paratty2
pressione Alt - F2 .tty1
,tty2
, etc. são virtuais terminais (às vezes chamados de "consoles virtuais"). Você pode entrar para diferentes terminais virtuais e, assim, ter algumas sessões diferentes com o computador ligado ao mesmo tempo. Você alterna entre eles usando a tecla Alt - F? onde "?" é o número do terminal virtual desejado. O console também é conhecido como/dev/tty0
e mensagens do sistema podem ir para esse dispositivo e exibir seu console. Somente o sistema ou o usuário root pode gravar/dev/tty0
para o qual/dev/console
às vezes é vinculado. -
ttyprintk
é um pseudo driver TTY, que permite aos usuários fazerprintk
mensagens, via saída parattyprintk
device. -
/dev/tty/S[[:digit:]]
representa as portas seriais. Cada terminal está conectado a uma porta serial no computador host (geralmente PC). As portas têm nomes / números. Os primeiros são:ttyS0
,ttyS1
,ttyS2
, etc. Estes são representados por arquivos especiais encontrados no diretório/dev
(device).ttyS0
corresponde a COM1 no DOS ou Windows.ttyS1
é COM2, etc.
A Questão 3 e a Questão 4 estão relacionadas. Gilles tem uma explicação maravilhosa de aqui . Alguns dos trechos de sua resposta são,
Pseudo-terminals are provided by a terminal emulator, which is an application. Some types of pseudo-terminals are:
- GUI applications such as xterm, gnome-terminal, konsole, … transform keyboard and mouse events into text input and display output graphically in some font.
- Multiplexer applications such as screen and tmux relay input and output from and to another terminal, to decouple text mode applications from the actual terminal.
- Remote shell applications such as sshd, telnetd, rlogind, … relay input and output between a remote terminal on the client and a pty on the server.
Além disso, na página wiki do pseudo-terminal , vejo as informações abaixo.
The master device file, which generally has a name of the form /dev/pty[p-za-e][0-9a-f], is the endpoint for communication with the terminal emulator. With this [p-za-e] naming scheme, there can be at most 256 tty pairs. Also, finding the first free pty master can be racy unless a locking scheme is adopted. For that reason, recent BSD operating systems, such as FreeBSD, implement Unix98 PTYs.[4]
BSD PTYs have been rendered obsolete by Unix98 ptys whose naming system does not limit the number of pseudo-terminals and access to which occurs without danger of race conditions. /dev/ptmx is the "pseudo-terminal master multiplexer". Opening it returns a file descriptor of a master node and causes an associated slave node /dev/pts/N to be created
Suspeito que /dev/pty
não esteja disponível, e é por isso que você vê /dev/pts
.
Referências
Linux: Diferença entre / dev / console, / dev / tty e / dev / tty0