linux軟體工程師必備知識知識

第一部分:Linux平臺搭建與環境熟悉瞭解linux系統;區分各種版本的Linux系統,以便於拓展 Linux視野。1、Linux 簡介;2、Linux 系統的主要特點;3、Linux 的組成;4、主要的 Linux 版本;5、嵌入式 Linux簡介與發展

第二部分:虛擬機器安裝和LINUX系統安裝1、虛擬機器安裝;2、Linux系統的安裝;3、Linux系統的常用軟體的安裝;4、Linux快速入門5、 熟悉運用 Linux環境下,常用命令的操作與系統設定,如常用的 Shell;掌握基本的Shell 應用

第三部分:嵌入式LINUX環境搭建1、 建立嵌入式 Linux開發環境2、 熟悉嵌入式開發平臺3、 嵌入式 Linux開發工具4、 Linux下的除錯技巧5、 MAKE工程管理器6、 硬體環境的搭建;arm-linux-gcc與 gcc安裝配置

第四部分:U-Boot瞭解 U-Boot 的作用及工作流程;瞭解Bootloader 的程式碼結構、編譯過程;移植U-Boot;掌握常用的U-Boot命令。1、 Bootloader介紹2、 u-boot工程介紹3、 u-boot的編譯使用4、 u-boot原始碼分析5、 u-boot資源分配6、 配置編譯u-boot7、 u-boot移植過程8、 u-boot常用命令操作9、 新增u-boot新命令10、設定u-boot環境變數11、 u-boot驅動新增如網絡卡:DM9000

第五部分:LINUX核心移植熟悉核心的原碼結構和kbuild Makefile語法;掌握和核心、驅動模組編譯相關的原理及方法。1、Linux核心介紹2、Linux核心特點3、Linux核心原始碼結構4、Linux核心選項解析5、Linux核心編譯連結6、核心模組編譯、使用方法

第六部分:LINUX根檔案系統1、busybox 包移植、編譯2、Linux跟檔案系統製作過程3、根檔案系統介紹4。 nfs檔案伺服器系統搭建

第七部分:LINUX驅動開發驅動開發是嵌入式Linux開發難度最高的內容,也是目前嵌入式行業最緊缺的人才之一。本課程介紹嵌入式Linux驅動開發相關概念及開發流程,瞭解驅動開發的關鍵技術點,重點講解嵌入式Linux下常用介面驅動的編寫方法,包括1、字元型LED驅動開發(GPIO口驅動)2、按鍵驅動開發(中斷驅動,在驅動中中斷程式的編寫,訊息佇列的應用3、ADC驅動開發4、網絡卡驅動開發5、串列埠驅動開發6、液晶屏(TFT彩屏驅動開發7、觸控式螢幕驅動+tslib(中間外掛移植與設定),8、USB驅動開發+USB無線網絡卡移植9、IIS驅動開發+maplay移植與應用(mp3播放)+mplayer移植與應用(影片播放Mp4/廣告機等播放)10、SD驅動開發11、RTC驅動開發12、電源管理方法

第八部分:LINUX應用學習嵌入式Linux應用開發和系統開發是嵌入式Linux中最重要的一部分,也是企業人才需求最廣的一部分。主要目標是精通嵌入式Linux下的程式設計,熟練掌握嵌入式Linux的開發環境、系統程式設計以及網路程式設計,熟悉C++、QT程式設計並且深刻體會整個嵌入式Linux專案開發流程,強化學員對Linux應用開發的能力。1、Linux系統中的程序的概念,在應用程式中執行緒與父子程序的建立與應用2、執行緒之間、程序之間的通訊3、程序間通訊基本概念4、管道(PIPE)5、訊號(SIGNAL)6、記憶體對映(MAPPED MEMORY)7、訊息佇列(MESSAGE QUEUE)8、訊號量(SEMAPHORE)9、共享記憶體(SHARE MEMORY)@10、tcPip協議在應用程式中的程式設計開發(SOCKET套接字程式設計開發)10。1。 ISO/OSI七層協議模型與IP網路四層模式10。2。TCP/IP協議簇10。3。 基於嵌入式Linux的TCP/IP網路結構10。4。 基於嵌入式Linux的SOCKET程式設計10。5。UDP與TCP的區別10。6。 UDP SERVER-CLIENT關係程11、檔案讀寫與儲存

第九部分:QT移植與開發瞭解嵌入式Linux下的幾種常見GUI及其特點,重點能掌握QT的有關內容,具備QT程式設計能力。瞭解嵌入式資料庫的配置與開發1 、嵌入式Linux GUI介紹2、嵌入式QT開發包移植3、QT介紹及其訊號插槽機制4、 QT圖形介面程式設計技術5、QT應用程式與Linux驅動的銜接6、 QT在實際專案中具體應用

第十部分:無線通訊應用1、無線wifi模組應用2、3G模組應用

第十一分佈:嵌入式系統應用程式,驅動程式除錯1、Linux基本工具除錯使用。GDB,insight除錯等2、Linux應用程式的程式設計3、嵌入式產品程式打包與釋出

第十二部分:嵌入式專案綜合除錯,產品釋出瞭解真實專案的開發流程,掌握如何將所學知識應用到專案開發中。將模擬真實專案的管理過程,培養學員專案團隊協同開發能力,專案文件編寫能力和新知識的學習能力,為下一步就業做好知識上和心理上的充分準備

嵌入式LININX開發第一學習階段,主要打好基礎,學好C程式設計,Linux系統程式設計。1、C語言程式設計基礎2、嵌入式開發基礎:Linux概述安裝,shell命令,vim編輯器,GCC,GDB,Makefile,交叉開發環境構建3、嵌入式Linux系統程式設計:shell程式設計,檔案程式設計,串列埠程式設計,程序程式設計,執行緒程式設計,網路程式設計4、嵌入式專案開發:資料採集控制系統,串列埠伺服器

嵌入式LININX開發第二學習階段,掌握ARM彙編程式設計,驅動程式設計。1、ARM體系結構:ARM體系,ARM指令,Thumb指令,彙編程式設計,邏輯程式開發2、Linux核心移植:bootloader,核心配置,檔案系統3、驅動程式開發:驅動架構模型,字元裝置驅動,塊裝置驅動,網路驅動4、嵌入式專案開發:智慧家居系統,影片監控系統

嵌入式LININX開發第三學習階段,掌握C++面向物件程式設計,Qt程式設計。1、C++語言程式設計基礎2、QT程式設計開發:QT開發基礎,QT佈局與控制元件,QT繪圖,QT事件,QT網路通訊,QT資料庫,QT移植3、嵌入式專案開發:車載監控管理系統,工業能源管理系統

嵌入式設計應具備的基本技能1、Linux 基礎安裝Linux作業系統Linux檔案系統Linux常用命令Linux啟動過程詳解熟悉Linux服務能夠獨立安裝Linux作業系統,能夠熟練使用Linux系統的基本命令認識Linux系統的常用服務安裝Linux作業系統Linux基本命令實踐設定Linux環境變數定製Linux的服務Shell程式設計基礎使用vi編輯檔案使用Emacs編輯檔案使用其他編輯器

2、Shell 程式設計基礎Shell簡介認識後臺程式Bash程式設計熟悉Linux系統下的編輯環境熟悉Linux下的各種Shell熟練進行shell程式設計熟悉vi基本操作熟悉Emacs的基本操作比較不同shell的區別編寫一個測試伺服器是否連通的shell指令碼程式編寫一個檢視程序是否存在的shell指令碼程式編寫一個帶有迴圈語句的shell指令碼程式

3、Linux 下的 C 程式設計基礎linux c語言環境概述Gcc使用方法Gdb除錯技術AutoconfAutomake Makefile 程式碼最佳化熟悉Linux系統下的開發環境熟悉Gcc編譯器熟悉Makefile規則編寫Hello,World程式使用 make命令編譯程式編寫帶有一個迴圈的程式除錯一個有問題的程式

4、嵌入式系統開發基礎嵌入式系統概述交叉編譯配置TFTP服務配置NFS服務下載Bootloader和核心嵌入式Linux應用軟體開發流程熟悉嵌入式系統概念以及開發流程建立嵌入式系統開發環境製作cross_gcc工具鏈編譯並下載U-boot編譯並下載Linux核心編譯並下載Linux應用程式

5、嵌入式系統移植Linux核心程式碼平臺相關程式碼分析ARM平臺介紹平臺移植的關鍵技術移植Linux核心到 ARM平臺瞭解移植的概念能夠移植Linux核心移植Linux2。6核心到ARM9開發板

6、嵌入式 Linux 下串列埠通訊序列I/O的基本概念嵌入式Linux應用軟體開發流程Linux系統的檔案和裝置與檔案相關的系統呼叫配置超級終端和MiniCOM能夠熟悉進行串列埠通訊熟悉檔案I/O編寫串列埠通訊程式編寫多串列埠通訊程式

7、嵌入式系統中多程序程式設計Linux系統程序概述嵌入式系統的程序特點程序操作守護程序相關的系統呼叫瞭解Linux系統中程序的概念能夠編寫多程序程式編寫多程序程式編寫一個守護程序程式sleep系統呼叫任務管理同步與通訊Linux任務概述任務排程管道 訊號 共享記憶體 任務管理 API瞭解Linux系統任務管理機制熟悉程序間通訊的幾種方式熟悉嵌入式Linux中的任務間同步與通訊編寫一個簡單的管道程式實現檔案傳輸編寫一個使用共享記憶體的程式

8、嵌入式系統中多執行緒程式設計執行緒的基礎知識多執行緒程式設計方法執行緒應用中的同步問題了解執行緒的概念能夠編寫簡單的多執行緒程式編寫一個多執行緒程式

9、嵌入式 Linux 網路程式設計網路基礎知識嵌入式Linux中TCP/IP網路結構socket 程式設計常用 API函式分析Ping命令的實現基本UDP套介面程式設計許可證管理 PPP協議GPRS瞭解嵌入式Linux網路體系結構能夠進行嵌入式Linux環境下的socket 程式設計 熟悉UDP協議、PPP協議熟悉GPRS使用socket 編寫代理伺服器使用socket 編寫路由器編寫許可證伺服器指出TCP和UDP的優缺點編寫一個web伺服器編寫一個執行在 ARM平臺的網路播放器

10、GUI 程式開發GUI基礎嵌入式系統GUI型別編譯QT進行QT開發熟悉嵌入式系統常用的GUI能夠進行QT程式設計使用QT編寫“Hello,World”程式除錯一個加入訊號/槽的例項透過過載QWidget 類方法處理事件

11、Linux 字元裝置驅動程式裝置驅動程式基礎知識Linux系統的模組字元裝置驅動分析 fs_operation結構載入驅動程式瞭解裝置驅動程式的概念瞭解Linux字元裝置驅動程式結構能夠編寫字元裝置驅動程式編寫Skull驅動編寫鍵盤驅動編寫I/O驅動分析一個看門狗驅動程式對比Linux2。6核心與2。4核心中字元裝置驅動的不同Linux塊裝置驅動程式塊裝置驅動程式工作原理典型的塊裝置驅動程式分析塊裝置的讀寫請求隊列了解Linux塊裝置驅動程式結構能夠編寫簡單的塊裝置驅動程式比較字元裝置與塊裝置的異同編寫MMC卡驅動程式分析一個檔案系統 對比Linux2。6核心與2。4核心中塊裝置驅動的不同

12、檔案系統虛擬檔案系統檔案系統的建立ramfs記憶體檔案系統proc檔案系統devfs 檔案系統MTD技術簡介MTD塊裝置初始化MTD塊裝置的讀寫操作了解Linux系統的檔案系統瞭解嵌入式Linux的檔案系統瞭解MTD技術 能夠編寫簡單的檔案系統為ARM9開發板新增 MTD支援移植JFFS2檔案系統透過proc檔案系統修改作業系統引數分析romfs 檔案系統原始碼建立一個cramfs 檔案系統