回覆列表
  • 1 # 使用者2255080965805

    Linux 學習路線

    這是我畫的一幅圖,大家可以按此路線循序漸進地學習。

    不過需要說明的是,第五項驅動開發和第六項嵌入式系統開發是並列的,也就是說,學習完核心之後,你可以選擇從事不同的領域,當然嵌入式開發有時會包含驅動開發。

    還有就是嵌入式開發包括硬體,軟體和系統開發,假如只做硬體的話,你沒有必要按照上述路線進行,系統級開發的話,前面的是必備。

    熟悉 Linux 系統,基本命令

    安裝 Linux 系統,學會基本操作,熟悉檔案系統,shell 指令碼以及常用命令。

    瞭解程式開發過程

    搭建開發環境,瞭解 Linux 上程式開發過程。

    學會使用文字編輯工具 Vim,編譯工具 gcc, as, 連線工具 ld, 除錯工具 gdb, make 工具,會寫 makefile。

    用 C 語言實現並編譯自己的測試程式。

    嘗試系統程式設計

    試著在 Linux 上用 C 語言進行系統程式設計,

    其中需要呼叫 Linux 系統庫函式 (API)。

    例如,實現一個需要進行網路通訊、操作檔案的多執行緒/程序程式。

    以此深入瞭解 Linux 系統執行機制。

    學習核心

    上面學的差不多了,感興趣的同學可以接著學習 Linux 核心。

    Linux 核心模組如下圖

    這一部分內容比較深,能把它學透的基本就是大牛了,寫個 OS 就不在話下了。

    驅動開發

    從這裡開始,就不是必須的了。

    有興趣的朋友可以深入學習。

    但是學習驅動開發無疑要把前面的都要學好。

    嵌入式系統開發

    學好 Linux 是嵌入式系統開發的基礎。

    嵌入式開發包括很多方向,有硬體、軟體,以及系統級別。

    硬體要學微控制器,ARM、MIPS,DSP 等各種 MCU,Verilog, RTL, 具體就不多說了,跟 Linux 關係不太大。

    軟體的話,需要了解交叉編譯,以及嵌入式環境下 C 語言的特殊用法,例如 volatile、 位操作、暫存器操作、大小端、程式跳轉等。

    系統級,要了解 Linux 核心裁剪、移植、編譯、除錯,還有 Bootloader 、裝置驅動等。

    有人讓我推薦相關的學習書籍,其實我覺得看什麼書本身不是問題,很多書的內容都差不多的,只要按照路線或者體系進行學習,就不會有太大偏差。

  • 中秋節和大豐收的關聯?
  • i58500最高能配什麼顯示卡?