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

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

Acabei de ler que os módulos do kernel Linux não podem ser impressos na tela, ou seja, printfnão funcionam. Isso tem algo a ver com o tratamento de interrupções ou por que isso acontece?

Tenho memória de estudar alguns C e Assembly que você não poderia usar printfe isso acontecia porque as interrupções estavam desativadas.

Responder1

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

informação relacionada