Este livro oferece uma boa introdução ao Linux ttys e fgrep
ing por register_console
no drivers/char/*.c
do kernel do Linux mostra o que está acontecendo com o console Linux. Existem muitas implementações do console do sistema disponíveis no kernel do Linux. Uma instalação específica do Linux pode decidir qual dispositivo específico deve servir como o console. Pode ser especificado passando parâmetros do kernel na inicialização, ou possivelmente outras técnicas existem. A implementação tty é a padrão e, possivelmente, de padrão, mas outros também existem, como serial-console .
/dev/console
tem seu próprio major dedicado: menor. Por quê? Porque o próprio kernel é um grande usuário do dispositivo do kernel quando relata mensagens de emergência lá. Há struct tty_driver *console_driver
objeto do kernel apontando para rotinas necessárias. Então, por que não fornecer uma interface também para programas de usuários? Não faço ideia se /dev/console
, para a configuração padrão, é realmente equivalente a /dev/tty0
ou se há algumas diferenças.
Agora, sobre o controle de tarefas em tty0
. Como seria possível se tty0
realmente não emulasse um terminal, mas apenas apontasse para um tty
que está atualmente ativo ? O kernel do Linux impede que os processos sejam anexados a tty0
, um “dispositivo” que colide intermitentemente com tty1
,… tty7
e assim por diante. Como tty0
não pode controlar processos, não há controle de trabalho possível (a propósito, para qual finalidade legítima pode tty0
alimentar um shell?). Mas isso não tem nada a ver com a possibilidade de controlar trabalhos que são executados em consoles virtuais específicos . Outros tty
s numerados são, de fato, terminais legítimos para qualquer finalidade de um aplicativo de console.