搭建lxr查看linux核心原始碼

來源:互聯網
上載者:User

  linxu下閱讀核心原始碼,通常都使用vim + ctags 或者 lxr進行,我個人比較傾向於lxr,因為lxr提供了良好的介面,函數和定義都使用超連結標記出來,可以很方便的跟蹤到函數內部去查看詳細或者查看資料結構的定義等。網上有現成的網站提供了這樣的服務,如果你只是偶爾看看核心原始碼的話,其實直接登入某些提供這樣服務的網站就差不多了,比如LXR,這個網站提供的體驗相當不錯,我以前就是經常在這個網站上查看原始碼的,畢竟搭建這個環境的過程中,要建立檔案檢索的過程還是比較漫長的。

  利用lxr查看核心原始碼,其實就是搭建一個本地的網站,在ubuntu上,我們可以快速的完成這些工作。先大體的瞭解下需要的工具,apache2,glimpse,lxr。下面就正式開始搭建我們自己的lxr.

一、安裝apach2:

sudo apt-get install apache2

二、安裝glimpse:

先去網站下載最新的原始碼glimpse-latest.tar.gz,然後解壓到目前的目錄下

tar -xvgf glimpse-latest.tar.gz

再接著進入解壓後的目錄下,比如我的是:

cd glimpse-4.18.6/

在編譯之前,首先看看你的機器上是否已經安裝了flex,因為編譯glimpse的時候需要這個軟體。如果沒有的話,那麼進行安裝:

sudo apt-get install flex

接著進行編譯:

./config

make

sudo make install

執行完上面的步驟後,將產生的glimpse glimpseindex 拷貝到/bin目錄下:

cd /bin

sudo cp glimpse glimpseindex /bin

三、安裝lxr

sudo apt-get install lxr

建立/usr/share/lxr/http/.htaccess檔案

在裡面增加如下內容:

<Files ~ (search|source|ident|diff|find)$>
SetHandler cgi-script
</Files>

四、複製linux原始碼

去linux官方網站下載最近的核心代碼(當然,以前的也可以)

複製linux原始碼到/usr/share/lxr/source

sudo cp /home/huangwei/Download/linux-2.6.33.2.tar.bz2 /usr/share/lxr/source

解壓:

tar xvjf linux-2.6.33.2.tar.bz2

重新命名解壓後的檔案夾

sudo mv linux-2.6.33.2 2.6.33

 

五、產生資料檔案

cd /usr/share/lxr/source

產生關鍵字交叉索引資料庫

sudo genxref 2.6.33/

接下來要等待一段比較長的時間,因為它要掃描檔案。

接下來,產生freetext交叉索引資料庫:

glimpseindex -H . 2.6.33/

更改許可權,使任何人都可以讀取該檔案

sudo chmod +r .glimpse*

六、修改lxr設定檔

原文:

sourceroot: /usr/share/lxr/source/$v/linux/

dbdir: /usr/share/lxr/source/dbdir

改成 :

sourceroot: /usr/share/lxr/source/2.6.33 #剛剛產生的fileidx 和xref 的地址

dbdir: /usr/share/lxr/source#產生的.glimpse_filenames這些檔案的位置

七、閱讀原始碼

重新啟動apache2

sudo /etc/init.d/apache2 restart

開啟瀏覽器,輸入http://localhost/lxr/http/source就能瀏覽本地的核心代碼了

閱讀的時候可以看到頁面頂部有

~ [ source navigation ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

source navigation是使用者查看頁面的介面

identifier search是尋找某個變數名、結構名、函數名的介面

freetext search是尋找任何字串的介面

file search尋找某個檔案

 

根據Nickelzhang的建議,貼上我自己裝完後的:

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.