現(xiàn)在學嵌入式的人也是越來越多了,而對于嵌入式linux開發(fā)的學習不是一蹴而就的,需要不斷的積累,那么我們在學習嵌入式linux開發(fā)時,應該從哪些方面來著手學習呢,我這只老鳥就來獻獻丑了,都是一些嵌入式linux開發(fā)最重要的,結(jié)合學習中遇到的一些問題,讓你更深入的認識嵌入式linux開發(fā)
很多學習嵌入式linux的人在學習嵌入式linux時買大量的linux書籍,從圖書館借了一大堆關(guān)于linux的書:什么《linux使用基礎(chǔ)教程》、《linux源碼深度分析》、《linux情景分析等》、 《linux高級使用指南》等等。結(jié)果抱著這些圖書看了10天半個月還是不知所云,當初學習的激情慢慢就消退了,最后不了了之,終究沒有進入嵌入式開發(fā)大門。究其原因,是因為沒有找到合適學習嵌入式開發(fā)的方法,做任何事情都有方法可循,找對了學習方法往往就能事半功倍;否則就可能是事倍功半,甚至勞而無功。接下來就結(jié)合對學習嵌入式linux開發(fā)的幾種常見的學習誤區(qū)來給你們一個好的學習方法
誤區(qū)一、直接閱讀linux內(nèi)核源代碼
很多想學linux,在連linux是什么東西,一點都還不會使用的情況下去就閱讀linux內(nèi)核源代碼,花了大量時間去閱讀《linux源碼深度分析》、《linux情景分析等》等書。這樣的結(jié)果很可能就是看的頭昏眼花,不知所云,最后只能放棄了。這也是同學們學習嵌入式linux的一個誤區(qū),在有一定嵌入式linux開發(fā)基礎(chǔ)后,帶著一定的目的去閱讀linux源代碼,這樣可以極大的提高你的技術(shù)能力,但是你在沒有任何基礎(chǔ),對linux一點都不了解的情況下就去閱讀linux內(nèi)核源代碼,無異于以卵擊石,最后只能是撞個頭破血流。
誤區(qū)二、全身投入學習桌面或服務器版本linux系統(tǒng)
很多想學嵌入式linux 的同學經(jīng)常問我,我不會linux系統(tǒng),怎么學習嵌入式linux開發(fā),于是他們就花費了大量的精力和時間去研究學習桌面版本linux系統(tǒng)的使用,什么redhat 、federo,、ubuntu等等都用過,如何配置linux,linux的各種使用命令都背的滾瓜爛熟,linux各種服務器的配置,還原備份各種操作非常熟悉,以為這樣就學會了嵌入式linux開發(fā)。其實這是一個學習嵌入式Linux開發(fā)的誤區(qū)。
Linux桌面環(huán)境只是嵌入式linux的一個開發(fā)工具,開發(fā)環(huán)境而已。我們的目標不是學習linux服務器的配置和使用,linux服務器的高級配置和使用那是另外一個領(lǐng)域,不屬于嵌入式linux討論的范疇。我們進行嵌入式linux開發(fā),只是把linux桌面環(huán)境當作一個工具,在linux桌面環(huán)境下運行嵌入式linux開發(fā)工具,例如gcc 編譯器,make工具來開發(fā)我們的嵌入式linux應用程序而已,對于嵌入式開發(fā)工程師來說,沒有必要花費那么多的精力和時間去研究linux桌面版和服務器的應用,只要能了解最基本的操作即可,F(xiàn)在的桌面linux系統(tǒng)的圖形化界面做的也相當好,跟window具有相同的易用性能,例如ubuntu很多操作都可以在圖形界面下完成,就沒有必要去記每個linux命令了。熟悉linux桌面系統(tǒng)的使用和基本操作命令,安排1~2天時間學習基本就可以掌握了。
以上分析了同學們學習嵌入式linux 開發(fā)的2個誤區(qū),那么如何正確的嵌入式linux開發(fā)呢?
做任何事情都有一個循序漸進的過程,學習嵌入式linux也一樣。在有了一定的嵌入式開發(fā)基礎(chǔ)后,學習嵌入式linux開發(fā)比較適合的切入點是從嵌入式linux應用程序開發(fā)開始,即暫時先不去關(guān)心嵌入式硬件平臺,不去關(guān)心linux的底層驅(qū)動,先把精力集中在現(xiàn)有的嵌入式linux平臺上進行嵌入式linux應用程序設(shè)計開發(fā)。學習嵌入式linux開發(fā)絕不是看看書就可以學好的,需要多實踐,編程調(diào)試;因為嵌入式開發(fā)不同于普通的基于PC機或服務器的應用程序開發(fā),嵌入式開發(fā)的應用程序是要燒寫到嵌入式板卡或開發(fā)板上運行的,所以首先你要給自己購買一塊開發(fā)板,現(xiàn)在普遍流行的嵌入式開發(fā)板都是基于三星的ARM9 CPU S3C2440,性價比極高。
有了開發(fā)板后,先后開始學習嵌入式linux開發(fā)環(huán)境搭建、嵌入式linux開發(fā)模型、linux內(nèi)核移植和文件系統(tǒng)、嵌入式linux應用程序移植、嵌入式linux多進程,多線程應用程序設(shè)計、嵌入式linux網(wǎng)絡(luò)編程,如果對嵌入式數(shù)據(jù)庫或圖形軟件開發(fā)有興趣的,可以進一步學習嵌入式linux數(shù)據(jù)庫開發(fā)或基于QT的嵌入式linux圖形應用軟件設(shè)計。每學一章節(jié)都要通過相關(guān)實驗來來驗證你從書上學到的東西,同時提高自己編寫代碼,調(diào)試程序的能力。這個過程根據(jù)不同學員的基礎(chǔ)不同,大概要花上1 ~ 2個月時間。學完這些課程后,你就有了再現(xiàn)有的嵌入式linux平臺上進行應用程式設(shè)計開發(fā)的能力,到一些嵌入式軟件公司去,能夠勝任在現(xiàn)有的嵌入式linux平臺上進行上層的應用程序開發(fā)工作。但是目前你還不能進行嵌入式linux系統(tǒng)和驅(qū)動的開發(fā),也就是說,你現(xiàn)在只能在一個已經(jīng)構(gòu)建好的嵌入式linux平臺上進行應用程序開發(fā),而自己還沒有能力根據(jù)實際需要去重新構(gòu)建一個嵌入式linux平臺。要讓自己有能力根據(jù)實際需要重新構(gòu)建一個嵌入式linux軟硬件平臺,這時候就需要進行下一階段的學習了,即嵌入式linux系統(tǒng)和驅(qū)動開發(fā)。
對于嵌入式linux開發(fā)初級你是否了解了呢,嵌入式linux開發(fā)學習更多需要的是你的實踐,而不是你學學懂了,就不管了,所以學習嵌入式linux開發(fā)需要你多下功夫,把理論和實踐相結(jié)合,這樣你才會學而有所得。