⑴ 內核啟動printk的信息每行開頭的方括弧中是時間嗎為什麼會列印出時間在用戶態怎麼做到
列印出的是系統啟動到列印時刻的系統的tick值,printk實現的時候內部附加上的。
硬體給內核提供一個系統定時器用以計算和管理時間,內核通過編程預設系統定時器的頻率,即節拍率(tick rate),每一個周期稱作一個tick(節拍)。linux內核從2.5版內核開始把頻率從100調高到1000(當然帶來了很多優點,也有一些缺點).
jiffies是內核中的一個全局變數,用來記錄自系統啟動一來產生的節拍數。譬如,如果計算系統運行了多長時間,可以用 jiffies/tick rate 來計算。jiffies定義在文件<linux/jiffies.h>中:
extern unsigned long volatile jiffies;
用戶態列印的話只需引用相關頭文件然後
printf("[%d]",jiffies)
即可
⑵ 怎樣屏蔽linux內核printk( ) 列印信息
在grub中配置一下log級別,默認好像是6來著,你配置到0或者1試試看。
幹嘛要這樣?
⑶ Linux內核中prink函數和C中常用的printf函數的區別是什麼
printk() 和 printf() 幾乎沒有什麼兩樣, 唯一的差別是 printk() 會把輸出的結果,送到內核的環緩沖區 (ring buffer)裡面。這個緩沖區是系統所有信息集中的地方,就像開機時所看到的信息,都可以在這個環緩沖區找到。 任何時候, 我們都可以用 dmseg 命令查看環緩沖區的內容, 或是直接檢驗 /proc/kmsg 這個文件。