欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

3天內不再提示

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

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

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

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

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

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

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

《琴詩》

蘇軾

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

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

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

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

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

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

接下來怎么辦?不停地循環(huán)!生命不息,循環(huán)不止?。汕槿羰蔷瞄L時,又豈在朝朝暮暮。

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

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

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

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

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

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

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

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

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

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

    關注

    3

    文章

    1383

    瀏覽量

    40434
  • Linux
    +關注

    關注

    87

    文章

    11350

    瀏覽量

    210460
  • 源代碼
    +關注

    關注

    96

    文章

    2946

    瀏覽量

    66973

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

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

收藏 人收藏

    評論

    相關推薦

    高效學習Linux內核

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

    自學Linux有哪些階段?

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

    嵌入式系統(tǒng)基礎階段學習建議

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

    Linux內核教程

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

    Linux內核學習起步課件

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

    Linux 內核源代碼

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

    新手Linux內核學習起步

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

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

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

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

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

    最硬核的Linux內核文章

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

    Linux內核學習的環(huán)境搭建和內核編譯

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

    Linux內核開發(fā)框架學習資料匯總

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

    嵌入式Linux內核驅動開發(fā)學習路線圖

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

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

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

    學習linux內核的一些建議

    學習linux內核,這個可不像學一門語言,c或者java一個月或者3月你就能精通掌握。學習linux內核
    發(fā)表于 05-07 15:20 ?648次閱讀
    <b class='flag-5'>學習</b><b class='flag-5'>linux</b><b class='flag-5'>內核</b>的一些建議