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