學(xué)習(xí)Unix源代碼的體會(huì)
我們學(xué)習(xí)了Unix系統(tǒng)的很多姿勢(shì),今天,我們來(lái)學(xué)習(xí)一下關(guān)于Unix源代碼的知識(shí)。源程序是指未編譯的按照一定的程序設(shè)計(jì)語(yǔ)言規(guī)范書(shū)寫(xiě)的文本文件。源代碼(也稱源程序),是指一系列人類可讀的計(jì)算機(jī)語(yǔ)言指令。
在現(xiàn)代程序語(yǔ)言中,源代碼可以是以書(shū)籍或者磁帶的形式出現(xiàn),但最為常用的格式是文本文件,這種典型格式的目的是為了編譯出計(jì)算機(jī)程序。計(jì)算機(jī)源代碼的最終目的是將人類可讀的文本翻譯成為計(jì)算機(jī)可以執(zhí)行的二進(jìn)制指令,這種過(guò)程叫做編譯,通過(guò)編譯器完成。
Unix源代碼主要功用有如下2種作用:
生成目標(biāo)代碼,即計(jì)算機(jī)可以識(shí)別的代碼。
對(duì)軟件進(jìn)行說(shuō)明,即對(duì)軟件的編寫(xiě)進(jìn)行說(shuō)明。為數(shù)不少的初學(xué)者,甚至少數(shù)有經(jīng)驗(yàn)的程序員都忽視軟件說(shuō)明的編寫(xiě),因?yàn)檫@部分雖然不會(huì)在生成的程序中直接顯示,也不參與編譯。但是說(shuō)明對(duì)軟件的學(xué)習(xí)、分享、維護(hù)和軟件復(fù)用都有巨大的好處。因此,書(shū)寫(xiě)軟件說(shuō)明在業(yè)界被認(rèn)為是能創(chuàng)造優(yōu)秀程序的良好習(xí)慣,一些公司也硬性規(guī)定必須書(shū)寫(xiě)。
需要指出的是,Unix源代碼的修改不能改變已經(jīng)生成的目標(biāo)代碼。如果需要目標(biāo)代碼做出相應(yīng)的修改,必須重新編譯。
1. 工欲善其事,必先利其器
我開(kāi)始的時(shí)候是用find xargs 和 egrep 配合來(lái)搜索關(guān)鍵字, 看代碼的效率很低.后來(lái)裝了ctags,方便多了.最初沒(méi)有裝ctags, 是因?yàn)橛X(jué)得可能裝起來(lái)費(fèi)勁, 其實(shí)還是很容易裝的,也就是那么幾步, google一下就搞定了.
2. 要及時(shí)實(shí)踐.
雖然開(kāi)始是讀代碼的方式比較笨,不過(guò)這種干勁非常有用,只有動(dòng)手實(shí)踐了,才有可能取得進(jìn)步.否則的話,我可能還是停留在閱讀書(shū)本上代碼的階段.
3. Unix下的工具看起來(lái)不如Windows的工具異用.其實(shí)不然,可能是門檻搞一些.多數(shù)人象我一樣因此不敢去碰它.入門以后,會(huì)發(fā)現(xiàn)其實(shí)Unix下的工具真是短小精悍. 就拿VIM + Ctags 閱讀Unix源代碼來(lái)說(shuō),覺(jué)得性價(jià)比高.符合80/20原則.
這就是我最近對(duì)Unix源代碼的一些經(jīng)驗(yàn)之談。
【編輯推薦】















 
 
 
 
 
 
 