No Linux, como o servidor X estabelece um relacionamento com um tty específico (como tty7) para que o servidor X possa receber entrada e desenhar na tela somente quando esse tty estiver em primeiro plano? Como isso é aplicado?
(Publiquei anteriormente esta pergunta no formulário mostrado abaixo no Stack Overflow, onde ela foi fechada.)
Tenho algumas perguntas sobre o que significa quando se diz "o servidor X roda em/dev/tty7". Fiz algumas suposições sobre como isso funciona e espero que alguém possa me dizer se as afirmações a seguir são verdadeiras ou falsas.
- /dev/tty7 geralmente é o terminal de controle do Xorg.
- Embora tty7 seja o terminal de controle do Xorg, ele não "controla" o Xorg de nenhuma maneira significativa.
- O Xorg recebe entradas de teclado e mouse diretamente pesquisando /dev/input/... ou algo parecido, e não lendo de /dev/tty7. No entanto, /dev/tty7 também recebe pressionamentos de tecla, o que você pode ver (por exemplo) executando "xxd -p /dev/tty7" em um emulador de terminal.
- O Xorg desenha na tela usando alguma interface específica de hardware, como algum arquivo de dispositivo criado pelo driver ou uma região de memória mapeada de E/S, e não gravando em /dev/tty7.
- Quando o Xorg define o modo de vídeo, o driver tty para automaticamente de desenhar na tela. É por isso que, quando você pressiona uma tecla ou faz eco de uma string em /dev/tty7, você não a vê aparecer na tela.
- O Xorg recebe entradas de teclado e mouse via /dev/events mesmo quando tty7 está em segundo plano, mas ignora a menos que tty7 esteja em primeiro plano.
- Tudo o que o Xorg desenha na tela só fica visível no monitor quando o tty7 está em primeiro plano.
- Quando o Xorg inicializa o vídeo (definindo o modo de vídeo e assim por diante), é porque o tty7 está em primeiro plano que as configurações têm efeito no tty7 e em nenhum outro terminal.