《独辟蹊径品内核:Linux内核源代码导读(china-pub首发)》的前言
我覺(jué)得作者講的學(xué)習(xí)方法很好值得看看。
下面是本書(shū)作者所寫(xiě):
幾乎每一個(gè)操作系統(tǒng)內(nèi)核的學(xué)習(xí)者在初學(xué)階段都會(huì)感覺(jué)到難以入門(mén)。這是由于內(nèi)核涉及到知識(shí)面非常廣泛,需要學(xué)習(xí)者從根本上掌握大量的知識(shí),這包括:程序編譯,鏈接,裝載的細(xì)節(jié),操作系統(tǒng)理論,計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)與算法,深厚的C/匯編語(yǔ)言編程功底。如此相對(duì)較高的門(mén)檻常常令很大一部分初學(xué)者望而卻步。那么是不是一定要先學(xué)好以上的各門(mén)知識(shí)后才能學(xué)習(xí)內(nèi)核呢?事實(shí)上大部分學(xué)習(xí)者在學(xué)習(xí)以上各門(mén)知識(shí)都會(huì)遇到同樣的問(wèn)題,因?yàn)橹R(shí)是一個(gè)網(wǎng)狀結(jié)構(gòu)。所以重要的不是先去學(xué)會(huì)什么知識(shí),而是學(xué)會(huì)如何學(xué)習(xí),學(xué)會(huì)在自己掌握的知識(shí)體系上提出問(wèn)題,學(xué)會(huì)思考,進(jìn)而堅(jiān)持不懈的解決心中的疑問(wèn)。筆者從學(xué)完C/C++ 語(yǔ)言開(kāi)始,由于C/C++ 的示例程序都是在命令行下的,于是常常想如何才能編寫(xiě)出視窗程序,學(xué)習(xí)了MFC,但是同樣想不通諸如WM_CHAR,WM_LBUTTONDOWN 的消息從何而來(lái),帶著MFC 中諸多疑問(wèn),筆者開(kāi)始學(xué)習(xí)Windows SDK 程序開(kāi)發(fā),在這個(gè)學(xué)習(xí)過(guò)程中感覺(jué)對(duì)MFC 的認(rèn)識(shí)更加深入了,但同時(shí)又有新的問(wèn)題想不通,于是進(jìn)而學(xué)習(xí)Windows DDK,之后開(kāi)始學(xué)習(xí)操作系統(tǒng)內(nèi)核。在這個(gè)過(guò)程中,筆者也遇到過(guò)數(shù)不盡的疑問(wèn),但是都是需要的時(shí)候再補(bǔ)充相關(guān)知識(shí)。因此初學(xué)者要明白,學(xué)習(xí)并不需要等到“萬(wàn)事具備”了才可以開(kāi)始。需要的是保持好奇心,養(yǎng)成思考的習(xí)慣,樹(shù)立解決問(wèn)題的決心。很多讀者渴望尋找好的入門(mén)教材,也常常有人問(wèn)看什么書(shū)才能進(jìn)步的快,但是當(dāng)他們看了別人推薦的書(shū)卻沒(méi)有取得同樣的收獲,這是為什么呢?筆者認(rèn)為,讀書(shū)有以下幾種境界:
1. 面對(duì)書(shū)上講到的某個(gè)知識(shí)點(diǎn),不能接合自己掌握的知識(shí)提出疑問(wèn),僅僅知識(shí)死記書(shū)本上的東西。這種狀態(tài)就算學(xué)到最高境界,也僅僅只是能把書(shū)本上的知識(shí)點(diǎn)完好的記下來(lái)在腦海中形成孤立的知識(shí)節(jié)點(diǎn)。.
2. 面對(duì)書(shū)本上講到的某個(gè)知識(shí)點(diǎn),能接合自己掌握的知識(shí)提出疑問(wèn),但是大多數(shù)時(shí)候沒(méi)有探索精神,僅僅局限于到其他書(shū)籍或者請(qǐng)教別人來(lái)排除心中的疑問(wèn)。腦海中的知識(shí)形成了簡(jiǎn)單網(wǎng)狀結(jié)構(gòu),但由于探索能力長(zhǎng)期得不到鍛煉,綜合自己的知識(shí)去分析和解決問(wèn)題的能力十分有限。
3. 面對(duì)書(shū)上講到的某個(gè)知識(shí)點(diǎn),能接合自己掌握的知識(shí)提出疑問(wèn),并且能根據(jù)問(wèn)題補(bǔ)充相關(guān)必要的知識(shí),不斷綜合分析各知識(shí)點(diǎn)的關(guān)系,提出各種假設(shè)和驗(yàn)證排除的方法并親自驗(yàn)證,解決不了問(wèn)題決不罷休。如能經(jīng)過(guò)長(zhǎng)期鍛煉,其腦海中的知識(shí)點(diǎn)形成復(fù)雜的網(wǎng)狀結(jié)構(gòu),綜合分析能力必將加強(qiáng)。
4. 根據(jù)自己掌握的知識(shí),提出全新的問(wèn)題,并始終堅(jiān)持找到答案為止。這種境界需要淵博的知識(shí)作為基礎(chǔ)。
因此,不要還沒(méi)學(xué)內(nèi)核就被嚇倒,說(shuō)了這么多看似和內(nèi)核無(wú)關(guān)的東西,就是要從先排除讀者的心理?yè)?dān)憂(yōu),樹(shù)立正確的態(tài)度,重要的不是學(xué)會(huì)什么,而是學(xué)會(huì)學(xué)習(xí)。確定自己處于哪一種學(xué)習(xí)境界,然后通過(guò)學(xué)習(xí)某項(xiàng)具體的知識(shí)把自己提升到更高的境界。在現(xiàn)實(shí)生活中我們不難發(fā)現(xiàn),能力強(qiáng)的學(xué)什么都又快又好。其根本原因在于他們處于更高的學(xué)習(xí)境界,并形成了良性循環(huán)!
有很多的人都渴望學(xué)習(xí)操作系統(tǒng)內(nèi)核,但是內(nèi)核涉及到的知識(shí)非常廣泛,因此很多人半途而廢,許多人往往抱怨沒(méi)有好的書(shū)籍,教材。實(shí)際上,對(duì)于同一本書(shū)籍,不同的讀者收獲也是不同的,這取決于他們的態(tài)度和學(xué)習(xí)方法。筆者建議,在讀書(shū)的時(shí)候,一定要以自己心中的疑問(wèn)作為主線(xiàn),而不要沒(méi)有任何疑問(wèn)就死記書(shū)本上的知識(shí)。
如何使用本書(shū)..
筆者認(rèn)為對(duì)于任何知識(shí)的學(xué)習(xí),首先是以自我為中心,任何書(shū)籍資料都是用來(lái)解答讀者心中的疑問(wèn)的,因此在你閱讀一本書(shū)時(shí),首先要明確自己的疑問(wèn)是什么?這可以是一個(gè)非常梗概的問(wèn)題,例如:“Linux 內(nèi)核是什么?”;也可以是一個(gè)非常細(xì)節(jié)的問(wèn)題,例如:“按下鍵盤(pán)上的A,到屏幕上顯示出字符A 的內(nèi)部原理”。當(dāng)你有了來(lái)自?xún)?nèi)心深處經(jīng)過(guò)獨(dú)立思考的疑問(wèn)后,閱讀對(duì)你來(lái)說(shuō)是一種享受,一種樂(lè)趣。來(lái)自?xún)?nèi)心的疑問(wèn),經(jīng)過(guò)不斷的綜合分析,縝密的推理,堅(jiān)持不懈的查閱和求索,之后撥開(kāi)迷霧見(jiàn)天日喜悅只有經(jīng)過(guò)才能體會(huì)。雖然本書(shū)是一本很厚的書(shū),但是這不是畏懼的理由,也不要因?yàn)樗?#xff0c;就給自己下一個(gè)決心,制定一個(gè)閱讀計(jì)劃,幾個(gè)月要讀完本書(shū)。學(xué)習(xí)是主動(dòng)探求的過(guò)程,而不是被動(dòng)接受,在這個(gè)過(guò)程中,有太多的東西,不是誰(shuí)可以計(jì)劃出來(lái)的。例如:在筆者學(xué)習(xí)內(nèi)核之初,看到大量的傳言,讀完《深入理解linux內(nèi)核》,讀完《Linux 內(nèi)核情景分析》... 就可以成為“高手”了。于是筆者常常捧著厚厚的書(shū),尋思著自己什么時(shí)候可以讀完,然而有時(shí)好幾天也前進(jìn)不了幾頁(yè),免不了感慨自己今生將與“高手”無(wú)緣,但是又心有不甘,于是囫圇吞棗的“快速”前進(jìn),但是越前進(jìn),就越感覺(jué)到艱難。“欲速則不達(dá)”這個(gè)道理人人都懂,但是在切身體會(huì)之前,人人都會(huì)犯這個(gè)錯(cuò)誤。在經(jīng)歷了很長(zhǎng)一段曲折和郁悶之后,筆者擺脫了“書(shū)”的束縛,完全以自己的疑問(wèn)為中心,例如在讀到中斷處理時(shí),由于知識(shí)不夠全面,于是丟開(kāi)內(nèi)核的書(shū)籍,閱讀了大量的計(jì)算機(jī)體系結(jié)構(gòu)方面的資料,同樣計(jì)算機(jī)體系結(jié)構(gòu)的書(shū)籍也很厚,但是我也沒(méi)有想過(guò)要把它們讀完,這時(shí)只撿中斷相關(guān)的讀,之后再來(lái)讀內(nèi)核的書(shū)籍,發(fā)現(xiàn)自己原理懂了,但是具體到理解代碼時(shí),就迷糊了,于是有補(bǔ)充GCC 內(nèi)嵌匯編,C 代碼編譯到匯編代碼的相關(guān)知識(shí),反復(fù)試驗(yàn)等等。這個(gè)過(guò)程很慢,但是積累到最后,筆者發(fā)現(xiàn)自己讀的非常快,甚至可以不讀了,因?yàn)楹芏嗟胤?#xff0c;只要讀到前面的,就領(lǐng)悟了作者后面想要說(shuō)什么了。
至今,我仍然沒(méi)有完成當(dāng)初為了成為“高手”而制定下的“宏偉”目標(biāo),因?yàn)槲覜](méi)有完整的讀完《深入理解linux內(nèi)核》、《Linux 內(nèi)核情景分析》或《Linux 內(nèi)核完全剖析》等等這類(lèi)傳說(shuō)中“驚世駭俗”之作中的任何一本。但是筆者卻從這些著作中受益菲淺。
現(xiàn)在,你應(yīng)該知道要如何使用本書(shū)了吧?那就是不要拘泥如任何教條。雖然本書(shū)經(jīng)筆者從初學(xué)到現(xiàn)在的心得體會(huì)以及相關(guān)筆記和資料整理而成,初學(xué)者的大量疑問(wèn)都能在本書(shū)本書(shū)中找到答案。但是每個(gè)人都是獨(dú)一無(wú)二的,筆者希望任何一個(gè)讀者能綜合利用本書(shū)和其它相關(guān)資料尋找你自己的答案。多問(wèn)一點(diǎn)為什么,多一點(diǎn)假設(shè),多一點(diǎn)思考,多一點(diǎn)推理,多一點(diǎn)試驗(yàn),多一點(diǎn)堅(jiān)持。最后,你會(huì)感慨原來(lái)傳說(shuō)中的任何“秘籍”都是“浪得虛名”,因?yàn)樽x完它,你不一定能成為“高手”,而“高手”卻不需要讀完它。能否成為“高手”的決定性因素取決于你的學(xué)習(xí)方法和學(xué)習(xí)態(tài)度,而好的“秘籍”僅僅只是催化劑。
總結(jié)
以上是生活随笔為你收集整理的《独辟蹊径品内核:Linux内核源代码导读(china-pub首发)》的前言的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 黄山风景区护士免费吗
- 下一篇: mogileFS 分布式存储-安装手记