Note 1. 建立一個學習環境

很早就有閱讀Linux源代碼的想法了,只是一直沒有任何行動。這其中也有幾個原因吧。

其一就是當初學校裏開設的那門linux的選修課沒選上,於是就錯過了一個強迫自己接觸linux的機會。那時候也想過自學,只是那時候爲了裝個linux就搞了半天,而且有時候常常到最後才用了沒幾次,就出問題了,而且都不知道怎麼解決,於是,就放棄了。

其二就是讀代碼的環境。當初並不知道(也許那時候還沒有?)SourceInsight這種工具的存在。而且想想那時候接觸的代碼量也不大,於是,就覺得沒有頭緒。後來知道了這個東東,就開始有閱讀Linux源代碼的衝動了。不過這個衝動被扼殺的原因在於Windows下的文件名不區分大小寫,於是乎,下載下來的Linux源代碼包,解壓開就老是報有重複的文件,作爲一個完美主義者,這個感覺很不好,總覺得會錯過些什麼。

現在終於下決心好好學習、天天向上了。(好好學習生活?天天向上躺着?呵呵)

由於學習習慣的問題,有時候還是喜歡記一些東西下來,所以就在這個Blog上開了這塊分類,這篇東西麼,就算一篇序吧,呵呵。

在開始學習之前,有一個好的環境是很重要的。就像前面說的,SourceInsight雖好,但只能在windows下用,而windows的致命弱點就是不區分大小寫文件名。所以可以得出結論,讀Linux源代碼麼,最好還是在Linux下面。

文件名的問題是解決了,但是似乎沒有稱手的兵器了。於是,就開始了尋找兵器的過程。

想當年孫大聖爲求得一把稱手的兵器,也是花費了一番功夫的。呵呵,扯遠了。言歸正傳,還是說說我尋找兵器的過程吧。

最初在Google上以"linux sourceinsight"作爲關鍵詞搜索,結果看到了幾篇帖子說CScope + VIM或者Emaces是一個不錯的類似的環境。於是就想先嚐試這個。可是發現配置VIM和Emaces比較麻煩,關鍵也是自己沒有Linux下的經驗,沒時間去研究這個了,想快點找到稱手的兵器,所以就放棄了這條路。

接下去要先說說Debian了。一直聽說Debian是一個很好的Linux的發行版本,而且是非商業的。真的用了才知道它的好用。特別是那下面的apt-get命令,安裝軟件真是方便,大多數常用的軟件都有debian的發行版本了。所以,這種全自動安裝過程真是爽。至於爲什麼要提到它,就是因爲我在那下面裝cscope的時候,看到了apt的提示,說建議安裝cbrowser。於是先在Google上搜了一把,發現這個東西貌似不錯的樣子,屬於cscope的前端圖形界面。所以,第二個兵器就是這個了。

CBrowser這個東東呢,的確是好用的。不過我最終還是沒有選擇它,主要是不習慣。這東東雖說是cscope的前端圖形界面,但是建立交叉索引的數據庫還是需要cscope命令行的方式。另外,這個cbrowser用起來不習慣,因爲它沒有文件選擇界面。用過sourceinsight的都知道,那裏面有一個可以選擇文件的界面,直接瀏覽點擊就行。可cbrowser下似乎得記得文件名的大概,然後通過搜索才能得到,這點比較麻煩……

放棄了上面兩套方案後,又開始了尋尋覓覓的過程。結果就找到了一個叫Source Navigator的東東。

這東西是Red Hat做的,名字和介紹看上去都不錯,於是就拿來用。結果發現了這東西的一個致命弱點,就是它的速度太慢,而且生成的數據庫文件太大了。比如我對linux 2.4.18的源代碼建一個Source Navigator的project,結果那些數據庫文件佔掉了硬盤將近2G的容量…… 所以,只能放棄。

在接下去就是傳說中的lxr了。全名叫“Linux Cross-Reference”。看論壇上的人說似乎很好的樣子,仔細搜索了一下,發現是一個基於web的東東。就是利用apache的web服務,再加上它的那些perl腳本,並且對源代碼目錄樹做一個數據庫,然後就以web方式可以訪問了。只是,這東東配置起來有點麻煩,我按照說明配置了一個,可是有些索引功能還是沒配好,而且這東西是基於web方式的,沒有做語法着色,所以看起來也不是很舒服。

後來,終於找到了一個似乎比較稱手的東東了——KScope。看名字就知道,這東東與CScope肯定有一腿。網上搜了一下,果然,又是一個CScope的前端圖形界面,這東西是For KDE的,所以就叫KScope了。這東西沒有debian的安裝包,所以得自己下源代碼然後configure->make->make install了。這個過程中雖然不大爽,常常遇到問題,不過最終都解決了,這東西跑起來了。

用了一下,覺得是不錯,至少很像SourceInsight了,這點對於我這個已經習慣於windows下生活的人已經算是很不錯了。

關於Debian的安裝(包括其中常用軟件的安裝)以及KScope的安裝,下次再寫吧,今天還有好多別的事情要做呢,忙忙碌碌阿。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章