Um tty é um dispositivo terminal nativo, o backend é emulado por hardware ou por kernel.
Um pty (dispositivo pseudo-terminal) é um dispositivo terminal que é emulado por outro programa (exemplo: xterm
, screen
ou ssh
são programas desse tipo). Um pts é a parte escrava de um pty .
(Mais informações podem ser encontradas em man pty
.)
Resumo breve :
Um pty é criado por um processo através de posix_openpt()
(que normalmente abre o dispositivo especial /dev/ptmx
) e é constituído por um par de dispositivos de caracteres bidirecionais:
-
A parte principal, que é o descritor de arquivo obtido por esse processo por meio dessa chamada, é usada para emular um terminal. Após alguma inicialização, a segunda parte pode ser desbloqueada com
unlockpt()
e o mestre é usado para receber ou enviar caracteres para esta segunda parte (escravo). -
A parte escrava, que é ancorada no sistema de arquivos como
/dev/pts/x
(o nome real pode ser obtido pelo mestre através deptsname()
) se comporta como um dispositivo terminal nativo (/dev/ttyx
). Na maioria dos casos, é iniciado um shell que o utiliza como terminal de controle.