剖析Linux內核代碼入門方法
目前流行學習Linux內核代碼熱。怎樣才能學好Linux內核代碼,你是不是學習時,看到很多代碼,很多目錄,就不知道從何入手了。沒關系,這里將介紹學習Linux內核代碼的解決方法,在這里拿出來和大家分享一下。
先到kernel.org上先把Linux內核的代碼下載下來,先把下面能看懂的文檔看了一下。
然后,按照內核文檔里面的要求,執行下make gconfig,配置了下內核,了解了在內核代碼中有許多宏定義,這些宏定義就是一個個的開關,打開/關閉一個個特定的功能。通過這個,可以對數不清的宏有初步的了解。
接下來,可以生成下內核代碼的API文檔,如果沒有這個文檔,那么對著茫茫的代碼,很多就搞不清楚是干什么的了。先在內核代碼的根目錄下執行make htmldocs,生成網頁形式的幫助文檔。當然,也可以生成別的方式的文檔,例如man手冊,pdf文檔等。我最初想生成pdf的文檔,但是執行報錯了,沒有去跟蹤原因,所以我這里建議你生成html的文檔。
根據這些文檔,可以了解下每個API的概況。下面要進入真實的看代碼了。如果你用的是windows平臺的話,可以使用soure insight來做為代碼的查看工具。我用的是Linux系統,使用kscope來查看Linux的內核代碼,先安裝kscope(我的博客里有ubuntu怎么安裝kscope的文章),然后,創建一個內核代碼的工程。
因為Linux內核代碼支持多種硬件架構,所以再添加代碼時,請把只加一種硬件架構的代碼,和硬件架構相關的代碼分別在arch目錄下和include目錄下有。我選擇看x86的代碼,所以把其它硬件架構的代碼都刪除掉了,這樣在kscope里面查找函數時,就比較精確了。
這樣你就輕松掌握了Linux內核代碼reading入門。
【編輯推薦】