《獨闢蹊徑品核心:Linux核心原始碼導讀(china-pub首發)》的前言

來源:互聯網
上載者:User

我覺得作者講的學習方法很好值得看看。

下面是本書作者所寫:

幾乎每一個作業系統核心的學習者在初學階段都會感覺到難以入門。這是由於核心涉及到知識面非常廣泛,需要學習者從根本上掌握大量的知識,這包括:程式編譯,連結,裝載的細節,作業系統理論,電腦系統體繫結構,資料結構與演算法,深厚的C/組合語言編程功底。如此相對較高的門檻常常令很大一部分初學者望而卻步。那麼是不是一定要先學好以上的各門知識後才能學習核心呢?事實上大部分學習者在學習以上各門知識都會遇到同樣的問題,因為知識是一個網狀結構。所以重要的不是先去學會什麼知識,而是學會如何學習,學會在自己掌握的知識體繫上提出問題,學會思考,進而堅持不懈的解決心中的疑問。筆者從學完C/C++ 語言開始,由於C/C++ 的樣本程式都是在命令列下的,於是常常想如何才能編寫出視窗程式,學習了MFC,但是同樣想不通諸如WM_CHAR,WM_LBUTTONDOWN 的訊息從何而來,帶著MFC 中諸多疑問,筆者開始學習Windows SDK 程式開發,在這個學習過程中感覺對MFC 的認識更加深入了,但同時又有新的問題想不通,於是進而學習Windows DDK,之後開始學習作業系統核心。在這個過程中,筆者也遇到過數不盡的疑問,但是都是需要的時候再補充相關知識。因此初學者要明白,學習並不需要等到“萬事具備”了才可以開始。需要的是保持好奇心,養成思考的習慣,樹立解決問題的決心。很多讀者渴望尋找好的入門教材,也常常有人問看什麼書才能進步的快,但是當他們看了別人推薦的書卻沒有取得同樣的收穫,這是為什麼呢?筆者認為,讀書有以下幾種境界:
  1. 面對書上講到的某個知識點,不能接合自己掌握的知識提出疑問,僅僅知識死記書本上的東西。這種狀態就算學到最高境界,也僅僅只是能把書本上的知識點完好的記下來在腦海中形成孤立的知識節點。.
  2. 面對書本上講到的某個知識點,能接合自己掌握的知識提出疑問,但是大多數時候沒有探索精神,僅僅局限於到其他書籍或者請教別人來排除心中的疑問。腦海中的知識形成了簡單網狀結構,但由於探索能力長期得不到鍛煉,綜合自己的知識去分析和解決問題的能力十分有限。
  3. 面對書上講到的某個知識點,能接合自己掌握的知識提出疑問,並且能根據問題補充相關必要的知識,不斷綜合分析各知識點的關係,提出各種假設和驗證排除的方法並親自驗證,解決不了問題決不罷休。如能經過長期鍛煉,其腦海中的知識點形成複雜的網狀結構,綜合分析能力必將加強。
  4. 根據自己掌握的知識,提出全新的問題,並始終堅持找到答案為止。這種境界需要淵博的知識作為基礎。
  因此,不要還沒學核心就被嚇倒,說了這麼多看似和核心無關的東西,就是要從先排除讀者的心理擔憂,樹立正確的態度,重要的不是學會什麼,而是學會學習。確定自己處於哪一種學習境界,然後通過學習某項具體的知識把自己提升到更高的境界。在現實生活中我們不難發現,能力強的學什麼都又快又好。其根本原因在於他們處於更高的學習境界,並形成了良性迴圈!
  有很多的人都渴望學習作業系統核心,但是核心涉及到的知識非常廣泛,因此很多人半途而廢,許多人往往抱怨沒有好的書籍,教材。實際上,對於同一本書籍,不同的讀者收穫也是不同的,這取決於他們的態度和學習方法。筆者建議,在讀書的時候,一定要以自己心中的疑問作為主線,而不要沒有任何疑問就死記書本上的知識。
  如何使用本書..
  筆者認為對於任何知識的學習,首先是以自我為中心,任何書籍資料都是用來解答讀者心中的疑問的,因此在你閱讀一本書時,首先要明確自己的疑問是什嗎?這可以是一個非常梗概的問題,例如:“Linux 核心是什嗎?”;也可以是一個非常細節的問題,例如:“按下鍵盤上的A,到螢幕上顯示出字元A 的內部原理”。當你有了來自內心深處經過獨立思考的疑問後,閱讀對你來說是一種享受,一種樂趣。來自內心的疑問,經過不斷的綜合分析,縝密的推理,堅持不懈的查閱和求索,之後撥開迷霧見天日喜悅只有經過才能體會。雖然本書是一本很厚的書,但是這不是畏懼的理由,也不要因為它厚,就給自己下一個決心,制定一個閱讀計劃,幾個月要讀完本書。學習是主動探求的過程,而不是被動接受,在這個過程中,有太多的東西,不是誰可以計划出來的。例如:在筆者學習核心之初,看到大量的傳言,讀完《深入理解linux核心》,讀完《Linux 核心情景分析》... 就可以成為“高手”了。於是筆者常常捧著厚厚的書,尋思著自己什麼時候可以讀完,然而有時好幾天也前進不了幾頁,免不了感慨自己今生將與“高手”無緣,但是又心有不甘,於是囫圇吞棗的“快速”前進,但是越前進,就越感覺到艱難。“欲速則不達”這個道理人人都懂,但是在切身體會之前,人人都會犯這個錯誤。在經曆了很長一段曲折和鬱悶之後,筆者擺脫了“書”的束縛,完全以自己的疑問為中心,例如在讀到中斷處理時,由於知識不夠全面,於是丟開核心的書籍,閱讀了大量的電腦體繫結構方面的資料,同樣電腦體繫結構的書籍也很厚,但是我也沒有想過要把它們讀完,這時只撿中斷相關的讀,之後再來讀核心的書籍,發現自己原理懂了,但是具體到理解代碼時,就迷糊了,於是有補充GCC 內嵌彙編,C 代碼編譯到彙編代碼的相關知識,反覆實驗等等。這個過程很慢,但是積累到最後,筆者發現自己讀的非常快,甚至可以不讀了,因為很多地方,只要讀到前面的,就領悟了作者後面想要說什麼了。
  至今,我仍然沒有完成當初為了成為“高手”而制定下的“宏偉”目標,因為我沒有完整的讀完《深入理解linux核心》、《Linux 核心情景分析》或《Linux 核心完全剖析》等等這類傳說中“驚世駭俗”之作中的任何一本。但是筆者卻從這些著作中受益菲淺。
  現在,你應該知道要如何使用本書了吧?那就是不要拘泥如任何教條。雖然本書經筆者從初學到現在的心得體會以及相關筆記和資料整理而成,初學者的大量疑問都能在本書本書中找到答案。但是每個人都是獨一無二的,筆者希望任何一個讀者能綜合利用本書和其它相關資料尋找你自己的答案。多問一點為什麼,多一點假設,多一點思考,多一點推理,多一點實驗,多一點堅持。最後,你會感慨原來傳說中的任何“秘籍”都是“浪得虛名”,因為讀完它,你不一定能成為“高手”,而“高手”卻不需要讀完它。能否成為“高手”的決定性因素取決於你的學習方法和學習態度,而好的“秘籍”僅僅只是催化劑。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.