嵌入式Linux七大學習步驟,你了解幾個呢?(嵌入式linux基礎教程)

一、為什么要學習嵌入式Linux?

學習嵌入式Linux的原因,歸納起來有以下三個:

  • 興趣:興趣是學習東西最好的導師;
  • 職業(yè)發(fā)展:嵌入式Linux開發(fā)有好的公司和好的職業(yè)發(fā)展;
  • 高收入:嵌入式開發(fā)比平常的軟件開發(fā)有更高的收入;

二、學習對象,是否適合我?

并不是任何人都適合來學習嵌入式Linux,要想學習嵌入式Linux,必須是計算機相關(guān)的學生或者畢業(yè)生,或者對計算機有強烈愛好并具有基本計算機知識的同學。

當前大學畢業(yè)生應具有的技能有:演算技能、交際能力、創(chuàng)新能力、與人合作、信息處理、外語應用、自我提高、解決問題及核心技能。

三、如何學好嵌入式Linux?

選擇學習嵌入式Linux道路之后,要如何才能學好嵌入式Linux呢?要明白以下兩點:

  • 學什么?
  • 如何學?

四、學什么?

嵌入式Linux所涵蓋的知識面很廣,需要按步驟、不間斷的努力深入學習,才能有所成就。學習嵌入式Linux需要學習如下5大知識(按照學習步驟):

  1. 嵌入式處理器(ARM)與裸機程序開發(fā);
  2. Linux系統(tǒng)管理;
  3. Linux應用程序開發(fā);
  4. Linux驅(qū)動程序開發(fā);
  5. Linux內(nèi)核開發(fā)與系統(tǒng)移植。

五、如何學?

5.1 第一大知識結(jié)構(gòu)——嵌入式微處理器與邏輯程序開發(fā)時,需要學懂一下幾點

  1. ARM微處理器的兩種工作模式(ARM模式和Thumb模式);
  2. ARM系統(tǒng)寄存器;
  3. ARM尋址方式;
  4. ARM匯編指令集;
  5. ARM環(huán)境C語言程序編程
  6. ==ARM中斷與異常==
  7. ADS(或其他)集成開發(fā)環(huán)境;
  8. ==裸機程序開發(fā)(如串口、LCD、時鐘、LED、按鍵、網(wǎng)卡驅(qū)動、音頻驅(qū)動、flash驅(qū)動等)==

以上8點鐘,第6和8點是非常重要的,而前5點則是基礎。在這個階段推薦看的書籍有:

  1. 語言編程類:
  • ==《C語言程序設計》==——譚浩強
  • 《C語言深度解剖》
  • ==《C陷阱與缺陷》==
  • ==《C專家編程》==
  • ==《C Primer puls》==第五版——Slephen Prala
  • 《高質(zhì)量C編程指南》
  • ==《程序員面試寶典》==
  1. ARM微處理器類:
  • ==《ARM嵌入式系統(tǒng)開發(fā)——軟件設計與優(yōu)化》==——斯洛斯(Sloss,A.N.)

然后就是各種驅(qū)動程序編寫時,用到什么樣的芯片就查閱相關(guān)的芯片手冊,如網(wǎng)卡DM9000,音頻的UDA1341等。

5.2 第二大知識結(jié)構(gòu)——Linux系統(tǒng)管理時,需要學懂一下幾點

  1. Linux定制安裝
  2. Linux命令詳解(會熟練的運用)
  3. samba、nfs、tftp等服務器的配置與使用,以及Wireshark、Source Insight、Xshell、Ultraedit等軟件的使用;
  4. Shell編程。

其中第2和第4點是最重要的,它將是學習以后的知識的一個最基礎的技能。學會這些東西可以看一下兩本書:

  • 《Linux標準學習教材》——IT同路人
  • 《Linux系統(tǒng)管理技術(shù)手冊》——奈米斯,斯奈德,海因

5.3 第三大知識結(jié)構(gòu)——Linux應用程序開發(fā)時,需要學懂一下幾點

  1. GCC、GDB、Makefile;
  2. 文件、時間編程;
  3. 多進程、多線程程序設計;
  4. 進程間通訊;
  5. 網(wǎng)絡編程;
  6. ==QT圖形化應用程序開發(fā)==;
  7. == Android圖形化應用程序開發(fā)==。

這個階段的知識點都特別的重要,個人覺得除了第一點外,其他六點都需要下苦功夫?qū)W習,而第7和第8是這個階段的最后兩個也是最重要的,以后也可以直接應用于工程開發(fā)中。這個階段可以學習一下兩本書:

  • 《Linux程序設計》第四版——馬修(Matthew,N.),斯通斯(Stones,R.)
  • 《UNIX環(huán)境高級編程》第二版——史蒂文斯,拉戈

5.4 第四大知識結(jié)構(gòu)——Linux內(nèi)核開發(fā)時,需要學習一下幾點

  1. Linux內(nèi)核配置與裁剪;
  2. Linux內(nèi)核模塊開發(fā);
  3. 根文件系統(tǒng)的制作;
  4. ==進程子系統(tǒng)==;
  5. ==內(nèi)存子系統(tǒng)==;
  6. ==Proc和sys文件系統(tǒng)==;
  7. ==系統(tǒng)調(diào)用==;
  8. ==內(nèi)核定時器==;
  9. ==內(nèi)核異常分析==;

這個階段的知識非常的難,看書有時看上四五遍都無法理解,建議多去各種論壇上面看看,學習大家的經(jīng)驗。本知識中從第4點到第9點是Linux內(nèi)核子系統(tǒng)的知識。這個階段可以看一下兩本書:

  • 《深入理解LINUX內(nèi)核》第三版——博韋,西斯特
  • 《Linux內(nèi)核源代碼情景分析》

5.5 第五大知識結(jié)構(gòu)——Linux驅(qū)動程序開發(fā)時,需要學習一下幾點

  1. 字符設備驅(qū)動程序;
  2. 總線、設備、驅(qū)動模型;
  3. 硬件訪問技術(shù);
  4. 中斷處理;
  5. Input設備驅(qū)動;
  6. Platform驅(qū)動程序;
  7. PCI、USB驅(qū)動程序;
  8. 網(wǎng)卡驅(qū)動程序;
  9. 觸摸屏驅(qū)動程序;
  10. 串口驅(qū)動程序。

這個階段所學習的驅(qū)動程序與第一階段學習的驅(qū)動程序有本質(zhì)的區(qū)別:第一個階段學習的是裸機驅(qū)動程序,重在了解硬件,而這個階段是在編寫內(nèi)核驅(qū)動模塊,同時也是硬件驅(qū)動程序,它存在于操作系統(tǒng)內(nèi)核當中,并給應用程序編程提供統(tǒng)一的編程界面,同時基本脫離硬件的具體操作。

這個階段可學習如下書籍:

  • 《Linux驅(qū)動開發(fā)入門與實戰(zhàn)》——鄭強
  • 《LINUX設備驅(qū)動程序》——科波特
  • 《精通Linux設備驅(qū)動程序開發(fā)》——溫卡特斯瓦蘭

至此,嵌入式Linux五大知識體系就學習完成了。

六、學習順序?

由于嵌入式Linux知識架構(gòu)非常多,也非常難,為了達到學習的真正效果,建議按照以下順序進行學習:

  • 嵌入式處理器與裸機程序開發(fā);
  • Linux系統(tǒng)管理;
  • Linux應用程序開發(fā);
  • Linux內(nèi)核開發(fā)基礎;
  • 嵌入式Linux環(huán)境搭建;
  • Linux驅(qū)動程序開發(fā);
  • 深入學習Linux內(nèi)核;

這里將學習的過程分為三個重要的階段,大家可以根據(jù)自身的情況調(diào)整學習的時間和進度。

嵌入式Linux七大學習步驟,你了解幾個呢?(嵌入式linux基礎教程)

image

圖1 嵌入式學習第一階段

嵌入式Linux七大學習步驟,你了解幾個呢?(嵌入式linux基礎教程)

image

圖2 嵌入式學習第二階段

嵌入式Linux七大學習步驟,你了解幾個呢?(嵌入式linux基礎教程)

image

圖3 嵌入式學習第三階段

當然,就目前形式來說,一般的第三個階段的學習轉(zhuǎn)為了Java程序語言的學習和Android系統(tǒng)的開發(fā)上面了,這個根據(jù)個人的興趣愛好分享發(fā)展,但是前面兩個階段是必須要熟練掌握的。

七、注意

根據(jù)個人的學習經(jīng)驗,得出如下幾點需要注意:

  1. 這五大知識體系是相互穿插,相互依賴的。大家學習的時候一定要==按照先后順序?qū)W習==,如果后面學習的東西有不懂或不能理解的,一定要回頭查閱以前學過的知識,或者上相關(guān)論壇與大蝦們探討;
  2. 在每個知識點中,我都羅列了至少兩本書籍,但并不是每本書大家都必須去看,去研究,而是大家==選擇其中一本進行深入研究即可==,知識我列出來的書相比較于其他書籍較好而已;另外每個部分的書籍是按照從易到難的順序羅列的,大家可根據(jù)自己的具體情況進行學習;
  3. 學習過程是艱苦的,大家如果確定要學習嵌入式Linux,就必須下狠心,多努力,不能“三天打漁兩天曬網(wǎng)”,至少應該==保證一個階段學完一個知識體系==;另外還要注重==多實踐==。

更多l(xiāng)inux免費視頻資料獲取 后臺私信【架構(gòu)】

嵌入式Linux七大學習步驟,你了解幾個呢?(嵌入式linux基礎教程)嵌入式Linux七大學習步驟,你了解幾個呢?(嵌入式linux基礎教程)

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部