⑴ 嵌入式linux系統開發的具體步驟
第一步、建立交叉編譯環境
沒有交叉開發經驗的讀者,可能一時很難接受這個概念。首先,要明白兩個概念:一般
我們工作的機器,稱為開發機、主機;我們製作好的系統將要放到某台機器,如手機或另一
台PC機,這台機我們稱為目標主機。
我們一般開發機上已經有一套開發工具,我們稱之為原生開發套件,我們一般就是用它
們來寫程序,那麼,那什麼又是交叉編譯環境呢?其實一點也不神秘,也就是在開發機上再
安裝一套開發工具,這套開發工具編譯出來的程序,如內核、系統工作或者我們自己的程序,
是放在目標主機上運行的。
那麼或許有初學者會問,直接用原生開發工具為目標主機編譯程序不就完了?至少我當
初是這么想的。一般來說,我們的開發機都是X86 平台,原生開發套件開發的工具,也針
對X86 平台,而我們的目標主機可能是PowerPC、IXP、MIPS……所以,我們的交叉編譯
環境是針對某一類具體平台的。
一般來講,交叉開發環境需要二進制工具程序、編譯器、C鏈接庫,嵌入式開發常用的
這三類軟體是:
Binutils
Gcc
uClibc
當然,GNU包含的工具套件不僅於此,你還要以根據實際需要,進行選擇
第二步、編譯內核
開發工具是針對某一類硬體平台,內核同樣也是。這一步,我們需要用第一步中建立的
工具,對內核進行編譯,對於有內核編譯經驗的人來說,這是非常簡單的;
第三步、建立根文件系統
也就是建立我們平常看到的bin、dev、proc……這一大堆目錄,以及一些必備的文件;
另外,我們還需要為我們的目標系統安裝一些常用的工具軟體,如ls、ifconfig……當然,
一個辦法是找到這些工具的源代碼,用第一步建立的交叉編譯工具來編譯,但是這些軟體一
是數量多,二是某些體積較大,不適合嵌入式系統,這一步,我們一般都是用busybox來完
成的,包括系統引導軟體init;
最後,我們為系統還需要建立初始化的引導文件,如inittab……
⑵ linux嵌入式開發到底學些什麼東西啊
嵌入式系統的定義:「用於控制、監視或者輔助操作機器和設備的裝置」(原文為:Devices
Used
to
Control,Monitor
or
Assist
the
Operation
of
Equipment,Machinery
or
Plants)。這主要是從應用對象上加以定義,從中可以看出嵌入式系統是軟體和硬體的綜合體,還可以涵蓋機械等附屬裝置。
國內普遍認同的嵌入式系統定義為:以應用為中心,以計算機技術為基礎,軟硬體可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。
嵌入式主要用到的是C語言,C++,但Java也用於嵌入式技術,主要是用在嵌入式游戲開發,移動開發等,主要側重JAVA的J2ME方向。
嵌入式的發展前景跟就業前景很不錯,目前國內這方面的人才也比較緊缺。所以你學這方面的專業比較好。嵌入式主要分為三大塊:
1.嵌入式Linux系統開發:側重開發環境搭建、內核原理、交叉編譯等
2.嵌入式Linux應用開發:側重Linux應用編程、內核編譯、系統調用。
3.嵌入式Linux驅動開發:側重嵌入式Linux系統下的驅動開發、內核的深入分析。目前市場上專業的嵌入式培訓很多很亂,因為是最近幾年發展起來的。據我所知最權威最專業的要數東方賽富嵌入式培訓學院了,位於清華大學東門,跟清華大學有很深的淵源關系。特別是師資,師資團隊是整個嵌入式培訓領域最好的。80%的老師來自清華大學、世界500強企業和中國頂尖的IT公司。
如果時間及經濟條件允許的話,培訓一下還是有很好的,既學到了專業知識,同時也解決了就業問題,就業單位也比自己找的要好很多!如需要培訓他們是不二的選擇!
⑶ 嵌入式開發為什麼基於linux環境下
關於這個問題,可以換個方式來表述,就好比嵌入式開發是否一定需要裝虛擬機並且安裝linux系統這類的思考。當然回答是否定的,在windows下也能學習開發,所以不一定要安裝linux;
但是,由於嵌入式產品是基於linux內核開發的,所以在開發初期為了方便,應該有一個基本的開發環境,這也是為什麼要安裝linux操作系統的原因了;
而為什麼要虛擬機,是出於生活工作習慣了桌面的操作系統,並且不得不肯定的是windows操作系統提供了很多用戶體驗很高的應用程序,所以,在生活的同時,工作中,學習里,需要用linux操作系統進行開發,就直接在windows上安裝虛擬機即可;
還有一點就是,開發過程中,介於跨平台的性質,很多產品也是運行在windows下的,所以也需要進行交叉編譯;
綜上所述,在linux操作系統進行學習開發是明智的選擇。