嵌入式Linux軟體開發從入門到精通

基本介紹

內容簡介

《嵌入式Linux軟體開發從入門到精通》主要面向對嵌入式Linux套用軟體開發感興趣的初學者,或需要進一步提升技能的開發者,也可作為高等院校計算機類、電子電氣類、控制類專業學生學習嵌入式Linux套用開發的教材。

作者簡介

彭文波,從事網際網路產品工作,曾在省級電子商務認證中心從事安全開發工作,曾就職於多家專業網管軟體公司,先後參與了電子商務認證系統、行動網路管理系統等產品的開發。呂雪峰,華中科技大學控制工程與控制理論專業碩士,資深軟體工程師,國船電氣(武漢)有限公司軟體技術總監。是目前國內對WinPcap進行徹底分析研究的先驅。活躍於51 CTO、ChinaUnix、CSDN等社區。對WinPcap與網路分析具有深入的理解。在《計算機套用》等學術期刊上發表核心論文多篇。尤精於嵌入式Linux。

圖書目錄

第1章體驗嵌入式系統的魅力
1.1嵌入式系統的定義
1.2嵌入式系統的歷史與現狀
1.2.1無作業系統階段
1.2.2簡單作業系統階段
1.2.3實時作業系統階段
1.2.4面向Internet階段
1.3嵌入式與非嵌入式的區別
1.4從事嵌入式軟體開發的前景
1.4.1優勢
1.4.2從事嵌入式軟體開發的缺點
1.4.3技術基本要求
1.5嵌入式系統的體系結構
1.5.1嵌入式處理器
1.5.2嵌入式外圍設備
1.5.3嵌入式作業系統
1.5.4嵌入式套用軟體
1.6ARM
1.7延伸閱讀:嵌入式系統面臨的關鍵問題
1.8小結
第2章嵌入式Linux的前世今生
2.1嵌入式Linux簡介
2.1.1嵌入式Linux的優勢
2.1.2嵌入式Linux面臨的挑戰
2.1.3發展前景
2.1.4Android
2.2嵌入式Linux系統的軟體組成
2.2.1引導載入程式
2.2.2Linux核心
2.2.3檔案系統
2.2.4用戶應用程式
2.3嵌入式系統軟體研發的關鍵技術
2.3.1開發流程
2.3.2交叉編譯和連結
2.3.3交叉調試
2.3.4系統測試
2.4系統啟動過程
2.5延伸閱讀:開源、GPL與POSIX簡介
2.5.1開源
2.5.2GPL
2.5.3POSIX
2.6小結
第3章零基礎安裝虛擬機與Linux作業系統
3.1VMwareWorkstation的安裝
3.2配置VMwareWorkstation並便捷安裝Fedom16
3.3配置VMwareWorkstation手動安裝Fedom16
3.4安裝Fedom16
3.5VMwareTools的安裝
3.6使用已安裝好作業系統的虛擬機
3.7延伸閱讀:打開Fedora16的root賬號
3.8小結
第4章快速構建嵌入式Linux開發環境
4.1安裝交叉編譯器
4.1.1安裝交叉編譯器
4.1.2建立連結
4.1.3查看交叉工具是否安裝正確
4.2構建開發板運行所需的環境
4.2.1編譯一級啟動檔案x—loader
4.2.2編譯二級啟動檔案U—Boot
4.2.3編譯核心
4.2.4製作檔案系統鏡像
4.3更新系統檔案
4.3.1更新檔案從SD卡啟動
4.3.2更新檔案從NANDFlash啟動
4.4小結
第5章配置串口通信工具
5.1配置WindowsXP的超級終端
5.2串口信息的捕獲
5.3在Linux中配置Minicom
5.4小結
第6章配置NFS檔案系統服務
6.1查看宿主機上的安裝包
6.2配置網路檔案系統NFS
6.3啟動NFS服務
6.3.1在Fedora16下面運行
servicenfsstart命令失敗
6.3.2在Fedora16下面運行servicenfs—serverstart失敗
6.4本機測試NFS
6.5在開發板上測試NFS
6.5.1常見的測試過程
6.5.2NFS無法掛載的問題分析
6.6小結
第7章開始編寫第一個程式
7.1在宿主機上編寫第一個程式
7.2編寫開發板上的上第一個程式
7.3小結
第8章Linux開發入門必備私房菜
8.1程式安裝目錄
8.2頭檔案
8.3庫檔案
8.4gcc簡介
8.5make簡介
8.6小結
第9章Shell:用戶與Linux溝通的橋樑
9.1Shell是如何工作的
9.2Shell的“兄弟姐妹”
9.3必須熟悉的Shell命令
9.3.1命令行
9.3.2選項和參數
9.3.3命令行特徵
9.4理解Shell中的特殊字元
9.4.1通配符
9.4.2引號
9.4,3注釋符
9.5暢通交流:標準輸入/輸出和重定向
9.5.1標準輸入與輸出
9.5,2輸入重定向
9.5.3輸出重定向
9.5.4管道
9.6命令替換
9.7實戰體驗:在Bash中的操作
9.7.1命令和檔案名稱擴展特性
9.7.2命令行編輯
9.7.3命令歷史
9.7.4命令別名
9.8定製Bash
9.9小結
第10章文本編輯利器Vi
10.1Vi簡介
10.1.1命令行模式
10.1.2文本輸入模式
10.1.3末行模式
10.1.4模式之間的切換
10.2Vi的進入與退出
10.2.1Vi的進入
10.2.2退出Vi
10.3Vi中的行號
10.4游標移動操作
10.5按字移動游標
10.5.1w和W命令
10.5.2e和E命令
10.5.3b和B命令
10.6螢幕滾動
10.6.1滾屏命令
10.6.2分頁命令
10.6.3狀態命令
10.7螢幕調零命令
10.8文本插入操作
10.8.1插入(Insert)命令
10.8.2打開(open)命令
10.9文本修改
10.9.1文本刪除
10.9.2取消上一命令(Undo)
10.9.3重複命令(Redo)
10.10實現替換功能
10.11小結
第11章應知應會的基本函式
11.1檔案操作函式
11.1.1檔案的創建與打開操作
11.1.2對檔案進行讀寫
11.1.3檔案的關閉操作
11.1.4改變檔案讀寫偏移位置:lseek()
11.1.5實例:檔案的打開關閉、讀寫與設定檔案讀寫指針
11.1.6檔案描述符和流
11.1.7檔案控制操作函式fcntl()
11.1.8控制設備檔案參數的函式ioctl()
11.1.9檔案的許可權修改
11.1.10檔案的屬主與組群修改
11.1.11獲得檔案的狀態
11.1.12檔案的其他操作
11.2目錄操作
11.2.1創建和刪除目錄的函式
11.2.2打開目錄
11.2.3讀取目錄
11.2.4關閉目錄
11.2.5改變工作目錄的函式
11.2.6取得當前的工作目錄
11.2.7實例:檔案列表程式
11.3建立臨時檔案
11.4獲取進程號
11.5獲取節點信息
11.6小結
……
第12章時間問題的處理
第13章簡單的網路編程實戰
第14章簡單的執行緒操作實戰
第15章重點剖析:執行緒同步實例
第16章進階私房萊:再談執行緒
第17章進階私房菜:再談網路編程
第18章重點突破:網路編程的位元組流處理
第19章嵌入式B/S架構開發要點
第20章SQLite資料庫移植與實戰

序言

前 言 1. 寫本書的緣由 目前,隨著信息化、智慧型化、網路化的發展,嵌入式系統技術也獲得了越來越廣闊的發展空間,與嵌入式Linux相關的需求層出不窮。由於3G行業持續升溫,各大企業對嵌入式專業人才的爭奪也日益激烈。在學習嵌入式Linux軟體開發的過程中,很多人有陷入錯綜複雜困境中的痛苦,也有解決問題後豁然開朗的快樂,但更多的,可能還是辛勤的耕耘。 近來常見一些同仁在各論壇求問各種技術問題,有簡單的、複雜的,有獲得答案的,有多次求問仍不得其解的;同時看見身邊諸多初入行業的人員,走了很多彎路,經受了許多磨難,卻還是不得要領。 其實,嵌入式Linux軟體開發只不過是一種套用技術,所以精通這門技術是相對容易的。它遵循“熟能生巧”的學習規律,至少在很多時候,並不需要諸如悟性之類的東西。簡單地說,嵌入式Linux軟體開發並不是一個無處下口的鐵饅頭。 說到這裡,不由得想起北宋歐陽修《賣油翁》的故事。 陳康肅公堯咨善射,當世無雙,公亦以此自矜。嘗射於家圃,有賣油翁釋擔而立,睨之,久而不去。見其發矢十中八九,但微頷之。康肅問曰:“汝亦知射乎?吾射不亦精乎?”翁曰:“無他,但手熟爾。”康肅忿然曰:“爾安敢輕吾射!”翁曰:“以我酌油知之。”乃取一葫蘆置於地,以錢覆其口,徐以杓酌油瀝之,自錢孔入,而錢不濕。因曰:“我亦無他,惟手熟爾。”康肅笑而遣之。 “無他,但手熟爾。”這句話概括了學習套用技術的特點,不用故作深沉。 話雖如此,但套用技術都有一個特點,“奇技淫巧”一詞可概之,裡面花巧繁多,不可勝數。就比如學習嵌入式Linux軟體開發這門技術,還是需要找到合適的門徑才可登堂入室。本書提供了一個由淺入深的途徑,使讀者能夠由茫然無知到了解,由了解到熟悉,由熟悉到精通,最後可開創自己的一片天地,能自由馳騁和飛翔。 2. 這本書適合誰 本書適合即將進入嵌入式Linux軟體開發行業,或已進入嵌入式Linux軟體開發行業的初、中級軟體開發人員閱讀。 本書除了給讀者提供嵌入式Linux軟體開發的一般技術外,還涉及一些高級主題,為讀者進一步學習提供參考,也可以為讀者解決實際問題提供直接的思路,甚至解決方案。 本書重視實踐性,讓讀者能夠饒有興趣地跟著本書的內容嘗試著實踐,並將所學運用到實際工作中。 3. 需要的技術基礎 為了更好地學習本書的內容,要求讀者: * 熟悉C語言。雖然不要求能編寫很棒的C代碼,但是對C語言的熟悉會很有幫助。 * 有一些作業系統的基本知識。不要求熟悉作業系統的各方面,但是對記憶體、執行緒等術語有一定的感性認識會是很有幫助的。 * 熟悉Linux基本的操作,這是學習嵌入式Linux開發的基礎。 4. 本書使用的軟硬體環境 本書的寫作儘量不依賴於任何具體的硬體平台,但因嵌入式的特殊性,有時候問題卻實在無法避免。所以讀者如果在其他平台上遇到了各種各樣的問題,可借鑑本書中解決問題的思路和方法去解決這些問題,如果能夠處理好,那這本書的寫作目的就已經實現。 寫作本書所使用的宿主機軟硬體配置和開發板軟硬體配置如表1~3所示。 5. 本書的組織結構 為了更好地使用本書,建議讀者從第1章開始按順序閱讀本書。當然,如果對某些主題感興趣,也可直接跳到相關的章節進行閱讀。 為了防止大段大段的理論使讀者望而卻步,書中儘量從示例的演示開始講解,只在必要的時候才插入必需的理論說明,以幫助讀者理解。6. 本書的約定 本書寫作中所遵循的約定如下。 (1) 宿主機是指運行Linux開發環境的計算機,安裝有交叉開發工具;主要執行程式的編制、編譯等工作。 (2) 目標機是指運行嵌入式Linux的開發板或嵌入式設備。 (3) 本書暫不講解驅動編程。因為驅動程式的編程比較複雜,同時與硬體密切相關。而且,在嵌入式產業鏈中,開發板廠家你方唱罷我登場的速度也很快,如果拘泥於哪個特定的開發板來演示驅動編程的實現,將會在內容的通用性方面大打折扣。 7. 其他 本書由呂雪峰、彭文波編著,參與編寫工作的還有劉耀宗、萬建邦、鄧世健、趙曉芳。 嵌入式Linux軟體開發其實包含了很廣泛的內容,希望本書能起到拋磚引玉的作用。 由於篇幅有限,同時因為需要採用一個便於理解的主線來描述,以期降低理解的難度,再加上作者的知識與經驗有限,因此書中難免會有疏漏或者不妥之處,歡迎通過郵件進行交流,我們將儘量為讀者提供最滿意的解答。

相關詞條

熱門詞條

聯絡我們