網站首頁 工作範例 辦公範例 個人範例 黨團範例 簡歷範例 學生範例 其他範例 專題範例

Linux學習總結報告

欄目: 學習總結 / 釋出於: / 人氣:2.23K

一、 嵌入系統應用前景

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系統的開發,這非一日之功,我們還需要不斷深入地學習它。