/ dev / console aponta para tty0?

3

Estou tentando entender o dispositivo / dev / console, mas há algumas coisas que não estou claro:

  1. Qual é o objetivo deste dispositivo? Pelo que eu posso reunir é apenas um lugar para o kernel exibir mensagens, está certo?

  2. O terminal virtual atribuído como o console não pode ter controle de tarefa. Por quê? É só porque o kernel está tentando impedi-lo de executar qualquer outra coisa no lugar que ele precisa para imprimir mensagens do sistema?

  3. Para mim, / dev / console parece apontar para tty0, o console virtual atual. Achei isso com base em alguns teste a> e parece ser uma configuração bastante comum. No entanto, para mim isso indica que tty0 deve ter o controle de trabalho desativado, o que significaria que todos os consoles devem ter o controle de trabalho desativado, o que seria ruim. Está me dando dor de cabeça só de pensar nisso. Além disso, se tty0 é o console, então não deveria estar recebendo mensagens do kernel no terminal atual em vez de apenas em tty1?

por zallik 07.05.2013 / 06:39

3 respostas

1

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 é a padrão e, possivelmente, de padrão, mas outros também existem, como .

/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.

    
por 14.09.2015 / 18:12
2

Este é um remanescente histórico dos dias em que o console de operações era um teletipo real que imprimia (fazia marcas indeléveis) em um pedaço de papel (um material fino e flexível feito de fibra de madeira, geralmente branco). Com o tempo, eles foram direcionados para as instalações syslog e dmesg, já que poucos sistemas agora têm um console real, mas a informação ainda é necessária.

Eu não sei de onde você tirou a ideia de que / dev / console era tty0; na minha caixa de Linux 3, / dev / console, tty e ttyprintk todos têm um número principal de dispositivo de 5 enquanto tty0 e todo o resto dos pseudo-ttys são o principal dispositivo 4. Isso significa que eles usam drivers diferentes (ou radicalmente diferentes) modos do mesmo driver).

    
por 08.05.2013 / 06:00
-2

O / dev / console é uma abstração da sessão de terminal local - console associado ao monitor conectado à máquina.

Sua finalidade, principalmente em servidores, é fornecer acesso remoto, mesmo se o sistema estiver sendo executado no modo de usuário único. Esse console é (na maioria dos casos) vinculado ao dispositivo eth0 quando a rede eth0 é desativada.

    
por 07.05.2013 / 09:55