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 .