Como o Linux usa / dev / tty e / dev / tty0

8

Eu posso ver a diferença entre / dev / tty e / dev / tty0 testando o método fornecido a partir deste pergunta . Mas eu realmente me pergunto sobre o uso prático desses dispositivos (como situações em que eles serão usados).

    
por Ron Vince 14.09.2015 / 09:24

2 respostas

15

/dev/tty é o controle tty do atual processo , para qualquer processo que realmente abra este arquivo especial. Não é necessariamente um dispositivo de console virtual ( /dev/tty n ), e pode ser um , uma porta serial, etc. Se o controle tty não for um console virtual, o processo não terá que interagir com os dispositivos do console, mesmo que seu pseudotty esteja realmente implementado no sistema console. Por exemplo. para um shell em um emulador de terminal sob o Xserver de execução local, os programas formam uma cadeia de interações como:

Unix shell
Co /dev/pts/2 (≡ /dev/tty para seus processos)
driver do kernel pty
Co /dev/ptmx
emulador de terminal
⇕ Protocolo X Window
Servidor X
/dev/tty7 ( /dev/tty para o servidor)
console do sistema
z x c ↿⇂ [_̈░░]
usuário

O uso de /dev/tty pelos programas da userland inclui:

  • Escreva algo no terminal de controle, ignorando todos os redirecionamentos e canais;
  • Faça um ioctl () - veja tty_ioctl (4);
  • Por exemplo, desanexe do terminal (TIOCNOTTY).

/dev/tty0 é o atualmente ativo (isto é, visível no monitor) console virtual do sistema operacional . Este arquivo especial improvável é usado significativamente pelo software do sistema, mas /dev/console é virtualmente um “alias ”Para tty0 e /dev/console tem muito uso por daemons do syslog e, às vezes, pelo próprio kernel.

Experimente mostrar a diferença: execute um root shell em tty3 ( Ctrl + Alt + F3 ) ou em um emulador de terminal. Agora

# sleep 2; echo test >/dev/tty

em seguida, rapidamente Ctrl + Alt + F2 , aguarde dois segundos e Ctrl + Alt + o que quer que seja. Onde você vê a saída?
E agora o mesmo teste para /dev/tty0 .

    
por 14.09.2015 / 16:53
2

/ dev / tty é o controle de qualquer processo. Esta pode ser sua concha.

Se o seu processo não tiver um controle tty, / dev / tty não está disponível, isto e. é verdade para daemons.

Se o seu processo tiver um tty de controle, então / dev / tty é um alias de driver para o driver real que seu processo está usando para stdin, stdout ou stderr.

Veja man -s7d tty para mais informações. Observe que a seção em que este manual está em pode diferir entre sistemas operacionais diferentes e não deve ser confundida com a página do manual na seção 1. Portanto, verifique, e. man -k tty .

    
por 14.09.2015 / 10:14