對於複雜的Linux驅動以及HAL等程序庫,須要使用各類方法對其進行調試。例如,設置斷點、逐步跟蹤代碼、輸出調試信息等。函數
Printk函數的用法與printf函數相似,只不過printk函數運行在內核空間,printf函數運行在用戶空間。也就是說,像Linux驅動這樣的Linux內核程序只能使用printk函數輸出調試信息。Printk函數在printk.c文件中實現。工具
雖然使用printk函數能夠很方便的將消息寫入日誌文件或控制檯。但大量使用printk函數頻繁操做日誌文件或控制檯設備文件(/dev/console)會嚴重影響Linux驅動性能(所以寫磁盤的速度遠沒有讀寫內存的速度快),所以,這就要求Linux驅動只在開發階段使用printk函數輸出信息,在正式發佈Linux驅動時將可能影響性能的printk函數去掉。性能
在Linux文件系統中,/proc常常被用來做爲內核空間與用戶空間進行數據交互的工具。/proc文件系統的行爲方式與設備文件系統(/dev)相似。/proc是虛擬文件系統,也就是說,/proc並非真正的文件系統,而是內存映射。全部讀寫/proc操做都是對內存的讀寫。因此讀寫/proc文件系統的速度遠比讀寫/dev文件系統的速度快。所以,/proc文件系統也能夠做爲Linux驅動與用戶空間程序交互的工具。調試