這六個坡分別如下:
- 第一個坡:拋棄舊的思維習慣,熟練使用 Linux 命令行
- 從 Windows 陣營來到 Linux 陣營,以前都是圖像界面的操作,現在面對一個黑窗口無從下手,對初學者來說是一件很頭痛的事情,所以學習 Linux 系統要爬過的第一個坡就是熟練使用 Linux 命令行。推薦的書籍是《鳥哥的 Linux 私房菜》和《Linux 系統管理技術手冊》。
- 這里我個人也推薦一本,主要區別是劉超老師推薦的是書籍主要針對 centos 系列的 Linux 操作系統,我推薦的這本是針對 debian 系的操作系統,它就是《The Linux Command Line》,我這里有英文版的電子書,有需要的可以聯系我獲取,大家也可以在網上找找中文版的。
- 第二個坡:通過系統調用或者 glibc,學會自己進行程序設計
- 這個坡主要是學會自己使用 Linux 系統調用或者使用 glibc 庫設計自己的程序,在第一個坡中使用的命令其實就是各種各樣的程序。在爬這個坡的時候很多人就會感覺到難度了,因為你不止要學習 Linux 系統相關的知識,你還需要學習 c、c++ 兩種開發語言。劉超老師推薦的書籍是《UNIX 環境高級編程》。
- 這里我想補充一點,對於想把 Linux 系統學好的朋友,c、c++ 兩種語言是必須要掌握的,可見學習 Linux 系統其實還是挺難的,因為光學習 c 語言就已經讓很多朋友頭痛了。但是請你不要驚慌,其實學習 Linux 系統和學習 c 語言是相輔相成的,不要單純的去學習 c 語言,也不要單純的去學習 Linux 操作系統,要兩者結合,你會發現其中無盡的樂趣的。
- 第三個坡:了解 Linux 內核機制,反復研習重點突破
- 有沒有發現一個破比一個破高,如果沒有發現,那說明你已經掌握了不少 Linux 系統的知識了,但也有可能你什么都不會。在這個爬這個坡的過程中,我們需要學會 Linux 系統調用背后到底做了什么,就像一個做包子的師傅,把包子做得很好吃了的時候,他就想去了解做包子的原料是怎么樣的,而我們學習 Linux 系統,當我們學會如何使用命令行,如何自己通過系統調用寫自己的程序的時候,我們就會想着去研究 Linux 系統調用背后的知識。在這個破中,劉超老師推薦的書籍是《深入理解 Linux 內核》,這本書我自己是看過的,寫得非常好,我也非常推薦。
- 第四坡:閱讀 Linux 內核代碼,聚焦核心邏輯和場景
- 在第三個破中,我們已經了解到 Linux 內核的理論知識,但是在了解內核機制的時候一定還會遇到困惑,這個時候就需要去內核的源碼里面一探究竟了。這里劉超老師推薦的書籍是《Linux 內核源代碼情景分析》。
- 第五坡:實驗定制化 Linux 組件,已經沒人能阻擋你成為內核開發工程師了
- 光看 Linux 內核源碼的實現還是不夠的,比如說驅動工程師,他們就需要自己開發驅動程序,而驅動程序就是 Linux 內核的一部分,所以在爬這一個坡的時候,我們需要參考內核中已有的實現,實現自己的內核模塊。
- 最后一坡:面向真實場景的開發,實踐沒有終點
- 學習是永無止境的,我們需要大量的實踐和練習才能提煉出知識的精華,在這個坡才算是你的起點,到大牛的起點,但這其中要花多長時間,需要積累多少的經驗,全看個人了,與其說要多久才能成為大牛,不如說自己一直在大牛的路上摸爬滾打着。