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

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

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


咨詢
建站咨詢
