В ядре printf
не работает, потому что он не реализован! Вместо этого вы используете printk
(или early_printk
в очень раннем коде, до настройки консоли). printk
написан очень тщательно, поэтому его можно безопасно вызывать из любого места и при любых обстоятельствах (в частности, не нужно выделять память). Он реализует почти тот же API, что и printf
, с добавлением уровня журнала для указания важности печатаемого сообщения и спецификаторов формата, которые полезны в ядре .