誤區(qū)一、直接閱讀linux內(nèi)核源代碼
很多想學linux,在連linux是什么東西,一點都還不會使用的情況下去就閱讀linux內(nèi)核源代碼,花了大量時間去閱讀《linux源碼深度分析》、《linux情景分析等》等書。這樣的結果很可能就是看的頭昏眼花,不知所云,只能放棄了。這也是同學們學習嵌入式linux的一個誤區(qū),在有一定嵌入式linux開發(fā)基礎后,帶著一定的目的去閱讀linux源代碼,這樣可以極大的提高你的技術能力,但是你在沒有任何基礎,對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服務器的配置和使用那是另外一個領域,不屬于嵌入式linux討論的范疇。我們進行嵌入式linux開發(fā),只是把linux桌面環(huán)境當作一個工具,在linux桌面環(huán)境下運行嵌入式linux開發(fā)工具,例如gcc 編譯器,make工具來開發(fā)我們的嵌入式linux應用程序而已,對于嵌入式開發(fā)工程師來說,沒有必要花費那么多的精力和時間去研究linux桌面版和服務器的應用,只要能了解基本的操作即可。現(xiàn)在的桌面linux系統(tǒng)的圖形化界面做的也相當好,跟window具有相同的易用性能,例如ubuntu很多操作都可以在圖形界面下完成,就沒有必要去記每個linux命令了。熟悉linux桌面系統(tǒng)的使用和基本操作命令,安排1~2天時間學習基本就可以掌握了。
以上分析了同學們學習嵌入式linux開發(fā)的2個誤區(qū),那么如何正確的嵌入式linux開發(fā)呢?
做任何事情都有一個循序漸進的過程,學習嵌入式linux也一樣。在有了一定的嵌入式開發(fā)基礎后,學習嵌入式linux開發(fā)比較適合的切入點是從嵌入式linux應用程序開發(fā)開始,即暫時先不去關心嵌入式硬件平臺,不去關心linux的底層驅動,先把精力集中在現(xiàn)有的嵌入式linux平臺上進行嵌入式linux應用程序設計開發(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多進程,多線程應用程序設計、嵌入式linux網(wǎng)絡編程,如果對嵌入式數(shù)據(jù)庫或圖形軟件開發(fā)有興趣的,可以進一步學習嵌入式linux數(shù)據(jù)庫開發(fā)或基于QT的嵌入式linux圖形應用軟件設計。每學一章節(jié)都要通過相關實驗來來驗證你從書上學到的東西,同時提高自己編寫代碼,調(diào)試程序的能力。這個過程根據(jù)不同學員的基礎不同,大概要花上1 ~ 2個月時間。學完這些課程后,你就有了再現(xiàn)有的嵌入式linux平臺上進行應用程式設計開發(fā)的能力,到一些嵌入式軟件公司去,能夠勝任在現(xiàn)有的嵌入式linux平臺上進行上層的應用程序開發(fā)工作。但是目前你還不能進行嵌入式linux系統(tǒng)和驅動的開發(fā),也就是說,你現(xiàn)在只能在一個已經(jīng)構建好的嵌入式linux平臺上進行應用程序開發(fā),而自己還沒有能力根據(jù)實際需要去重新構建一個嵌入式linux平臺。要讓自己有能力根據(jù)實際需要重新構建一個嵌入式linux軟硬件平臺,這時候就需要進行下一階段的學習了,即嵌入式linux系統(tǒng)和驅動開發(fā)。
對于嵌入式linux開發(fā)初級你是否了解了呢,嵌入式linux開發(fā)學習更多需要的是你的實踐,而不是你學學懂了,就不管了,所以學習嵌入式linux開發(fā)需要你多下功夫,把理論和實踐相結合,這樣你才會學而有所得。