共計 2623 個字符,預計需要花費 7 分鐘才能閱讀完成。
Linux 內核開發工具具體有哪些,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
進行嵌入式 Linux 產品開發,往往需要對內核進行裁剪和定制,以滿足嵌入式產品的功能和性能需求。本文介紹幾種閱讀 Linux 內核源碼的工具和方法。
這里所說的“Linux 內核開發”僅僅是指嵌入式 Linux 產品開發中內核和驅動相關開發工作,與 Linux 所領導的內核開發團隊的內核開發有很大不同。
俗話說“工欲善其事,必先利其器”,面對幾百兆的 Linux 內核代碼,要閱讀、查看或者搜索其中的代碼,大部分初次接觸到 Linux 內核代碼的開發人員,都有無從下手的感覺。下面推薦幾個源碼閱讀和索引工具,能為后續內核開發提供一些便利。
1、Source Insight
Source Insight 是 Windows 平臺下一款流行度極高的源碼閱讀和編輯工具。不少 Linux 開發人員還是習慣于在 Windows 下進行源碼編輯,甚至查看和編輯 Linux 內核源碼,依然在 Source Insight 中完成。
說明:Source Insight 是一款版權軟件,需要自行解決版權問題。
安裝 Source Insight 軟件后,新建一個工程,取名并指定數據存放位置,如圖 1.1 所示。
圖 1.1 新建工程
圖 1.2 工程設置
點擊 OK 按鈕,進入工程設置界面,如圖 1.2 所示。
然后添加源碼。瀏覽選中 Linux 內核源碼文件夾后,點擊“Add Tree”按鈕,將內核源碼樹的全部文件添加到工程中,如圖 1.3 所示。
圖 1.3 添加內核源碼
添加完成,即可在 Source Insight 中進行源碼閱讀和編輯了,如圖 1.4 所示。
圖 1.4 在 Source Insight 中閱讀源碼
2、Eclipse
Eclipse 是一個跨平臺 IDE,既能運行于 Windows 平臺,也能在 Linux 下運行。不少習慣于圖形界面操作的開發人員,在 Linux 下則習慣于用 Eclipse 來查看和編輯 Linux 源碼。
如果僅僅是在 Eclipse 中查看 Linux 內核源碼,則可以不必事先安裝交叉編譯器,否則則須事先安裝好交叉編譯器。
創建內核源碼工程。點擊 File agrave;New agrave;Project,開始創建工程,在工程創建界面選擇創建 C 工程,如圖 1.5 所示。
點擊 Next,在 C Project 界面的 Project name 欄中填寫工程名稱,去掉“Use default locaTIon”的勾,點擊 Browse 將 LocaTIon 設置為 Linux 內核源碼目錄,如圖 1.6 所示。如果不在 Eclipse 中編譯內核,則使用 Linux GCC 即可,否則請使用安裝好的 Cross GCC。
圖 1.6 導入 Linux 內核源碼
然后點擊 Finish,完成 Linux 內核源碼導入,在 Eclipse 中即可進行代碼閱讀和編輯了,如圖 1.7 所示。
圖 1.7 在 Eclipse 中瀏覽內核源碼
在 Eclipse 中進行源碼跟蹤,只需選擇函數、變量或者宏定義后按 F3 即可。更多的操作可在 Navigate 中找到。
3、vim+ctags+cscope
Vi/Vim 是一個文本編輯器,在 Vim 中能高效的實現代碼編輯。但 Vim 的功能不僅僅是一個文本編輯器,借助 ctags 和 cscope 的配合,Vim 能實現堪比圖形 IDE 環境的源碼編輯和閱讀功能,在某種程度上甚至比圖形 IDE 更方便。
Vi/Vim 的安裝不再介紹了。如果不是通過遠程登錄在遠程服務器上工作,而是在本地桌面系統操作,還可以用 gvim 啟動 Vi 編輯器。
l Taglist
Taglist 是 Vim 的一個源碼瀏覽插件,可從 http://www.vim.org 網站獲得。下載到壓縮包后,在本地解壓,然后將解壓得到目錄中的 plugin 目錄復制到~/.vim 目錄。如果用戶主目錄下沒有.vim 目錄,則建立一個這樣的目錄即可。
l Ctags
Ctags 是一個用于產生 tags 文件的軟件,可以下載源碼進行編譯安裝,在 Ubuntu 下,可通過 apt-get 進行安裝:
$ sudo apt-get install exuberant-ctags
l 源碼閱讀和跟蹤
進入準備查看的源碼所在目錄,首先生成 tags 文件:
$ ctags -R
執行時間長短取決于源碼數量的多少,執行完畢,在當前目錄下可看到一個 tags 文件。源碼越多,執行時間越長,產生的 tags 文件也越大。
注意:如果修改了源碼,代碼行號發生了變化,需要重新生成 tags 文件。
(1)查看函數等定義。用 Vi/Vim 打開一個 C 文件。若想知道某個函數、變量、結構或者宏定義在什么地方定義,先將光標移動到函數 (變量、結構或者宏定義) 上,然后按 CTRL+]即可。查看后,按 CTRL+ o 可回到原來所在位置。
(2)查看文件函數列表。打開 C 文件后,在 Vi/Vim 的命令狀態下輸入:TlistToggle(Vi/Vim 的命令輸入支持補全),在 Vi/Vim 左邊就會出現函數列表側欄,如圖 1.8 所示。按 CTRL+ww(2 次 w),可在列表和代碼查看區間切換。
圖 1.8 Vi/Vim 的函數列表側欄
如果在本地桌面,用 Gvim 打開 C 文件,使用起來比較接近 IDE 集成環境。用鼠標雙擊函數即可跳轉到函數定義的地方,CTRL+ 鼠標右鍵即可回退到原來所在位置。更多實用特性,還需要在實際操作中體驗。
4、LXR
LXR 是 Linux Cross Referencer 的縮寫,是一個比較流行的 Linux 源碼查看工具,當然也不僅僅局限于查看 Linux 源碼。LXR 的下載地址為:http://lxr.sourceforge.net,參考該網站的安裝說明,很容易在本機搭建一個本地 LXR 用于源碼查看。
如果不想搭建本地 LXR,可以直接瀏覽已經搭好的 LXR 網站,推薦兩個網站:一個是開源中國網站提供的 Linux 源碼在線閱讀 http://lxr.oss.org.cn,另一個是 http://lxr.free-electrons.com 網站,前者速度較快,但是提供的 Linux 內核版本較少,后者則提供的版本較多。網站提供了源碼閱讀、關鍵字搜索和自由文本搜索功能。兩者的網頁快照分別如圖 1.9 和圖 1.10 所示。
圖 1.9 lxr.oss.org.cn 網頁快照
圖 1.10 lxr.free-electrons.com 網頁快照
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。