為什麼內核模組無法列印到螢幕上?

為什麼內核模組無法列印到螢幕上?

我剛剛讀到 Linux 核心模組無法列印到螢幕,即printf無法工作。它與中斷處理有關嗎?

我有一段記憶,研究過一些 C 語言和組合語言,但你無法使用它們printf,那是因為中斷被關閉了。

答案1

在核心中,printf不起作用,因為它沒有實現!你用printk相反(或early_printk在非常早期的程式碼中,在控制台設定之前)。printk編碼非常仔細,因此可以在任何情況下安全地從任何地方調用(特別是,它不需要分配記憶體)。它實現了與 幾乎相同的 API printf,並添加了日誌等級來指示正在列印的訊息的重要性,以及格式說明符在核心中有用

相關內容