Por que os módulos do kernel não podem ser impressos na tela?

0

Acabei de ler que os módulos do kernel do Linux não podem ser impressos na tela, ou seja, printf não funcionará. Tem algo a ver com o manuseio de interrupções ou por que isso acontece?

Eu tenho uma memória estudando C e assembly que você não pode usar printf com e foi porque as interrupções estavam desligadas.

    
por Niklas Rosencrantz 12.04.2017 / 18:26

1 resposta

5

No kernel, printf não funciona porque não está implementado! Você usa printk em vez disso (ou early_printk no código inicial, antes do console está configurado). printk é codificado com muito cuidado, por isso é seguro ligar de qualquer lugar, em qualquer circunstância (em particular, não precisa alocar memória). Ele implementa praticamente a mesma API que printf , com a adição de um nível de log para indicar a importância da mensagem que está sendo impressa e os especificadores de formato que são utilizável no kernel .

    
por 12.04.2017 / 18:36