Linux學(xué)習(xí)總結(jié)報(bào)告
一、 嵌入系統(tǒng)應(yīng)用前景
Linux的應(yīng)用領(lǐng)域不斷擴(kuò)展,從最早的Web、FTP、郵件服務(wù)開(kāi)始,逐步擴(kuò)張到個(gè)人桌面應(yīng)用、網(wǎng)絡(luò)安全、電子商務(wù)、遠(yuǎn)程教育、集群計(jì)算、網(wǎng)絡(luò)計(jì)算、嵌入式系統(tǒng)等各個(gè)領(lǐng)域。更是吸引了想IBM、SUN、惠普這樣的IT巨頭積極參與到Linux應(yīng)用的開(kāi)發(fā)和推廣中來(lái)。Linux之前主要應(yīng)用于服務(wù)器及計(jì)算集群,未來(lái)應(yīng)該該在個(gè)人計(jì)算機(jī)上有所發(fā)展,優(yōu)化目前的圖形化界面,以及加快桌應(yīng)用的開(kāi)發(fā),以及在智能終端的應(yīng)用。 首先,微軟不會(huì)甘心讓出市場(chǎng)讓Linux來(lái)壯大,所以Linux必須發(fā)揮其本身的優(yōu)勢(shì),贏得更多的用戶,已達(dá)到其能不斷的開(kāi)發(fā)和更新。再者,由于開(kāi)源軟件的商業(yè)模式及技術(shù)模式?jīng)]有前例可循,注定了Linux的前路不會(huì)是一帆風(fēng)順的。我認(rèn)為,當(dāng)前Linux的發(fā)展主要面臨以下幾個(gè)問(wèn)題:一是Linux企業(yè)眾多但未形成規(guī)模,也還沒(méi)有找到有效的贏利途徑,并且版本繁多,互不兼容,削弱了競(jìng)爭(zhēng)力;二是隨著逐漸流行而引發(fā)的安全問(wèn)題;三是人才不足的隱憂。Linux的最大優(yōu)勢(shì)在于它是開(kāi)源的,也即開(kāi)放的。但出于各自的商業(yè)利益,各企業(yè)分別在其發(fā)行的版本上加載各種不同的功能,彼此之間不兼容。這些不同的版本意味著廠商和用戶測(cè)試的工作量加大,意味著硬件廠商需要為每一個(gè)版本的Linux提供驅(qū)動(dòng)程序……這種情形目前正在削弱整個(gè)Linux的市場(chǎng)競(jìng)爭(zhēng)力。安全方面,隨著Linux越來(lái)越受歡迎,越來(lái)越多針對(duì)Linux的蠕蟲(chóng)、病毒和惡意軟件也會(huì)層出不窮。雖然開(kāi)放源代碼社區(qū)都在及時(shí)響應(yīng)并修補(bǔ)Linux上存在的漏洞,但Linux的非集中管理本質(zhì)特性使Linux升級(jí)的發(fā)布和審查變得非常困難。一旦Linux由于安全問(wèn)題給用戶特別是企業(yè)用戶造成損失,其不良影響及對(duì)用戶信心的打擊是巨大的。 當(dāng)前制約著Linux發(fā)展的還有一個(gè)關(guān)鍵因素,那就是人才。相比前幾年,國(guó)內(nèi)懂Linux的技術(shù)人員已經(jīng)多了很多。但是作為一個(gè)快速發(fā)展的產(chǎn)業(yè),人才的廣度和深度都遠(yuǎn)遠(yuǎn)不夠。能夠?qū)?nèi)核有所研究的人才少之又少,多數(shù)都是一知半解。有限的人才又都集中在Linux廠商內(nèi),系統(tǒng)集成商、代理商、應(yīng)用軟件開(kāi)發(fā)商等擁有的人才更少,制約著完整的Linux產(chǎn)業(yè)鏈的形成
二、 研究方向
嵌入式的發(fā)展方向有很多,門(mén)檻高低不一樣。具體來(lái)說(shuō):
1.單片機(jī):工控程序(不跑os)--入門(mén)容易,無(wú)外乎就是掌握匯編和c,能夠根據(jù)datasheet來(lái)寫(xiě),發(fā)展前景一般,也沒(méi)有太大的技術(shù)難度,除非你在算法上面有優(yōu)勢(shì),比如智能車(chē)會(huì)各種PID,模式識(shí)別上會(huì)神經(jīng)網(wǎng)絡(luò),優(yōu)化上會(huì)遺傳算法等等,但是這些復(fù)雜的控制一般就不會(huì)裸奔了(除非環(huán)境惡劣),肯定是處理器強(qiáng)悍,帶os的;硬件制作--就是數(shù)字電路,涉及單片機(jī)的外設(shè),感覺(jué)難度也不高,據(jù)我說(shuō)知,只會(huì)單片機(jī)無(wú)論硬件還是軟件工資都不高,也沒(méi)有特別大的技術(shù)含量,同時(shí),單片機(jī)更新?lián)Q代特別快,你需要從大量的單片機(jī)中找尋適合產(chǎn)品的,看不同的datasheet。
2.ARM:這個(gè)搞的人很多,軟件上就是1.寫(xiě)底層驅(qū)動(dòng),這個(gè)入門(mén),深入都不容易,需要對(duì)硬件及os有較深的了解,發(fā)展還是很不錯(cuò);2.操作系統(tǒng)-比較復(fù)雜,linux,android等,你看現(xiàn)在很多手機(jī)廠商推出的操作系統(tǒng)也就是修改內(nèi)核,換皮膚,
就業(yè)還是很容易的;3.應(yīng)用程序,就是android開(kāi)發(fā)或者Linux上應(yīng)用開(kāi)發(fā)(QT等),做的人很多,就業(yè)容易待遇也不錯(cuò),需要掌握c++/java。硬件上1.就像手機(jī)一樣在處理器上做整體的電路,比單片機(jī)入門(mén)難的多,做成技術(shù)大牛了不缺錢(qián)。
2.soc,架構(gòu)開(kāi)發(fā)等后面會(huì)提到
3.FPGA:就是硬件編程,入門(mén)很簡(jiǎn)單,做深很難,要對(duì)時(shí)序有非常深的理解和大量的項(xiàng)目開(kāi)發(fā)經(jīng)驗(yàn),就算你做的特別好,前景還是不明確。FPGA近年的一大熱門(mén)就是軟件無(wú)線電,成本還降不下去,同時(shí)AD采樣速度目前不夠,導(dǎo)致FPGA的應(yīng)用有限,一般公司都是把它作為一個(gè)驗(yàn)證工具比如IC設(shè)計(jì)上的驗(yàn)證。只會(huì)FPGA就業(yè)會(huì)很窄,也不理想,建議作為工具學(xué)習(xí)。
4.DSP:就是算法,你需要一個(gè)名牌大學(xué)研究生以上學(xué)歷,同時(shí)在算法和數(shù)學(xué)上有很強(qiáng)的能力。如果做不到,就不用搞了。
5.IC設(shè)計(jì),做微處理器上的soc,前端后端,專(zhuān)用處理器(應(yīng)該也屬于嵌入式領(lǐng)域),入門(mén)難,成為牛人更難,對(duì)計(jì)算機(jī)體系結(jié)構(gòu),微處理器結(jié)構(gòu),集成電路等等有比較深的認(rèn)識(shí),然后項(xiàng)目經(jīng)驗(yàn)大大的有才行。不過(guò)國(guó)內(nèi)行情一般,外企招人少,希望今年開(kāi)始國(guó)家的扶持政策能夠發(fā)揮作用。
6.微處理器體系結(jié)構(gòu):偏理論,偏宏觀,研究生能夠?qū)φ麄€(gè)體系結(jié)構(gòu)有個(gè)比較淺的了解同時(shí)在局部上能夠做一點(diǎn)設(shè)計(jì)工作,博士生能夠?qū)φ麄€(gè)結(jié)構(gòu)有較深的認(rèn)識(shí)在局部上能設(shè)計(jì)。現(xiàn)在搞的多的是高性能體系結(jié)構(gòu),低功耗結(jié)構(gòu),并行開(kāi)發(fā)等等,因?yàn)楣暮筒⑿邢拗屏四壳疤幚砥鞯乃俣龋栽诘凸暮筒⑿猩祥_(kāi)發(fā)有很大的前景,同時(shí)基于神經(jīng)網(wǎng)絡(luò)的架構(gòu)處理器,云計(jì)算處理器等專(zhuān)用處理器也是目前的一個(gè)熱點(diǎn)。發(fā)展前景很好,但是難度不是一般的大,從中國(guó)在架構(gòu)上做出的貢獻(xiàn)在世界上分量很少就可以看出。
三、 系統(tǒng)移植作用
隨著各種芯片技術(shù)的發(fā)展,各種嵌入式產(chǎn)品也如雨后春筍一般地出現(xiàn)了。目前,嵌入式產(chǎn)品應(yīng)用領(lǐng)域涉及移動(dòng)通信、汽車(chē)、醫(yī)療、家電等很多領(lǐng)域。而且,如今的嵌入式硬件的速度和容量越來(lái)越接近于PC,因此在這些嵌入式產(chǎn)品上運(yùn)行操作系統(tǒng)就成為了可能。一直以來(lái),很多企業(yè)花費(fèi)了巨大成本研發(fā)了大量運(yùn)行在PC上的軟件產(chǎn)品。如果將這些優(yōu)秀的軟件應(yīng)用在嵌入式系統(tǒng)中,將會(huì)成為快速開(kāi)發(fā)嵌入式系統(tǒng),降低嵌入式產(chǎn)品開(kāi)發(fā)成本,提高軟件穩(wěn)定性和安全性的重要途徑。
四、 就業(yè)領(lǐng)域
嵌入式開(kāi)發(fā)的門(mén)檻相對(duì)較高,對(duì)程序員的要求一般都是對(duì)底層感興趣,學(xué)習(xí)能力、動(dòng)手能力要強(qiáng),對(duì)問(wèn)題能夠從全局和細(xì)節(jié)去把握,有很強(qiáng)的系統(tǒng)分析和設(shè)計(jì)能力。從工程師起步,一般有幾個(gè)發(fā)展方向,一個(gè)是成為技術(shù)方面的核心,領(lǐng)域內(nèi)的專(zhuān)家;另一個(gè)是從項(xiàng)目中鍛煉起來(lái),成為項(xiàng)目主管或是管理型人才;再有就是利用自己的技術(shù)及行業(yè)經(jīng)驗(yàn)去創(chuàng)業(yè)。
硬件和軟件的發(fā)展方向是不同的。說(shuō)說(shuō)軟件需要學(xué)習(xí)的知識(shí)。
雖然說(shuō)搞嵌入式軟件更多時(shí)候是在實(shí)際的工作中學(xué)習(xí)的,但一些重要的基礎(chǔ)知識(shí)不可或缺。
1. 計(jì)算機(jī)組成/微機(jī)原理
主要是為了了解微型計(jì)算機(jī)的硬件工作原理,明白CPU、總線、I/O、存儲(chǔ)器等一些關(guān)鍵結(jié)構(gòu)是怎么工作的,雖然是很枯燥的知識(shí),但是對(duì)熟悉外圍設(shè)備硬件工作方式,及操作系統(tǒng),軟件架構(gòu)的設(shè)計(jì)及優(yōu)化相當(dāng)關(guān)鍵。
2. 操作系統(tǒng)
嵌入式產(chǎn)品應(yīng)用比較廣泛的是Linux和WinCE。但操作系統(tǒng)的內(nèi)部設(shè)計(jì)原理都是殊途同歸。首先要去學(xué)習(xí)的是操作系統(tǒng)原理,去了解進(jìn)程通信、內(nèi)存管理、文件系統(tǒng)等幾個(gè)重要的部分,因?yàn)檫@些在軟件開(kāi)發(fā)尤其是內(nèi)核驅(qū)動(dòng)開(kāi)發(fā)時(shí)會(huì)用到。接下來(lái)可以去熟悉至少一種主流的操作系統(tǒng),Linux是一個(gè)很好的選擇,去了解它的內(nèi)核架構(gòu),設(shè)備驅(qū)動(dòng)架構(gòu),如何去編譯,裁剪,編寫(xiě)應(yīng)用程序,以及如何使用在具體的嵌入式產(chǎn)品上。
3. 數(shù)字電路
學(xué)習(xí)這方面的知識(shí)主要是了解一些基本的電路知識(shí),如門(mén)電路、邏輯電路、存儲(chǔ)器、寄存器,為了更好的理解嵌入式芯片,存儲(chǔ)器,外圍設(shè)備等硬件的設(shè)計(jì),但往往在軟件開(kāi)發(fā)中未必能用的到。因?yàn)榇蟛糠钟布继峁┝撕芡暾能浖涌凇?/p>
4. 編程語(yǔ)言:C語(yǔ)言和匯編
對(duì)于C語(yǔ)言本身的基礎(chǔ)來(lái)說(shuō),無(wú)非是把結(jié)構(gòu)化,函數(shù),數(shù)組,指針弄熟,但是嵌入式開(kāi)發(fā)對(duì)C語(yǔ)言應(yīng)用的要求會(huì)更高。要對(duì)內(nèi)存分配,文件訪問(wèn),寄存器訪問(wèn),預(yù)處理指令,中斷處理程序等等相當(dāng)熟悉,這些都是在使用中要注意的細(xì)節(jié)問(wèn)題。C語(yǔ)言對(duì)程序的優(yōu)化也很重要,而這些往往是需要從全局去考慮。匯編一般是和處理器的指令集相關(guān)的,可以更好的去理解處理器的工作原理,往往是用在一些需要效率的地方,如系統(tǒng)的初始化。
5. 數(shù)據(jù)結(jié)構(gòu)和算法
數(shù)據(jù)結(jié)構(gòu)在嵌入式開(kāi)發(fā)中也很重要,比如說(shuō)操作系統(tǒng)里的很多實(shí)現(xiàn)都用到了具體的算法。基本的數(shù)據(jù)結(jié)構(gòu)需要掌握,如各種鏈表,樹(shù),圖等等;而算法的學(xué)習(xí)需要數(shù)學(xué)知識(shí)作為鋪墊,用計(jì)算機(jī)語(yǔ)言去實(shí)現(xiàn)。對(duì)于軟件從業(yè)人員來(lái)說(shuō),算法終究是一個(gè)工具,在實(shí)際應(yīng)用時(shí)再深入挖掘也可。
6. 軟件工程/軟件測(cè)試/項(xiàng)目管理基礎(chǔ)
這些是軟件開(kāi)發(fā)人員的必備知識(shí)。
7. 開(kāi)發(fā)平臺(tái)
嵌入式的開(kāi)發(fā)平臺(tái)不局限于一種操作系統(tǒng),因此要熟悉各種操作系統(tǒng)下的命令、編輯器及開(kāi)發(fā)工具,這一點(diǎn)往往被很多人忽視。舉個(gè)例子,Linux下的程序員開(kāi)發(fā)環(huán)境往往是按自己的習(xí)慣搭建,熟練掌握一種編輯器如Vim/Emacs可以大幅度提高工作效率。磨刀不誤砍柴工。
嵌入式領(lǐng)域的方向是很多的,它所應(yīng)用到的行業(yè)范圍也很廣。因此除了這些基礎(chǔ)的知識(shí)以外,在具體的應(yīng)用中可能還需要一些其它的知識(shí),這些知識(shí)的每一種都可以研究的很深,舉幾個(gè)例子。
1. 內(nèi)核,驅(qū)動(dòng)及中間件
內(nèi)核開(kāi)發(fā)和驅(qū)動(dòng)本身就是一個(gè)方向,驅(qū)動(dòng)和硬件接口相關(guān),而內(nèi)核的修改和移植更是需要對(duì)OS有很深的理解。至于中間件,一般是基于OS或存在于OS和應(yīng)用程序之間的庫(kù),最典型的就是基于Linux的Android。
2. 通信協(xié)議
通信協(xié)議有很多種,經(jīng)常用到的有網(wǎng)絡(luò)通信協(xié)議,無(wú)線通信協(xié)議,串口/USB通信協(xié)議等等。
3. 音視頻技術(shù)
牽涉到音頻視頻處理,壓縮,編解碼等等。
4. 信息安全
如加密技術(shù),身份認(rèn)證,數(shù)字證書(shū)等等。
5. 行業(yè)知識(shí)
和具體行業(yè)或領(lǐng)域相關(guān)的知識(shí),如通訊、工控、電子等等
五、 學(xué)習(xí)心得
本學(xué)期對(duì)于Linux系統(tǒng)的學(xué)習(xí),讓我對(duì)Linux有了一定的了解。我知道了Linux只是個(gè)內(nèi)核?,F(xiàn)在的Linux操作系統(tǒng),都是用這么一個(gè)內(nèi)核,加上其它的應(yīng)用程序構(gòu)成的。Linux最大的特點(diǎn)就是其開(kāi)源性,這一點(diǎn)是十分難得的,這也是它能夠存在到現(xiàn)在的原因之一,使其在金融、安全等部門(mén)有很重要的應(yīng)用。 學(xué)習(xí)Linux,首先我們應(yīng)該從基礎(chǔ)開(kāi)始學(xué)起。對(duì)Linux操作系統(tǒng)的功能、版本、特點(diǎn),以及Linux系統(tǒng)安裝和圖形環(huán)境有較全面的了解。
Linux命令是必須學(xué)習(xí)的。雖然Linux桌面應(yīng)用發(fā)展很快,但是命令在Linux中依然有很強(qiáng)的生命力。Linux是一個(gè)命令行組成的操作系統(tǒng),精髓在命令行,學(xué)習(xí)如何在安全的環(huán)境中執(zhí)行系統(tǒng)命令,包括有關(guān)文件、目錄、文件系統(tǒng)、進(jìn)程等概念,如何使用相應(yīng)的命令對(duì)文件、目錄、進(jìn)程等進(jìn)行管理,了解遇到問(wèn)題時(shí),如何找到幫助信息等。Linux常用命令,有echo 命令、date命令、passwd命令、file命令、ls命令、touch命令等。 要明白學(xué)好Linux不是一件一蹴而就的事,一定要能堅(jiān)持使用它,特別是在學(xué)習(xí)初期。要增加自己的Linux技能,只有通過(guò)實(shí)踐來(lái)實(shí)現(xiàn)。只要多動(dòng)手,就一定會(huì)有收獲。遇到問(wèn)題時(shí)要自己去尋找答案,在尋找答案的過(guò)程中,會(huì)學(xué)到更多知識(shí)。 應(yīng)該說(shuō)目前我們對(duì)于Linux的學(xué)習(xí)只是入門(mén)而已,學(xué)習(xí)Linux是一個(gè)長(zhǎng)期的過(guò)程,很耗時(shí)間。作為電子信息工程專(zhuān)業(yè)的學(xué)生,對(duì)我們來(lái)說(shuō),Linux將來(lái)主要應(yīng)用于嵌入式Linux系統(tǒng)的開(kāi)發(fā),這非一日之功,我們還需要不斷深入地學(xué)習(xí)它。
[Linux學(xué)習(xí)總結(jié)報(bào)告]相關(guān)文章: