在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

論述學習Linux內核的各個階段

Linux閱碼場 ? 來源:未知 ? 作者:李倩 ? 2018-08-20 17:23 ? 次閱讀

在下是一個碼農,也號稱是一個老濕,平生閱碼農無數(吹牛的 ^-^)。經由大量的案例,我能夠理解了為什么很多碼農學了很多年Linux,還是感覺沒有掌握要領,仍然內心崩潰,最終對Linux吐血而亡,正所謂:人世間最大的痛苦,莫過于,碼農落花有意,而Linux流水無情.......

在這個2018農歷七夕之夜,我決定寫一點什么,來緬懷很多童鞋在Linux世界里逝去的青春,撫慰你內心的失落、彷徨、迷茫乃至絕望。

很多為Linux吐血而亡的程序員都犯了一個通病,那就是一開始就陷入無窮無盡的細節,比如一開始就陷入源代碼情景分析。情景分析這樣的書,無疑是好書,但是你把《新華字典》從第一個單詞,背到最后一個單詞,你仍然寫不出一篇作文。

若言琴上有琴聲,放在匣中何不鳴?

若言聲在指頭上,何不于君指上聽?

《琴詩》

蘇軾

我建議的學習方法是,反復迭代螺旋上升法。如下圖:

下面我們來論述學習Linux內核的各個階段

第一階段: 先形成整體輪廓,比如對Linux的進程、內存、I/O、驅動模型有一些基本的認識,開始寫一些簡單的內核模塊,比如hello-world模塊、globalmem、globalfifo這樣的字符驅動,你一定要動手。這個時候你可以看的書是《Linux內核設計與實現》,還有驅動的書。

第二階段:從事具體的工作,在某個子系統(無論是進程、內存、IO還是驅動)從事工作,加新的功能,修bug,發patch,加深對知識的理解。這階段你如果有興趣,也有耐心,可以讀《深入理解Linux內核》、《深入Linux內核架構》這樣的書,不過懶得看也沒有關系,因為你工作的時候,會自然而然地自己進行代碼分析。

第三階段(回歸第一階段):你已經工作了一段時間,寫了一些代碼,修復了一些bug,提交了一些patch,然后你重新回來迭代整體的知識框架,搞清楚各個子系統內在的聯系。這階段你如果有興趣可以讀《深入理解Linux內核》、《深入Linux內核架構》這樣的書,不過懶得看也沒有關系,因為你的工作讓你自己有了分析的能力。

第四階段(回歸第二階段):從事具體的工作,在某個子系統(無論是進程、內存、IO還是驅動)從事工作,加新的功能,修bug,發patch,加深對知識的理解。這階段你如果有興趣可以讀《深入理解Linux內核》、《深入Linux內核架構》這樣的書,不過懶得看也沒有關系,因為你的深入的工作,會讓你自己具備了理清脈絡和深入細節的能力。

接下來怎么辦?不停地循環!生命不息,循環不止!!兩情若是久長時,又豈在朝朝暮暮。

你千萬不要倒著學,先跑進去細節,跑進去一行行,總共2000萬行地擼代碼,這樣量太大,整體性太弱,各個組件的關聯很難建立。且中間無法用前期的成就感,來催生后期學習的動力,只會強擼灰飛煙滅。你不從外圍看Linux,橫著看,豎著看,你是看不到Linux的真面目的。

橫看成嶺側成峰,遠近高低各不同。

不識廬山真面目,只緣身在此山中。

據我個人所知,也有極少量的人,一開始就以情景分析的方法,逐行解釋代碼,最后也學有所成,但是這樣的人,都具有非凡的毅力,不是一般人可以去模仿的。

一般的人,類似我這樣的懶惰分子,需要用整體帶動部分的方法。正如我們看一個別人的.c文件,你不可能傻到從第一行讀到最后一行。你肯定是先搞清楚這個.c的整體功能,對外接口API,再深入到static的內部函數,由外及內,繼而由內及外。

下面我們用一個球來比如Linux,最外圈的球是整體的Linux,球內的小球是Linux的某個組件。最開始你這樣看Linux:

接下來你把其中的某些子系統放大,整個Linux這個氣球也隨著變大:

隨著掌握的越多,這個球越來越大:

然后,某個領域成為你的專業領域(比如你文件系統牛逼,比如你內存優化牛逼),這個球里面這個專業領域就凸起了:

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    3

    文章

    1402

    瀏覽量

    40900
  • Linux
    +關注

    關注

    87

    文章

    11411

    瀏覽量

    212245
  • 源代碼
    +關注

    關注

    96

    文章

    2949

    瀏覽量

    67511

原文標題:宋寶華: 迭代螺旋法——關于Linux學習方法的血淚建議

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    高效學習Linux內核

    高效學習Linux內核
    發表于 08-19 23:43

    自學Linux有哪些階段

    `自學Linux有哪些階段?作為一個新人在自學Linux的過程中,很容易陷入很多學習誤區,這里給大家分享一個Linux
    發表于 10-15 14:22

    嵌入式系統基礎階段學習建議

    什么是 Linux 內核》· 《嵌入式 Linux 框架的理解》8、Linux應用開發· 《韋東山嵌入式 Linux 應用開發完全手冊》·
    發表于 10-29 07:36

    Linux內核教程

    本章學習目標掌握LINUX內核版本的含義理解并掌握進程的概念掌握管道的概念及實現了解內核的數據結構了解LINUX
    發表于 04-10 16:59 ?0次下載

    Linux內核學習起步課件

    Linux內核學習起步介紹
    發表于 04-10 17:22 ?0次下載

    Linux 內核源代碼

    Linux 內核源代碼 實模式setup階段setup用于體系結構相關的硬件初始化工作,在arch目錄中的各個系統結構的平臺相關都有類似功能的代碼。在32位的x86平臺中,s
    發表于 02-10 13:45 ?28次下載

    新手Linux內核學習起步

    新手Linux內核學習起步
    發表于 10-27 16:10 ?13次下載
    新手<b class='flag-5'>Linux</b><b class='flag-5'>內核</b><b class='flag-5'>學習</b>起步

    linux內核是什么_linux內核學習路線

    Linux內核是一個操作系統(OS)內核,本質上定義為類Unix。它用于不同的操作系統,主要是以不同的Linux發行版的形式。Linux
    發表于 09-16 15:49 ?2750次閱讀

    Linux內核到底是什么應該如何學習

    Linux可以說是近期非常火的了,有的人想學習linux內核,那他到底是什么呢?
    發表于 10-06 18:02 ?2005次閱讀

    最硬核的Linux內核文章

    來源 :頭條號@Linux學習教程,冰凌塊兒 01 前言 本文主要講解什么是Linux內核,以及通過多張圖片展示Linux
    的頭像 發表于 10-19 17:46 ?2241次閱讀
    最硬核的<b class='flag-5'>Linux</b><b class='flag-5'>內核</b>文章

    Linux內核學習的環境搭建和內核編譯

    一、linux內核學習之一:環境搭建--安裝Debian7.3 本系列文章假設讀者已對linux有一定的了解,其實學習
    的頭像 發表于 01-02 18:01 ?2239次閱讀

    Linux內核開發框架學習資料匯總

    Linux內核開發框架學習資料匯總
    發表于 06-17 09:29 ?24次下載

    嵌入式Linux內核驅動開發學習路線圖

    嵌入式Linux內核驅動開發學習路線圖(嵌入式開發軟件工程師)-嵌入式Linux內核驅動開發學習
    發表于 07-30 13:51 ?12次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>內核</b>驅動開發<b class='flag-5'>學習</b>路線圖

    如何開啟你的Linux內核學習之路 論學習操作系統(Linux內核)的重要性

    一、學習操作系統(Linux內核)的重要性 為什么要學習Linux內核,這個問題我相信很多人都不
    發表于 05-06 22:15 ?2116次閱讀
    如何開啟你的<b class='flag-5'>Linux</b><b class='flag-5'>內核</b><b class='flag-5'>學習</b>之路 論<b class='flag-5'>學習</b>操作系統(<b class='flag-5'>Linux</b><b class='flag-5'>內核</b>)的重要性

    學習linux內核的一些建議

    學習linux內核,這個可不像學一門語言,c或者java一個月或者3月你就能精通掌握。學習linux內核
    發表于 05-07 15:20 ?693次閱讀
    <b class='flag-5'>學習</b><b class='flag-5'>linux</b><b class='flag-5'>內核</b>的一些建議
    主站蜘蛛池模板: 久久免费特黄毛片 | 福利视频免费观看 | 国产无套粉嫩白浆 | 夜夜干天天操 | 日本bbxx| 奇米在线 | 一级aaaaa毛片免费视频 | riav久久中文一区二区 | 中国日韩欧美中文日韩欧美色 | 精品国产欧美一区二区最新 | 欧美一级黄色片在线观看 | 欧美精品国产第一区二区 | 天天综合天天射 | 91操碰 | 天天干天天舔天天射 | 狠狠色丁香婷婷综合最新地址 | 亚洲一二三区在线观看 | 正在播放91 | 五月天天色 | 国产高清在线观看 | 精品久久久久久久久久 | 亚洲一级毛片免费观看 | 性xxxxbbbb在线 | 天天做人人爱夜夜爽2020毛片 | 久久久国产高清 | 国产午夜人做人视频羞羞 | 同性恋激情视频 | 久久久国产精品网站 | 唐人社电亚洲一区二区三区 | 明日花绮罗snis-862在线播放 | 福利视频一区二区牛牛 | 免费一看一级毛片 | 成人a毛片高清视频 | 天天干天天拍天天射天天添天天爱 | 天天射天天干天天 | 免费黄色网址网站 | 美日韩毛片 | 欧美成人亚洲 | 久久国产免费 | 性香港xxxxx免费视频播放 | 国产国产人免费人成成免视频 |