Nada é armazenado em /dev/pts
. Este sistema de arquivos vive exclusivamente na memória.
As entradas em /dev/pts
são pseudo-terminais (pty para breve). Os kernels Unix têm uma noção genérica de terminais . Um terminal fornece uma maneira de os aplicativos exibirem a saída e receberem entrada por meio de um dispositivo terminal . Um processo pode ter um terminal de controle - para um texto modo de aplicação, é assim que interage com o usuário.
Os terminais podem ser terminais de hardware (“tty”, abreviação de “teletipo”) ou pseudo-terminais (“pty”). Os terminais de hardware são conectados em alguma interface, como uma porta serial ( ttyS0
,…) ou USB ( ttyUSB0
,…) ou em uma tela de PC e teclado ( tty1
,…). Pseudo-terminais são fornecidos por um emulador de terminal, que é uma aplicação. Alguns tipos de pseudo-terminais são:
- Aplicativos GUI, como xterm, gnome-terminal, konsole,… transformam eventos de teclado e mouse em entrada de texto e exibem a saída graficamente em alguma fonte.
- Aplicativos multiplexadores, como entrada de tela e relé tmux e saída de e para outro terminal, para separar aplicativos de modo de texto do terminal real.
- Aplicativos de shell remotos, como sshd, telnetd, rlogind,… retransmitem entrada e saída entre um terminal remoto no cliente e um arquivo no servidor.
Se um programa abrir um terminal para gravação, a saída desse programa aparecerá no terminal. É comum ter vários programas emitindo para um terminal ao mesmo tempo, embora isso possa ser confuso às vezes, pois não há como saber qual parte da saída veio de qual programa. Os processos em segundo plano que tentam gravar em seu terminal de controle podem ser suspensos automaticamente por um sinal SIGTTOU .
Se um programa abrir um terminal para leitura, a entrada do usuário é passada para esse programa. Se vários programas estiverem lendo do mesmo terminal, cada caractere será roteado independentemente para um dos programas; isso não é recomendado. Normalmente, há apenas um único programa lendo ativamente do terminal em um determinado momento; programas que tentam ler de seu terminal de controle enquanto não estão no primeiro plano são < a href="http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap11.html#tag_11_01_04"> automaticamente suspenso por um sinal SIGTTIN .
Para experimentar, execute tty
em um terminal para ver o que é o dispositivo terminal. Digamos que seja /dev/pts/42
. Em um shell em outro terminal, execute echo hello >/dev/pts/42
: a string hello
será exibida no outro terminal. Agora execute cat /dev/pts/42
e digite o outro terminal. Para matar o comando cat
(o que tornará o outro terminal difícil de usar), pressione Ctrl + C .
Escrever em outro terminal é ocasionalmente útil para exibir uma notificação; por exemplo, o comando write
faz isso. Ler de outro terminal não é feito normalmente.