linux 内核编号含义_如何阅读linux内核代码?
閱讀代碼從來(lái)就是不可行的方法,有篇文章詳細(xì)講了這個(gè)事,很多人都覺(jué)得應(yīng)該多讀代碼, 讀好的代碼,比如Donald Knuth。 但事實(shí)上, 只要簡(jiǎn)單讓你描述一下最近讀了什么代碼,絕大多數(shù)人都說(shuō)不上。文章在此Code is not literature
忍不住再說(shuō)幾句這篇文章,寫(xiě)得極好,它的一個(gè)核心觀點(diǎn):代碼不是寫(xiě)給人看的,雖然無(wú)數(shù)人這么認(rèn)為,也這么主張。事實(shí)仍然是,代碼不是給人看的,而是交給機(jī)器運(yùn)行的。當(dāng)我們?cè)诶斫馑舜a時(shí),并不能像閱讀小說(shuō)一樣去閱讀代碼,而是像自然學(xué)家研究一塊化石一樣去調(diào)查它,解密它。有時(shí)往往需要把對(duì)方的代碼親手實(shí)現(xiàn)一遍,才真正理解。
基于以上的觀點(diǎn),所以我認(rèn)為“耐住寂寞,閱讀代碼”不是一個(gè)可行的辦法。大多數(shù)情況下,半途而廢, 或是你通過(guò)閱讀, 記住好多“內(nèi)核代碼”,一個(gè)月之后,全都忘記。
我認(rèn)為“閱讀代碼”不是你的目的,學(xué)習(xí)才是你的目的,至于你要學(xué)習(xí)什么?從你的問(wèn)題里,我無(wú)法得知,也可能你并不是很清楚。猜測(cè)一下可能是結(jié)合Linux內(nèi)核代碼學(xué)習(xí)操作系統(tǒng)原理, 又或者是學(xué)習(xí)C語(yǔ)言?目的不同,方法自然千差萬(wàn)別,所以希望能夠修改問(wèn)題。明確目的之后,再來(lái)談方法。
--------------------------更新的分割線(xiàn)--------------------------------------------
如果是“通過(guò)內(nèi)核代碼的閱讀,來(lái)理解這樣一個(gè)操作系統(tǒng)各個(gè)部分是如何運(yùn)作的”, 我想首先,你至少需要了解操作系統(tǒng)的基本概念,比如進(jìn)程,中斷,文件系統(tǒng)等。如果你上過(guò)類(lèi)似的課程或者看過(guò)操作系統(tǒng)原理相關(guān)的書(shū),應(yīng)該不是太大問(wèn)題。
然后,可以看Linux相關(guān)的原理介紹,比如《Understanding Linux Kernel 3》,但Linux內(nèi)核變動(dòng)很快,連表示進(jìn)程的task_struct 這么核心數(shù)據(jù)結(jié)構(gòu)也幾乎每個(gè)小版本都變。所以,如果你任意挑選一個(gè)內(nèi)核版本,比如你下載的3.11.6,書(shū)上內(nèi)容可能與你手上的代碼對(duì)應(yīng)不上。建議下載一個(gè)與書(shū)匹配的版本,來(lái)結(jié)合書(shū)看代碼。書(shū)不厚,但內(nèi)容不少,也挺枯燥。如果能堅(jiān)持把全書(shū)瀏覽一遍,應(yīng)該說(shuō)干得不錯(cuò),但不提倡,因?yàn)榧幢闳绱艘仓皇歉粞ドΠW。
最好玩的部分當(dāng)然是動(dòng)手修改內(nèi)核了。首先要學(xué)會(huì)編譯內(nèi)核,調(diào)試內(nèi)核。 于是就可以找自己感興趣的內(nèi)容動(dòng)手修改了。比如可以寫(xiě)個(gè)系統(tǒng)調(diào)用, 或者編個(gè)rootkit, 甚至對(duì)調(diào)度算法感興趣,都可以嘗試修改。你說(shuō)怎么編譯內(nèi)核,調(diào)試內(nèi)核?內(nèi)容不少, 工具就可以說(shuō)一大堆,這里說(shuō)不下了,自行g(shù)oogle吧。
最后祝你學(xué)得開(kāi)心,玩得開(kāi)心。
總結(jié)
以上是生活随笔為你收集整理的linux 内核编号含义_如何阅读linux内核代码?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Win10新设置的PIN码不能登录怎么办
- 下一篇: linux安装手动划分目录,Linux目