九九範文幫

位置:首頁 > 工作總結 > 學習總結

Linux學習總結報告

一、 嵌入系統應用前景

Linux學習總結報告

Linux的應用領域不斷擴展,從最早的Web、FTP、郵件服務開始,逐步擴張到個人桌面應用、網絡安全、電子商務、遠程教育、集羣計算、網絡計算、嵌入式系統等各個領域。更是吸引了想IBM、SUN、惠普這樣的IT巨頭積極參與到Linux應用的開發和推廣中來。Linux之前主要應用於服務器及計算集羣,未來應該該在個人計算機上有所發展,優化目前的圖形化界面,以及加快桌應用的開發,以及在智能終端的應用。 首先,微軟不會甘心讓出市場讓Linux來壯大,所以Linux必須發揮其本身的優勢,贏得更多的用户,已達到其能不斷的開發和更新。再者,由於開源軟件的商業模式及技術模式沒有前例可循,註定了Linux的前路不會是一帆風順的。我認為,當前Linux的發展主要面臨以下幾個問題:一是Linux企業眾多但未形成規模,也還沒有找到有效的贏利途徑,並且版本繁多,互不兼容,削弱了競爭力;二是隨着逐漸流行而引發的安全問題;三是人才不足的隱憂。Linux的最大優勢在於它是開源的,也即開放的。但出於各自的商業利益,各企業分別在其發行的版本上加載各種不同的功能,彼此之間不兼容。這些不同的版本意味着廠商和用户測試的工作量加大,意味着硬件廠商需要為每一個版本的Linux提供驅動程序……這種情形目前正在削弱整個Linux的市場競爭力。安全方面,隨着Linux越來越受歡迎,越來越多針對Linux的蠕蟲、病毒和惡意軟件也會層出不窮。雖然開放源代碼社區都在及時響應並修補Linux上存在的漏洞,但Linux的非集中管理本質特性使Linux升級的發佈和審查變得非常困難。一旦Linux由於安全問題給用户特別是企業用户造成損失,其不良影響及對用户信心的打擊是巨大的。 當前制約着Linux發展的還有一個關鍵因素,那就是人才。相比前幾年,國內懂Linux的技術人員已經多了很多。但是作為一個快速發展的產業,人才的廣度和深度都遠遠不夠。能夠對內核有所研究的人才少之又少,多數都是一知半解。有限的人才又都集中在Linux廠商內,系統集成商、代理商、應用軟件開發商等擁有的人才更少,制約着完整的Linux產業鏈的形成

二、 研究方向

嵌入式的發展方向有很多,門檻高低不一樣。具體來説:

1.單片機:工控程序(不跑os)--入門容易,無外乎就是掌握彙編和c,能夠根據datasheet來寫,發展前景一般,也沒有太大的技術難度,除非你在算法上面有優勢,比如智能車會各種PID,模式識別上會神經網絡,優化上會遺傳算法等等,但是這些複雜的控制一般就不會裸奔了(除非環境惡劣),肯定是處理器強悍,帶os的;硬件製作--就是數字電路,涉及單片機的外設,感覺難度也不高,據我説知,只會單片機無論硬件還是軟件工資都不高,也沒有特別大的技術含量,同時,單片機更新換代特別快,你需要從大量的單片機中找尋適合產品的,看不同的datasheet。

:這個搞的人很多,軟件上就是1.寫底層驅動,這個入門,深入都不容易,需要對硬件及os有較深的瞭解,發展還是很不錯;2.操作系統-比較複雜,linux,android等,你看現在很多手機廠商推出的操作系統也就是修改內核,換皮膚,

就業還是很容易的;3.應用程序,就是android開發或者Linux上應用開發(QT等),做的人很多,就業容易待遇也不錯,需要掌握c++/java。硬件上1.就像手機一樣在處理器上做整體的電路,比單片機入門難的多,做成技術大牛了不缺錢。

,架構開發等後面會提到

:就是硬件編程,入門很簡單,做深很難,要對時序有非常深的理解和大量的項目開發經驗,就算你做的特別好,前景還是不明確。FPGA近年的一大熱門就是軟件無線電,成本還降不下去,同時AD採樣速度目前不夠,導致FPGA的應用有限,一般公司都是把它作為一個驗證工具比如IC設計上的驗證。只會FPGA就業會很窄,也不理想,建議作為工具學習。

:就是算法,你需要一個名牌大學研究生以上學歷,同時在算法和數學上有很強的能力。如果做不到,就不用搞了。

設計,做微處理器上的soc,前端後端,專用處理器(應該也屬於嵌入式領域),入門難,成為牛人更難,對計算機體系結構,微處理器結構,集成電路等等有比較深的認識,然後項目經驗大大的有才行。不過國內行情一般,外企招人少,希望今年開始國家的扶持政策能夠發揮作用。

6.微處理器體系結構:偏理論,偏宏觀,研究生能夠對整個體系結構有個比較淺的瞭解同時在局部上能夠做一點設計工作,博士生能夠對整個結構有較深的認識在局部上能設計。現在搞的多的是高性能體系結構,低功耗結構,並行開發等等,因為功耗和並行限制了目前處理器的速度,所以在低功耗和並行上開發有很大的前景,同時基於神經網絡的架構處理器,雲計算處理器等專用處理器也是目前的一個熱點。發展前景很好,但是難度不是一般的大,從中國在架構上做出的貢獻在世界上分量很少就可以看出。

三、 系統移植作用

隨着各種芯片技術的發展,各種嵌入式產品也如雨後春筍一般地出現了。目前,嵌入式產品應用領域涉及移動通信、汽車、醫療、家電等很多領域。而且,如今的嵌入式硬件的速度和容量越來越接近於PC,因此在這些嵌入式產品上運行操作系統就成為了可能。一直以來,很多企業花費了巨大成本研發了大量運行在PC上的軟件產品。如果將這些優秀的軟件應用在嵌入式系統中,將會成為快速開發嵌入式系統,降低嵌入式產品開發成本,提高軟件穩定性和安全性的重要途徑。

四、 就業領域

嵌入式開發的門檻相對較高,對程序員的要求一般都是對底層感興趣,學習能力、動手能力要強,對問題能夠從全局和細節去把握,有很強的系統分析和設計能力。從工程師起步,一般有幾個發展方向,一個是成為技術方面的核心,領域內的專家;另一個是從項目中鍛鍊起來,成為項目主管或是管理型人才;再有就是利用自己的技術及行業經驗去創業。

硬件和軟件的發展方向是不同的。説説軟件需要學習的知識。

雖然説搞嵌入式軟件更多時候是在實際的工作中學習的,但一些重要的基礎知識不可或缺。

1. 計算機組成/微機原理

主要是為了瞭解微型計算機的硬件工作原理,明白CPU、總線、I/O、存儲器等一些關鍵結構是怎麼工作的,雖然是很枯燥的知識,但是對熟悉外圍設備硬件工作方式,及操作系統,軟件架構的設計及優化相當關鍵。

2. 操作系統

嵌入式產品應用比較廣泛的是Linux和WinCE。但操作系統的內部設計原理都是殊途同歸。首先要去學習的是操作系統原理,去了解進程通信、內存管理、文件系統等幾個重要的部分,因為這些在軟件開發尤其是內核驅動開發時會用到。接下來可以去熟悉至少一種主流的操作系統,Linux是一個很好的選擇,去了解它的內核架構,設備驅動架構,如何去編譯,裁剪,編寫應用程序,以及如何使用在具體的嵌入式產品上。

3. 數字電路

學習這方面的知識主要是瞭解一些基本的電路知識,如門電路、邏輯電路、存儲器、寄存器,為了更好的理解嵌入式芯片,存儲器,外圍設備等硬件的設計,但往往在軟件開發中未必能用的到。因為大部分硬件都提供了很完整的軟件接口。

4. 編程語言:C語言和彙編

對於C語言本身的基礎來説,無非是把結構化,函數,數組,指針弄熟,但是嵌入式開發對C語言應用的要求會更高。要對內存分配,文件訪問,寄存器訪問,預處理指令,中斷處理程序等等相當熟悉,這些都是在使用中要注意的細節問題。C語言對程序的優化也很重要,而這些往往是需要從全局去考慮。彙編一般是和處理器的指令集相關的,可以更好的去理解處理器的工作原理,往往是用在一些需要效率的地方,如系統的初始化。

5. 數據結構和算法

數據結構在嵌入式開發中也很重要,比如説操作系統裏的很多實現都用到了具體的算法。基本的數據結構需要掌握,如各種鏈表,樹,圖等等;而算法的學習需要數學知識作為鋪墊,用計算機語言去實現。對於軟件從業人員來説,算法終究是一個工具,在實際應用時再深入挖掘也可。

6. 軟件工程/軟件測試/項目管理基礎

這些是軟件開發人員的必備知識。

7. 開發平台

嵌入式的開發平台不侷限於一種操作系統,因此要熟悉各種操作系統下的命令、編輯器及開發工具,這一點往往被很多人忽視。舉個例子,Linux下的程序員開發環境往往是按自己的習慣搭建,熟練掌握一種編輯器如Vim/Emacs可以大幅度提高工作效率。磨刀不誤砍柴工。

嵌入式領域的方向是很多的,它所應用到的行業範圍也很廣。因此除了這些基礎的知識以外,在具體的應用中可能還需要一些其它的知識,這些知識的每一種都可以研究的很深,舉幾個例子。

1. 內核,驅動及中間件

內核開發和驅動本身就是一個方向,驅動和硬件接口相關,而內核的修改和移植更是需要對OS有很深的理解。至於中間件,一般是基於OS或存在於OS和應用程序之間的庫,最典型的就是基於Linux的Android。

2. 通信協議

通信協議有很多種,經常用到的有網絡通信協議,無線通信協議,串口/USB通信協議等等。

3. 音視頻技術

牽涉到音頻視頻處理,壓縮,編解碼等等。

4. 信息安全

如加密技術,身份認證,數字證書等等。

5. 行業知識

和具體行業或領域相關的知識,如通訊、工控、電子等等

五、 學習心得

本學期對於Linux系統的學習,讓我對Linux有了一定的瞭解。我知道了Linux只是個內核。現在的Linux操作系統,都是用這麼一個內核,加上其它的應用程序構成的。Linux最大的特點就是其開源性,這一點是十分難得的,這也是它能夠存在到現在的原因之一,使其在金融、安全等部門有很重要的應用。 學習Linux,首先我們應該從基礎開始學起。對Linux操作系統的功能、版本、特點,以及Linux系統安裝和圖形環境有較全面的瞭解。

Linux命令是必須學習的。雖然Linux桌面應用發展很快,但是命令在Linux中依然有很強的生命力。Linux是一個命令行組成的操作系統,精髓在命令行,學習如何在安全的環境中執行系統命令,包括有關文件、目錄、文件系統、進程等概念,如何使用相應的命令對文件、目錄、進程等進行管理,瞭解遇到問題時,如何找到幫助信息等。Linux常用命令,有echo 命令、date命令、passwd命令、file命令、ls命令、touch命令等。 要明白學好Linux不是一件一蹴而就的事,一定要能堅持使用它,特別是在學習初期。要增加自己的Linux技能,只有通過實踐來實現。只要多動手,就一定會有收穫。遇到問題時要自己去尋找答案,在尋找答案的過程中,會學到更多知識。 應該説目前我們對於Linux的學習只是入門而已,學習Linux是一個長期的過程,很耗時間。作為電子信息工程專業的學生,對我們來説,Linux將來主要應用於嵌入式Linux系統的開發,這非一日之功,我們還需要不斷深入地學習它。