第一個坡:拋棄舊的思惟習慣,熟練使用 Linux 命令行git
推薦書籍shell
若是你想全面學習 Linux 命令,推薦你閱讀《鳥哥的 Li...編程
第二個坡:經過系統調用或者 glibc,學會本身進行程序設計vim
推薦書籍 網絡
《UNIX 環境高級編程》,這本書有代碼,有介紹,有原理併發
第三個坡:瞭解 Linux 內核機制,反覆研習重點突破socket
推薦書籍 《深刻理解 LINUX 內核》學習
第四坡:閱讀 Linux 內核代碼,聚焦核心邏輯和場景命令行
開源軟件代碼紛繁複雜,一開始看確定暈,找不着北。設計
開始閱讀代碼不要糾結一城一池的得失,不要每一行都必定要搞清楚
它是幹嗎的,而要聚焦於核心邏輯和使用場景。
推薦書籍:《LINUX 內核源代碼情景分析》
第五坡:實驗定製化 Linux 組件,已經沒人能阻擋你成爲內
核開發工程師了
須要仔細配置
最後一坡:面向真實場景的開發,實踐沒有終點
# 學習路徑
## Step1: 熟悉Linux命令行
基礎:--help、man
進階:sed、awk、正則、管道、grep、find、shell腳本、vim、git
## Step2: 系統調用和glibc => 編程
+ 進程樹 fork
+ 進程同步 信號量
+ 應用層與傳輸層的分界線 socket編程
> [《UNIX環境高級編程》]()
## Step3: Linux內核機制
> [《深刻理解Linux內核》]()
> 這本書內核版本比較老~
## Step4: 閱讀Linux內核源碼,聚焦核心邏輯和場景
+ 虛擬化 kvm
+ 網絡 內核協議棧
> [《Linux內核源碼情景分析》]()
## Step5:實驗定製化Linux組件
> 專欄最後兩個實驗
## Step6: 面向真實場景開發,實踐~
+ 併發與並行
+ 鎖與保護
+ 擴展性和兼容性