新聞中心
Linux操作系統(tǒng)在嵌入式設(shè)備中的應用越來越廣泛,從智能家居、智能家電到工業(yè)自動化、醫(yī)療設(shè)備等領(lǐng)域都有著重要的應用。作為一款自由軟件,Linux操作系統(tǒng)的源代碼也是完全公開的,這也給開發(fā)者和研究者提供了方便。但是,Linux操作系統(tǒng)的源代碼龐大復雜,其中的奧秘需要花費很多時間和精力去研究和理解。本文將探秘Linux嵌入式項目,揭秘源碼奧秘。

創(chuàng)新互聯(lián)長期為近1000家客戶提供的網(wǎng)站建設(shè)服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為瀘縣企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站設(shè)計,瀘縣網(wǎng)站改版等技術(shù)服務。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
一、什么是嵌入式Linux項目?
嵌入式設(shè)備可以理解為一種特殊的計算機系統(tǒng),其設(shè)計目標是針對特定的應用領(lǐng)域。嵌入式設(shè)備通常具有小體積、低功耗、實時性強等特點。嵌入式Linux項目是將Linux操作系統(tǒng)移植到嵌入式設(shè)備中的一種實踐,嵌入式Linux項目可以將Linux在不同嵌入式設(shè)備上進行定制和優(yōu)化,以適應不同的應用需求。
二、Linux嵌入式系統(tǒng)的工作原理
Linux嵌入式系統(tǒng)的工作原理與普通的Linux系統(tǒng)相似,但是由于嵌入式設(shè)備的特殊性,需要針對不同的應用進行優(yōu)化。嵌入式Linux系統(tǒng)的工作原理可以簡述為:
1.啟動系統(tǒng):從ROM芯片中讀取引導程序,引導程序?qū)inux系統(tǒng)加載至內(nèi)存中。加載完成后,Linux系統(tǒng)開始運行并且完成初始化操作。
2.加載驅(qū)動:由于嵌入式設(shè)備硬件環(huán)境的多樣性,需要選擇不同的驅(qū)動適配設(shè)備。驅(qū)動程序負責與硬件設(shè)備進行通信,以實現(xiàn)不同的功能。
3.啟動應用程序:Linux嵌入式系統(tǒng)中的應用程序通常是采用C/C++編寫,這些應用程序可以是自定義的應用程序,也可以是標準的Linux軟件包,如Apache、Samba等。運行應用程序時,需要使用應用程序的二進制文件和庫文件,并保證環(huán)境變量的正確設(shè)置。
三、Linux源代碼簡介
Linux的源代碼是以C語言和匯編語言編寫的,其中包含了Linux的所有實現(xiàn)細節(jié)。Linux源代碼是由一個龐大的文件樹組成,其結(jié)構(gòu)大致如下圖所示:

Linux源代碼一般包含如下文件夾:
1. arch:該文件夾描述了不同的體系結(jié)構(gòu),如x86、ARM等。
2. block:該文件夾描述了與塊驅(qū)動器相關(guān)的代碼,如磁盤和閃存驅(qū)動器。
3. crypto:該文件夾描述了加密和解密算法的代碼。
4. drivers:該文件夾描述了硬件設(shè)備驅(qū)動程序的代碼,如網(wǎng)卡、聲卡、顯卡等。
5. fs:該文件夾描述了文件系統(tǒng)的代碼,如ext3、NTFS等。
6. include:該文件夾包含Linux內(nèi)核的頭文件,其中包含了常量、數(shù)據(jù)結(jié)構(gòu)、宏等。
7. init:該文件夾包含了內(nèi)核初始化代碼的實現(xiàn),包括內(nèi)存管理、進程管理、設(shè)備驅(qū)動程序的加載和各種初始化操作。
8. ipc:該文件夾描述了進程間通信相關(guān)的代碼,如管道、信號量等。
9. kernel:該文件夾包含了操作系統(tǒng)內(nèi)核的核心代碼,其中包括系統(tǒng)調(diào)用、進程管理、文件操作等。
10. mm:該文件夾包含了內(nèi)存管理相關(guān)的代碼,如物理內(nèi)存管理、虛擬內(nèi)存管理等。
11. net:該文件夾描述了與網(wǎng)絡(luò)相關(guān)的代碼,如TCP/IP協(xié)議棧、網(wǎng)絡(luò)驅(qū)動程序等。
四、Linux嵌入式項目代碼分析
Linux嵌入式項目的代碼分析可以從外部門面和內(nèi)部實現(xiàn)兩個方面進行。
外部門面主要是從應用領(lǐng)域入手,分析Linux嵌入式項目在實際應用中的特點和功能。例如在智能家居產(chǎn)品中,Linux嵌入式項目采用了Wi-Fi和ZigBee通信技術(shù),實現(xiàn)了智能控制家居設(shè)備的目的。
內(nèi)部實現(xiàn)是指Linux嵌入式項目源代碼的分析,以揭示嵌入式系統(tǒng)實現(xiàn)中的各種細節(jié)。例如,Linux內(nèi)存管理的機制和操作系統(tǒng)的進程管理機制等。
同時,Linux的工具鏈和調(diào)試技術(shù)也是對嵌入式Linux項目進行代碼分析的重要手段。例如GDB是一個廣泛使用的調(diào)試器,可以用于嵌入式Linux項目的調(diào)試。
五、結(jié)語
作為一款自由軟件,Linux操作系統(tǒng)的源代碼完全公開,這方便了開發(fā)者和研究者進行研究和優(yōu)化。Linux嵌入式項目可以將Linux在不同嵌入式設(shè)備上進行定制和優(yōu)化,以適應不同的應用需求。Linux操作系統(tǒng)的源代碼龐大復雜,需要花費很多時間和精力去研究和理解。在未來的工作中,我們需要進一步深入研究Linux嵌入式項目的源代碼,以發(fā)掘其更多的特性和優(yōu)勢,從而更好的適應不同的應用場景和需求。
相關(guān)問題拓展閱讀:
- 嵌入式開發(fā)要學哪些課程
- linux和嵌入式linux
嵌入式開發(fā)要學哪些課程
嵌入式開發(fā)
的必學課程:C語言,C++,操作系統(tǒng),計算機組成原理,linux編程,51單片機,arm,硬件
編程語言
,模擬電路&數(shù)字電路。
嵌入式培訓分幾個階段的學習,從基礎(chǔ)到實戰(zhàn)的練習,一點一點學習和掌握這門技術(shù)。學習的課程內(nèi)容包含:嵌入式高級C語言、
嵌入式設(shè)備
及GUI開發(fā)、嵌入式Linux高級程序設(shè)計、Linux高級網(wǎng)絡(luò)程序設(shè)計、數(shù)據(jù)庫開發(fā)、面向?qū)ο蟾呒壵Z言程序設(shè)計、物聯(lián)網(wǎng)、CotexA53 Linux平臺驅(qū)動開發(fā)及真實的企業(yè)實戰(zhàn)項目。
想要學好
嵌入式技術(shù)
,嵌入式軟件開發(fā)工程師,從事領(lǐng)域很寬泛,特別是工業(yè)控制、消費電子與通信設(shè)備三大領(lǐng)域,因為就業(yè)面很大,所以人才需求也大?,F(xiàn)在智能硬件也比較火,這方面的發(fā)展也會大大拓展嵌入式軟件開發(fā)工程師的就業(yè)機會。再者,嵌入式硬件工程師,需求沒有嵌入式軟件開發(fā)工程師大,但因為做硬件門檻會高些,所以這個方向如果做的比較專業(yè),薪資絕對不會低。
嵌入式開發(fā)要學習的課程內(nèi)容:
之一階段:嵌入式C高級編程
1.嵌入式C語言基礎(chǔ)和高級編程
2.嵌入式C語言經(jīng)典數(shù)據(jù)結(jié)構(gòu)及算法編程
3.項目實戰(zhàn)(一)《lrc歌詞解析器》
在嵌入式領(lǐng)域中大部分開發(fā)都會用到C語言。C語言簡潔、緊湊、使用方便靈活加上GNU在實際項目開發(fā)中所做的擴展,使得C語言在整個嵌入式開發(fā)過程中起著至關(guān)重要的作用。更重要的是用C語言開發(fā)的程序在嵌入式平臺下可移植性比較強。一個精通C語言程序設(shè)計的程序員,可以很容易地從事Linux、WinCE、Vxworks、μc/os等嵌入式操作系統(tǒng)下的軟件開發(fā)工作。本階段學習目標是掌握C語言基本知識、鞏固C編程語法基礎(chǔ),以及深入C語言高級編程和數(shù)據(jù)結(jié)構(gòu)與算法,為將來的程序設(shè)計工作打下堅實的基礎(chǔ)。
第二階段:Linux應用及系統(tǒng)編程
Linux操作系統(tǒng)應用開發(fā)
2.嵌入式Linux高級系統(tǒng)編程
3.嵌入式數(shù)據(jù)庫–SQLite
4.項目實戰(zhàn)(二)《Mplayer播放器》
5.Linux網(wǎng)絡(luò)編程
6.項目實戰(zhàn)(三)《基于Linux的信息交換系統(tǒng)》
7.C++及基于QT的GUI開發(fā) 8.項目實戰(zhàn)(四)《網(wǎng)絡(luò)游戲?qū)?zhàn)平臺》
嵌入式Linux應用開發(fā)和系統(tǒng)開發(fā)是嵌入式Linux中非常重要的一部分,也是企業(yè)人才需求最廣的一部分。本階段學習的主要目標是精通嵌入式Linux下的應用程序設(shè)計,熟練掌握嵌入式Linux的開發(fā)環(huán)境、常用Linux命令,精通Linux系統(tǒng)編程、網(wǎng)絡(luò)編程、QT
GUI編開發(fā),熟練掌握整個嵌入式Linux項目開發(fā)流程,提升學員對Linux應用開發(fā)的能力。
第三階段:嵌入式Linux平臺開發(fā)
ARM體系結(jié)構(gòu) 原理分析及其移植
2.ARM處理器編程 原理分析及其移植
3.基于ARM裸機驅(qū)動開發(fā) 原理分析及其移植
4.嵌入式Bootloader 原理分析及其移植
5.自制嵌入式系統(tǒng)啟動代碼
6.嵌入式Linux內(nèi)核工作原理
分析及其移植
7.Linux內(nèi)核調(diào)試技術(shù)
8.嵌入式Linux根文件系統(tǒng) 組成分析及其制作
8.嵌入式Linux開源工程 源碼分析及其編程
9.項目實戰(zhàn)(五) 《Web應用開發(fā)技術(shù)》 本階段將使學員掌握從零開始搭建嵌入式Linux運行環(huán)境。首先通過基于ARM
Cortex-A8處理器S5pv210了解芯片手冊的基本閱讀技巧,掌握S5pv210系統(tǒng)資源、時鐘控制器、電源管理、異常中斷控制器、nand
flash控制器等模塊,為底層平臺搭建做好準備。Linux平臺包括內(nèi)核裁減、內(nèi)核移植、交叉編譯、GNU工具使用、內(nèi)核調(diào)試、Bootloader介紹、制作與原理分析、根文件系統(tǒng)制作以及向內(nèi)核中添加自己的模塊,并在s5pv210實驗平臺上運行自己制作的Linux系統(tǒng),集成部署Linux系統(tǒng)整個流程。同時了解Android操作系統(tǒng)開發(fā)流程。Android系統(tǒng)是基于Linux平臺的開源操作系統(tǒng),該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成,是首個為移動終端打造的真正開放和完整的移動軟件,目前它的應用不再局限于移動終端,還包括數(shù)據(jù)電視、機頂盒、PDA等消費類電子產(chǎn)品。 ╬ν【 ,У。?,九,⑦,ミ,?】
第四階段:嵌入式微處理器及Linux設(shè)備驅(qū)動開發(fā)
ARM硬件接口原理
2.嵌入式Linux設(shè)備驅(qū)動開發(fā)
3.嵌入式Linux高級驅(qū)動程序設(shè)計
4.項目實戰(zhàn)(六) 《重力感應實戰(zhàn)系統(tǒng)》
驅(qū)動程序設(shè)計是嵌入式Linux開發(fā)工作中重要的一部分,也是比較困難的一部分。本階段課程讓學員熟悉Linux的內(nèi)核機制、驅(qū)動程序與用戶級應用程序的接口,掌握系統(tǒng)對設(shè)備的并發(fā)操作。熟悉所開發(fā)硬件的工作原理,具備ARM硬件接口的基礎(chǔ)知識,熟悉ARM
Cortex-A8處理器s5pv210各資源、掌握Linux設(shè)備驅(qū)動原理框架,熟悉工程中常見Linux高級字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備、USB設(shè)備等驅(qū)動開發(fā),在工作中能獨立勝任底層驅(qū)動開發(fā)。
linux和嵌入式linux
Linux:
Linux是一種自由和開放源碼的類Unix操作系統(tǒng),包含許多不同的Linux版本,這些版本都使用的是Linux內(nèi)核,Linux可以安裝在各種計算機硬件設(shè)備中,比如手機、平板、路由器等。
它能運行主要的Unix工具軟件、應用程序和網(wǎng)絡(luò)協(xié)議,支持32位和64位硬件,Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。
Linux以它的高效性和靈活性著稱,Linux模塊化的設(shè)計結(jié)構(gòu),使得它既能在價格昂貴的工作站上運行,也能夠在廉價的PC機上實現(xiàn)全部的Unix特性,具有多任務、多用戶的能力。
嵌入式Linux:
嵌入式Linux系統(tǒng)就是利用Linux其自身的許多特點,把它應用到嵌入式系統(tǒng)里,還有一些嵌入式操作系統(tǒng),比較著名的有Vxwork、pSOS、Neculeus和Windows
CE。
Linux做嵌入式的優(yōu)勢,首先,Linux是開放源代碼的,不存在黑箱技術(shù),遍布全球的眾多Linux愛好者又是Linux開發(fā)者的強大技術(shù)支持;其次,Linux的內(nèi)核小、效率高,內(nèi)核的更新速度很快;第三,Linux是免費的OS,在價格上極具競爭力。
Linux在快速增長的無線連接應用主場中有一個非常重要的優(yōu)勢,就是有足夠快的開發(fā)速度。這是因為LInux有很多工具,并且Linux為眾多程序員所熟悉。因此,我們要在嵌入式系統(tǒng)中使用Linux操作系統(tǒng)。
學嵌入式linux吧
嵌入式Linux操作系統(tǒng)學習規(guī)劃
ARM+LINUX路線,主攻嵌入式Linux操作系統(tǒng)及其上應用軟件開發(fā)目標:
(1) 掌握主流嵌入式微處理器的結(jié)構(gòu)與原理(初步定為arm9)
(2) 必須掌握一個嵌入式操作系統(tǒng) (初步定為uclinux或linux,版本待定)
(3) 必須熟悉嵌入式軟件開發(fā)流程并至少做一個嵌入式軟件項目。
從事嵌入式軟件開發(fā)的好處是:
(1)目前國內(nèi)外這方面的人都很稀缺。這一領(lǐng)域入門門檻較高,所以非專業(yè)IT人員很難切入這一領(lǐng)域;另一方面,是因為這一領(lǐng)域較新,目前發(fā)展太快,大多數(shù)人無條件接觸。
(2)與企業(yè)計算等應用軟件不同,嵌入式領(lǐng)域人才的工作強度通常低一些(但收入不低)。
(3)哪天若想創(chuàng)業(yè),搞自已的產(chǎn)品,嵌入式不像應用軟件那樣容易被盜版。硬件設(shè)計一般都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設(shè)計軟件就變成自己的產(chǎn)品了。
(4)興趣所在,這是最主要的。
從事嵌入式軟件開發(fā)的缺點是:
(1)入門起點較高,所用到的技術(shù)往往都有一定難度,若軟硬件基礎(chǔ)不好,特別是操作系統(tǒng)級軟件功底不深,則可能不適于此行。
(2)這方面的企業(yè)數(shù)量要遠少于企業(yè)計算類企業(yè)。
(3)有少數(shù)公司經(jīng)常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數(shù)公司也并無此要求,只要有經(jīng)驗即可。
(4)平臺依托強,換平臺比較辛苦。
興趣的由來:
1、成功觀念不同,不虛度此生,就是我的成功。
2、喜歡思考,挑戰(zhàn)邏輯思維。
3、喜歡C
C是一種能發(fā)揮思維極限的語言。關(guān)于C的精神的一些方面可以被概述成短句如下:
相信程序員。
不要阻止程序員做那些需要去做的。
保持語言短小精干。
一種方法做一個操作。
使得它運行的夠快,盡管它并不能保證將是可移植的。
4、喜歡底層開發(fā),討厭vb類開發(fā)工具(并不是說vb不好)。
5、發(fā)展前景好,適合創(chuàng)業(yè),不想自己要死了的時候還是一個工程師。
方法步驟:
1、基礎(chǔ)知識:
目的:能看懂硬件工作原理,但重點在嵌入式軟件,特別是操作系統(tǒng)級軟件,那將是我的優(yōu)勢。
科目:數(shù)字電路、計算機組成原理、嵌入式微處理器結(jié)構(gòu)。
匯編語言、C/C++、編譯原理、離散數(shù)學。
數(shù)據(jù)結(jié)構(gòu)和算法、操作系統(tǒng)、軟件工程、網(wǎng)絡(luò)、數(shù)據(jù)庫。
方法:雖科目眾多,但都是較簡單的基礎(chǔ),且大部分已掌握。不一定全學,可根據(jù)需要選修。
主攻書籍:the c++ programming language(一直沒時間讀)、數(shù)據(jù)結(jié)構(gòu)-C2。
2、學習linux:
目的:深入掌握linux系統(tǒng)。
方法:使用linux—〉linxu系統(tǒng)編程開發(fā)—〉驅(qū)動開發(fā)和分析linux內(nèi)核。先看深,那主講原理??磶妆楹螅辞榫胺治?,對照深看,兩本交叉,深是綱,情是目。剖析則是0.11版,適合學習。最后深入代碼。
主攻書籍:linux內(nèi)核完全剖析、unix環(huán)境高級編程、深入理解linux內(nèi)核、情景分析和源代。
3、學習嵌入式linux:
目的:掌握嵌入式處理器其及系統(tǒng)。
方法:(1)嵌入式微處理器結(jié)構(gòu)與應用:直接arm原理及匯編即可,不要重復x86。
(2)嵌入式操作系統(tǒng)類:ucOS/II簡單,開源,可供入門。而后深入研究uClinux。
(3)必須有塊開發(fā)板(arm9以上),有條件可參加培訓(進步快,能認識些朋友)。
主攻書籍:毛德操的《嵌入式系統(tǒng)》及其他arm9手冊與arm匯編指令等。
4、深入學習:
A、數(shù)字圖像壓縮技術(shù):主要是應掌握MPEG、mp3等編解碼算法和技術(shù)。
B、通信協(xié)議及編程技術(shù):TCP/IP協(xié)議、802.11,Bluetooth,GPRS、G、CDMA等。
:46 回復
122.90.173.* 2樓
C、網(wǎng)絡(luò)與信息安全技術(shù):如加密技術(shù),數(shù)字證書CA等。
D、DSP技術(shù):Digital Signal Process,DSP處理器通過硬件實現(xiàn)數(shù)字信號處理算法。
說明:太多細節(jié)未說明,可根據(jù)實際情況調(diào)整。重點在于1、3,不必完全按照順序作。對于學習c++,理由是c++不只是一種語言,一種工具,她還是一種藝術(shù),一種文化,一種哲學理念、但不是拿來炫耀得東西。對于linux內(nèi)核,學習編程,讀一些優(yōu)秀代碼也是有必要的。
注意: 要學會舉一反多,有強大的基礎(chǔ),很多東西簡單看看就能會。想成為合格的程序員,前提是必須熟練至少一種編程語言,并具有良好的邏輯思維。一定要理論結(jié)合實踐。
不要一味鉆研技術(shù),雖然擠出時間是很難做到的,但還是要留點余地去完善其他的愛好,比如宇宙,素描、機械、管理,心理學、游戲、科幻電影。還有一些不愿意做但必須要做的!
技術(shù)是通過編程編程在編程編出來的。永遠不要夢想一步登天,不要做浮躁的人,不要覺得路途漫上。而是要編程編程在編程,完了在編程,在編程!等機會來了在創(chuàng)業(yè)(不要相信有奇跡發(fā)生,盲目創(chuàng)業(yè)很難成功,即便成功了發(fā)展空間也不一定很大)。
嵌入式書籍推薦
Linux基礎(chǔ)
、《Linux與Unix Shell 編程指南》
C語言基礎(chǔ)
、《C Primer Plus,5th Edition》【美】Stephen Prata著
、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著
、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
、《嵌入式Linux應用程序開發(fā)詳解》
Linux內(nèi)核
、《深入理解Linux內(nèi)核》(第三版)
、《Linux內(nèi)核源代碼情景分析》毛德操 胡希明著
研發(fā)方向
、《UNIX Network Programming》(UNP)
、《TCP/IP詳解》
、《Linux內(nèi)核編程》
、《Linux設(shè)備驅(qū)動開發(fā)》(LDD)
、《Linux高級程序設(shè)計》 楊宗德著
硬件基礎(chǔ)
、《ARM體系結(jié)構(gòu)與編程》杜春雷著
、S3C2410 Datasheet
英語基礎(chǔ)
、《計算機與通信專業(yè)英語》
系統(tǒng)教程
、《嵌入式系統(tǒng)――體系結(jié)構(gòu)、編程與設(shè)計》
、《嵌入式系統(tǒng)――采用公開源代碼和StrongARM/Xscale處理器》毛德操 胡希明著
、《Building Embedded Linux Systems》
、《嵌入式ARM系統(tǒng)原理與實例開發(fā)》 楊宗德著
理論基礎(chǔ)
、《算法導論》
、《數(shù)據(jù)結(jié)構(gòu)(C語言版)》
、《計算機組織與體系結(jié)構(gòu)?性能分析》
、《深入理解計算機系統(tǒng)》【美】Randal E. Bryant David O”Hallaron著
、《操作系統(tǒng):精髓與設(shè)計原理》
、《編譯原理》
、《數(shù)據(jù)通信與計算機網(wǎng)絡(luò)》
、《數(shù)據(jù)壓縮原理與應用》
C語言書籍推薦
. The C programming language 《C程序設(shè)計語言》
. Pointers on C 《C和指針》
. C traps and pitfalls 《C陷阱與缺陷》
. Expert C Lanuage 《專家C編程》
. Writing Clean Code —–Microsoft Techiniques for Developing Bug-free C Programs
《編程精粹–Microsoft 編寫優(yōu)質(zhì)無錯C程序秘訣》
. Programming Embedded Systems in C and C++ 《嵌入式系統(tǒng)編程》
.《C語言嵌入式系統(tǒng)編程修煉》
.《高質(zhì)量C++/C編程指南》林銳
盡可能多的編碼,要學好C,不能只注重C本身。算法,架構(gòu)方式等都很重要。
這里很多書其實是推薦而已,不必太在意,關(guān)鍵還是基礎(chǔ),才是重中之重!??!
為什么一說嵌入式Linux就老是想到“裁剪”、“”這種修飾語呢?如果你這么理解的話,說明,你對嵌入式還是存在一定的誤區(qū)的,對自己知識結(jié)構(gòu)的完善是不利的。。。
什么叫做嵌入式呢?雖然目前沒有很標準的定義,但業(yè)界普遍認為:專門為某個應用場景而實現(xiàn)的計算機系統(tǒng),都叫做嵌入式系統(tǒng)。家里的四口路由器,手機,平板電腦,甚至是PC主板(注意,我說的是主板,不是整個PC)都是嵌入式系統(tǒng)。也可以說,除了你用的PC,工作站,服務器以外,都可以歸納如嵌入式系統(tǒng)的領(lǐng)域。
在嵌入式系統(tǒng)中,有的是有操作系統(tǒng)的,有的是沒有操作系統(tǒng)的。雖然單片機在嵌入式應用中仍舊占據(jù)著很重要的角色和份額,但從軟件工程師的就業(yè)發(fā)展來說,帶有操作系統(tǒng)的嵌入式系統(tǒng)無疑有著更廣的發(fā)展空間。
嵌入式操作系統(tǒng)中,有各種RTOS(最有名的,莫過于VxWorks了),也有一些實時性能不錯的OS(較新的2.6版及向后版本的Linux可以規(guī)劃在這里),還有一些實時性能不怎么樣的OS(2.4版本的Linux內(nèi)核,Windows等可以劃歸在這里)。
所以,根據(jù)應用場景,操作系統(tǒng)是有可能非非非常復雜的。所以,嵌入式Linux未必是“不完整的”“了重大功能的”“簡單化的”Linux。。。
糾正了概念,統(tǒng)一了你我的認識之后,你肯定就不會再問:究竟是學“純”Linux呢,還是學嵌入式Linux呢?這個問題是沒有意義的。其實,無論是內(nèi)核,還是libc庫,還是各種應用程序,PC和嵌入式的知識是共同的,沒有嚴格界限的。嵌入式Linux跟PC上Linux的區(qū)別,更多的在于驅(qū)動程序的選擇,本地編譯還是交叉編譯,UI界面的選擇等方面。它們的本質(zhì)技術(shù),是沒有任何區(qū)別的。
你在嵌入式上可能需要做小量裁剪,你在PC上同樣會做裁剪。這并不意味著要重要功能,因為,你在PC上做的工作,同樣會希望在手機、平板電腦等這些復雜的移動終端上得以實現(xiàn)的~~~
(如果你只是為了實現(xiàn)一個很簡單的功能,那我還是干脆建議你不要學習、使用Linux了)~~
所以,最終的結(jié)論是:如果你能精通Linux,那無論是PC上的Linux,還是嵌入式Linux,那么你都是很精通的。嵌入式和PC只是應用場景不同而已(更多的體現(xiàn)在用戶空間各種程序的區(qū)別)。
如果希望成為一個內(nèi)核開發(fā)者:
如果你對內(nèi)核感興趣的話,可以推薦兩本公認的經(jīng)典書籍:《深入理解Linux內(nèi)核》《LInux設(shè)備驅(qū)動程序》。這兩本,是所有內(nèi)核開發(fā)工作者,讀1遍,10遍,100遍,仍舊會認真讀下去,并嘗試理解每一個字的經(jīng)典中的經(jīng)典。
另外,我個人推薦一本《深入Linux內(nèi)核架構(gòu)》。這本書是一個德國人寫的,對于基礎(chǔ)比較薄弱的,是一個很好的自學教材。
如果看起來感覺還是吃力,建議以《Linux內(nèi)核設(shè)計與實現(xiàn)》作為起步。這本書里沒有講透徹的地方,都可以去參看上面的那三本書。這本書,如果讀起來也比較吃力的話,建議看看《Linux內(nèi)核0.11完全注釋(趙炯)》。如果連這本書都比較吃力的話,我還真沒轍了,建議先看Linux的一些科普文章了。
補充一句:看任何書,永遠都無法替代自己讀內(nèi)核源碼~~~
如果你要搞應用,那么《UNIX環(huán)境高級編程》不可不讀。剩下的,就要看你搞什么應用了。
先學linux,學好這個才有可能去搞嵌入式linux,否則你連內(nèi)核編譯都不會,還怎么精簡啊。
深入淺出吧,其實沒必要給他們分家的,他們的基本命令都差不多的
學習的話,直接先學習虛擬機安裝linux(centos5最簡單的多服務器系統(tǒng))和基本命令并弄懂他的每一步啟動流程,(網(wǎng)上很多基本入門)
其次學習基本的C語言,學習make(makefile書),學習socket(c_socket的書),學習單片機
linux嵌入式項目源碼的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux嵌入式項目源碼,探秘Linux嵌入式項目:揭秘源碼奧秘,嵌入式開發(fā)要學哪些課程,linux和嵌入式linux的信息別忘了在本站進行查找喔。
香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
標題名稱:探秘Linux嵌入式項目:揭秘源碼奧秘(linux嵌入式項目源碼)
URL分享:http://m.5511xx.com/article/cdpdodo.html


咨詢
建站咨詢
