《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》為物聯(lián)網(wǎng)工程實戰(zhàn)叢書的第3卷。書中從物聯(lián)網(wǎng)工程的實際需求出發(fā),闡述了物聯(lián)網(wǎng)協(xié)議的相關知識及物聯(lián)網(wǎng)操作系統(tǒng)的設計和開發(fā)理念,從源頭告訴讀者需要開發(fā)什么樣的物聯(lián)網(wǎng)操作系統(tǒng)。
《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》共10章。第1章闡述了與物聯(lián)網(wǎng)聯(lián)系比較緊密的幾種網(wǎng)絡通信協(xié)議;第2章闡述了路由器交換機原理及其設計與開發(fā)的要點;第3章對移動互聯(lián)網(wǎng)Wi-Fi做了詳細解析;第4章給出了操作系統(tǒng)的一般概念;第5章介紹了幾種應用于資源受限設備的物聯(lián)網(wǎng)操作系統(tǒng);第6章介紹了幾種嵌入式實時操作系統(tǒng);第7章剖析了一種輕量級實時物聯(lián)網(wǎng)操作系統(tǒng)Zephyr,給出了較為詳細的應用開發(fā)指導;第8章闡述了比較流行的Ubunto操作系統(tǒng);第9章詳盡地講解了路由器操作系統(tǒng)的開發(fā)流程,為物聯(lián)網(wǎng)網(wǎng)關、智能路由器、邊緣計算服務器的研發(fā)打下基礎;第10章給出了嵌入式系統(tǒng)的底層驅動軟件開發(fā)指導。
《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》適合作為高等院校物聯(lián)網(wǎng)工程、通信工程、網(wǎng)絡工程、電子信息工程、微電子和集成電路等相關專業(yè)的教材,也適合物聯(lián)網(wǎng)協(xié)議的研究者和物聯(lián)網(wǎng)操作系統(tǒng)的研發(fā)人員閱讀。另外,《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》還適合作為智慧城市建設等政府管理部門相關人員的參考讀物。
沉舟側畔千帆過,病樹前頭萬木春
繼計算機操作系統(tǒng)、嵌入式操作系統(tǒng)、手機操作系統(tǒng)之后,物聯(lián)網(wǎng)操作系統(tǒng)進入了起步發(fā)展階段。就目前的現(xiàn)狀,物聯(lián)網(wǎng)操作可以描述為:廠商山頭林立、市場虛假繁榮、技術概念老舊、產(chǎn)品良莠不齊。
物聯(lián)網(wǎng)操作系統(tǒng)產(chǎn)生的背景
應用需求催生了物聯(lián)網(wǎng)操作系統(tǒng)的誕生。邊緣計算的興起,不僅解決了海量數(shù)據(jù)上云引起的網(wǎng)絡阻塞、存儲冗余、響應遲緩等問題,也為物聯(lián)網(wǎng)操作系統(tǒng)的發(fā)展提供了機遇。邊緣計算(將在叢書的第6卷中展開講解)是物聯(lián)網(wǎng)操作系統(tǒng)的重要應用領域之一。
高檔微處理器奠定了物聯(lián)網(wǎng)操作系統(tǒng)的硬件搭載基礎。微處理器技術發(fā)展快速,32位MCU技術已經(jīng)成熟,既可以在嵌入式設備終端和網(wǎng)關設備上使用,又可以在傳感單元和執(zhí)行單元上普遍使用。32位微處理器的硬件資源豐富,為物聯(lián)網(wǎng)操作系統(tǒng)載體奠定了良好的硬件基礎。例如,在MCU市場里,ARM完善的生態(tài)環(huán)境大大推動了物聯(lián)網(wǎng)操作系統(tǒng)在內的嵌入式軟件的發(fā)展。其他內嵌網(wǎng)絡接口、A/D 轉換、通信模塊的微處理器芯片也不斷出現(xiàn),物聯(lián)網(wǎng)操作系統(tǒng)的搭載基礎越來越好。
此外,設備端的小型化、低功耗、安全性的趨勢,以及通信協(xié)議之間的靈活轉換、應用層對邊緣計算能力的要求、復雜的設備測控軟件,這些市場需求成了物聯(lián)網(wǎng)操作系統(tǒng)產(chǎn)生的必要條件。
物聯(lián)網(wǎng)操作系統(tǒng)的組成框架
物聯(lián)網(wǎng)操作系統(tǒng)沿用了嵌入式操作系統(tǒng)中的技術,可以將該技術分為兩種,一種是實時的,另一種是通用型的。物聯(lián)網(wǎng)操作系統(tǒng)由內核、通信支持(Wi-Fi/藍牙、2G、3G、4G、5G、NFC、RS232、PLC等)、外圍組件(文件系統(tǒng)、GUI、Java虛擬機、XML文件解析器等),以及集成開發(fā)環(huán)境等組成。
物聯(lián)網(wǎng)操作系統(tǒng)的必備能力
設備管理能力:內核應該有一個基于總線或樹結構的設備管理機制,可以動態(tài)加載存儲在外部介質上的設備驅動程序或其他核心模塊。只需要開發(fā)新的應用程序,就可以滿足設備管理需求。
可擴展、可裁剪、可伸縮的架構:因為物聯(lián)網(wǎng)應用環(huán)境具備廣譜特性,要求操作系統(tǒng)必須能夠擴展,以適應新的應用環(huán)境。將物聯(lián)網(wǎng)操作系統(tǒng)的內核設計成框架結構,定義接口和規(guī)范就可以在操作系統(tǒng)內核上增加新的功能和硬件支持。對于資源(內存和CPU)受限的設備,內核軟件的大小必須維持在10KB以內,具備基本的任務調度和通信功能即可。高配置的設備(具有邊緣計算能力的服務器、具有路由功能的網(wǎng)關),其內核必須具備完善的線程調度、內存管理、本地存儲、復雜的網(wǎng)絡協(xié)議、圖形用戶界面等功能。這時內核軟件的大小可以達到幾百KB,甚至MB。內核軟件大小的伸縮性通過兩個措施來實現(xiàn),即重新編譯和二進制模塊選擇加載。重新編譯需要根據(jù)不同的應用目標,選擇所需要的功能模塊,然后對內核進行重新編譯;二進制模塊選擇加載,需要操作系統(tǒng)配置文件,在內核初始化完成后,會根據(jù)配置文件,選擇加載所需要的二進制模塊。
文件系統(tǒng)、外部存儲能力:支持常用的文件系統(tǒng)和外部存儲,支持FAT32、NTFS、DCFS等文件系統(tǒng),支持硬盤、USB Stick、Flash和ROM等常用存儲設備。
應用程序動態(tài)加載能力:物聯(lián)網(wǎng)操作系統(tǒng)應提供一組API,供不同應用程序調用,而且這一組API應該根據(jù)操作系統(tǒng)所加載的外圍模塊實時變化。操作系統(tǒng)能夠動態(tài)地從外部存儲介質上按需加載應用程序,其內核和外圍模塊(GUI、網(wǎng)絡等)提供基礎支持,而各種各樣的行業(yè)應用則通過應用程序來實現(xiàn)。
兼容的通信接入能力:支持物聯(lián)網(wǎng)常用的無線和有線通信功能。比如,支持GPRS、3G、HSPA、4G等公共網(wǎng)絡的無線通信功能,同時要支持 ZigBee、NFC、RFID、Wi-Fi、Bluetooth 等近場通信功能,還要支持 Ethernet、CAN、USB 有線網(wǎng)絡功能,以及窄帶通信技術NB-IoT 和LoRa。
完善的網(wǎng)絡協(xié)議兼容和轉換能力:物聯(lián)網(wǎng)操作系統(tǒng)必須支持完善的TCP/IP協(xié)議棧,包括對IPv4和IPv6的同時支持。同時也支持豐富的IP協(xié)議族,比如Telnet、FTP、IPSec、SCTP等協(xié)議,以適用智能終端和高安全、高可靠的應用場合;不同的物理和鏈路層接口之上的協(xié)議之間要能夠相互轉換,把從一種協(xié)議獲取到的數(shù)據(jù)報文轉換成另一種協(xié)議報文發(fā)送出去。
設備的安全保護能力:支持內存保護(VMM等機制)和異常管理等機制,在必要時隔離錯誤代碼。另外一個安全策略就是不開放源代碼,或者不開放關鍵部分的內核源代碼。物聯(lián)網(wǎng)設備中很大一部分小型設備使用 MCU 和資源有限的微處理器,不開放它們的源代碼能保護這些小型設備使其不受網(wǎng)絡攻擊和非法控制,以確保設備安全。
邊緣計算能力:物聯(lián)網(wǎng)設備連續(xù)不斷地產(chǎn)生海量數(shù)據(jù),如何管理和處理這些數(shù)據(jù)是擺在物聯(lián)網(wǎng)企業(yè)面前的一個難題。邊緣計算無疑是解決這個難題的有效技術手段之一。邊緣計算是提高響應速度,改善網(wǎng)絡阻塞的關鍵技術。
物聯(lián)網(wǎng)操作系統(tǒng)的實時性:物聯(lián)網(wǎng)設備的測量控制,很多關鍵性動作必須在有限的時間內完成,否則將失去意義。首先是中斷響應的實時性,一旦外部中斷發(fā)生,操作系統(tǒng)必須在足夠短的時間內響應中斷并做出處理;其次是線程或任務調度的實時性,一旦任務或線程所需的資源或進一步運行的條件準備就緒,必須馬上得到調度執(zhí)行。
物聯(lián)網(wǎng)操作系統(tǒng)的可靠性:物聯(lián)網(wǎng)應用環(huán)境具備自動化程度高、人為干預少的特點,這要求物聯(lián)網(wǎng)操作系統(tǒng)必須足夠可靠,以支撐長時間地獨立運行和無故障運行。
功耗控制能力:操作系統(tǒng)內核應該在CPU空閑的時候降低CPU的運行頻率,或干脆關閉CPU。對于周邊設備,也應該實時判斷其運行狀態(tài),一旦進入空閑狀態(tài),則切換到省電模式。例如,網(wǎng)絡上發(fā)送和接收信息的一個個嵌入式計算小型設備(比如智能傳感器),它們的測控方法和管理模式是快速執(zhí)行、立即睡眠模式。
遠程診斷、維護、升級能力:可大大降低運營成本。遠程升級完成后,原有的設備配置和數(shù)據(jù)能夠得以繼續(xù)使用。在升級失敗的情況下,操作系統(tǒng)也應該能夠恢復原有的運行狀態(tài)。遠程升級和維護是物聯(lián)網(wǎng)操作系統(tǒng)大規(guī)模部署、低成本運營的主要措施之一。
遠程配置、管理能力:常見的遠程操作項目有遠程修改設備參數(shù)、遠程查看運行信息、遠程查看操作系統(tǒng)內核狀態(tài)、遠程調試線程或任務、遠程轉儲(dump)內核狀態(tài)等功能。
……
關于《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》
《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》是物聯(lián)網(wǎng)工程實戰(zhàn)叢書的第3卷《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》!段锫(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》第1~2章由孫昊編寫;第3章由杜秀芳編寫,第4~7章由曾凡太編寫;第8~9章由趙帥編寫;第10章由王洋編寫。曾凡太統(tǒng)籌全稿!段锫(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》的出版首先感謝各位青年作者按時完成了寫作計劃!感謝歐振旭編輯的鼎力支持和出版社其他編輯的辛苦工作!《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》編寫過程中參考了海量的技術文獻,限于篇幅不能一一列出,深表歉意,在此對參考文獻的原作者表示衷心的感謝!
孫昊,畢業(yè)于山東大學控制工程學院,獲工學碩士學位。網(wǎng)絡設備資深研發(fā)工程師。曾就職于華為技術公司,負責操作系統(tǒng)軟件的架構設計,并擔任C語言和Lua語言講師。申請多項ISSU技術專利。現(xiàn)就職于浪潮電子信息產(chǎn)業(yè)股份有限公司,負責軟件架構設計工作。
王洋,畢業(yè)于遼寧工程技術大學,獲碩士學位。現(xiàn)就職于浪潮集團,任軟件工程師。曾經(jīng)發(fā)表多篇智能控制和設備驅動方面的論文。
趙帥,畢業(yè)于沈陽航空航天大學。資深網(wǎng)絡設備研發(fā)工程師,從事Android平板電腦系統(tǒng)嵌入式驅動層和應用層的開發(fā)工作。曾經(jīng)在語音網(wǎng)關研發(fā)中改進了DSP中的語音編解碼及回聲抵消算法。現(xiàn)就職于浪潮電子信息產(chǎn)業(yè)股份有限公司。
杜秀芳,畢業(yè)于山東大學控制科學與工程學院,獲工學碩士學位。曾就職于群碩軟件開發(fā)(北京)有限公司,任高級軟件工程師,從事資源配置、軟件測試和QA等工作。現(xiàn)為山東勞動職業(yè)技術學院機械工程系教師。
曾凡太,山東大學信息科學與工程學院高級工程師。已經(jīng)出版EDA工程叢書(共5卷,清華大學出版社出版)、《現(xiàn)代電子設計教程》(高等教育出版社出版)、《PCI總線與多媒體計算機》(電子工業(yè)出版社出版)等書,發(fā)表論文數(shù)十篇,申請發(fā)明專利4項。
叢書序
序言
第1章 網(wǎng)絡通信技術 1
1.1 數(shù)字通信概述 1
1.2 數(shù)字通信關鍵技術 2
1.3 數(shù)字通信OSI模型 3
1.4 TCP/IP網(wǎng)絡通信協(xié)議 7
1.4.1 TCP/IP協(xié)議 7
1.4.2 CoAP協(xié)議 10
1.4.3 MQTT協(xié)議(低帶寬) 11
1.4.4 AMQP協(xié)議(互操作性) 11
1.4.5 XMPP協(xié)議(即時通信) 12
1.4.6 JMS協(xié)議 13
1.5 UDP協(xié)議 14
1.6 HTTP協(xié)議 16
1.6.1 工作原理 16
1.6.2 消息結構 17
1.6.3 請求方法 18
1.6.4 響應頭信息 19
1.6.5 狀態(tài)碼 20
1.6.6 內容類型 20
1.7 FTP協(xié)議 21
1.8 Bluetooth協(xié)議 23
1.8.1 Bluetooth發(fā)展史及優(yōu)勢 23
1.8.2 Bluetooth技術 25
1.9 ZigBee協(xié)議 26
1.9.1 ZigBee發(fā)展歷史 27
1.9.2 ZigBee的特點及優(yōu)勢 30
1.9.3 ZigBee基本概念 30
1.9.4 ZigBee協(xié)議棧 32
1.10 6LoWPAN低速無線個域網(wǎng)協(xié)議 33
1.11 LoRa WAN低功耗廣域網(wǎng)協(xié)議 35
1.12 NB-IoT窄帶物聯(lián)網(wǎng)協(xié)議 41
1.12.1 物聯(lián)網(wǎng)應用場景和技術特點 41
1.12.2 無線通信技術發(fā)展過程 48
1.12.3 NB-IoT窄帶物聯(lián)網(wǎng)節(jié)能原理 52
1.12.4 NB-IoT通信系統(tǒng)拓撲結構 56
1.12.5 NB-IoT窄帶物聯(lián)網(wǎng)信號收發(fā)技術 59
1.12.6 NB-IoT窄帶物聯(lián)網(wǎng)小區(qū)接入 64
1.12.7 NB-IoT連接管理 67
1.12.8 NB-IoT數(shù)據(jù)傳輸 68
1.13 MQTT網(wǎng)絡協(xié)議 71
1.13.1 網(wǎng)絡協(xié)議比較 71
1.13.2 發(fā)布和訂閱模型 72
1.13.3 MQTT協(xié)議命令 73
1.13.4 MQTT協(xié)議參數(shù) 74
1.14 協(xié)議轉換 77
1.14.1 RS-232/485/CAN轉換器 77
1.14.2 基于現(xiàn)場總線的協(xié)議轉換器 78
1.14.3 物聯(lián)網(wǎng)協(xié)議轉換器網(wǎng)關 79
1.14.4 物聯(lián)網(wǎng)網(wǎng)關 82
1.14.5 物聯(lián)網(wǎng)網(wǎng)關應用 84
1.15 小結 85
1.16 習題 86
第2章 信息交換技術 87
2.1 交換技術概述 88
2.2 數(shù)字程控交換 91
2.3 ATM交換 92
2.4 以太網(wǎng)交換 92
2.5 光交換 94
2.6 二層交換交換機原理 94
2.7 三層轉發(fā)路由器原理 95
2.8 三層交換三層交換機 98
2.9 交換機設計開發(fā) 103
2.9.1 交換機的層次定位 103
2.9.2 交換機的硬件設計 104
2.9.3 交換機的軟件設計 107
2.9.4 測試環(huán)節(jié) 110
2.10 小結 110
2.11 習題 111
第3章 無線Wi-Fi技術 112
3.1 Wi-Fi概述 112
3.1.1 WLAN無線局域網(wǎng)絡概述 112
3.1.2 Wi-Fi無線網(wǎng)絡起源 113
3.2 Wi-Fi基礎 116
3.2.1 Wi-Fi物理組件 117
3.2.2 Wi-Fi服務功能 117
3.2.3 Wi-Fi認證和加密 120
3.2.4 Wi-Fi基礎參數(shù) 121
3.3 Wi-Fi接入 123
3.3.1 Wi-Fi的STA與AP的接入 123
3.3.2 Wi-Fi的多AP認證和關聯(lián)過程 125
3.3.3 Wi-Fi漫游過程 126
3.4 Wi-Fi管理 127
3.4.1 wpa_supplicant程序 127
3.4.2 wpa_cli調試工具 129
3.5 Wi-Fi模塊解析 130
3.5.1 Wi-Fi框架分析 130
3.5.2 Wi-Fi啟動流程 133
3.6 Wi-Fi驅動結構 142
3.6.1 SDIO驅動 142
3.6.2 無線通信芯片 142
3.6.3 設備驅動注冊 144
3.6.4 加載驅動模塊 154
3.6.5 SDIO設備中斷 155
3.6.6 Wi-Fi驅動流程 156
3.6.7 網(wǎng)絡設備注冊 159
3.7 小結 162
3.8 習題 163
第4章 操作系統(tǒng)概述 164
4.1 通用計算機操作系統(tǒng) 164
4.2 嵌入式實時操作系統(tǒng) 166
4.2.1 嵌入式操作系統(tǒng)的主要特點 167
4.2.2 嵌入式操作系統(tǒng)和通用計算機操作系統(tǒng)的區(qū)別 167
4.2.3 流行嵌入式實時操作系統(tǒng) 168
4.3 手機操作系統(tǒng) 171
4.3.1 Android 操作系統(tǒng) 171
4.3.2 Android App研發(fā)基礎 172
4.3.3 Android App開發(fā)文獻 174
4.3.4 iOS操作系統(tǒng) 176
4.4 物聯(lián)網(wǎng)操作系統(tǒng) 178
4.4.1 概述 178
4.4.2 特點 180
4.4.3 架構 182
4.4.4 實例分析 192
4.4.5 發(fā)展趨勢 194
4.5 小結 195
4.6 習題 196
第5章 物聯(lián)網(wǎng)操作系統(tǒng) 197
5.1 微軟物聯(lián)網(wǎng)操作系統(tǒng) 197
5.2 谷歌物聯(lián)網(wǎng)操作系統(tǒng) 197
5.2.1 谷歌Brillo 198
5.2.2 谷歌Android Things 199
5.3 ARM物聯(lián)網(wǎng)操作系統(tǒng) 203
5.4 華為物聯(lián)網(wǎng)操作系統(tǒng)Huawei LiteOS 204
5.5 中興物聯(lián)網(wǎng)操作系統(tǒng) 207
5.6 慶科物聯(lián)網(wǎng)操作系統(tǒng)MICO 211
5.7 小結 220
5.8 習題 220
第6章 嵌入式Linux操作系統(tǒng) 221
6.1 uClinux簡介 221
6.2 RTLinux簡介 230
6.3 Ostro Linux簡介 234
6.4 HelloX物聯(lián)網(wǎng)操作系統(tǒng) 237
6.4.1 HelloX物聯(lián)網(wǎng)操作系統(tǒng)框架分析 238
6.4.2 HelloX主要功能 239
6.4.3 HelloX的開發(fā)方向 241
6.4.4 HelloX用于智慧家庭 243
6.5 FreeRTOS操作系統(tǒng)簡介 246
6.6 Tiny OS操作系統(tǒng)簡介 249
6.6.1 Tiny OS特點 249
6.6.2 Tiny OS組成 251
6.6.3 Tiny OS運行機理 252
6.6.4 Tiny OS開發(fā)環(huán)境 252
6.6.5 Tiny OS開發(fā)過程 253
6.6.6 Tiny OS開發(fā)平臺 254
6.6.7 Tiny OS的研究項目 254
6.7 RIOT OS操作系統(tǒng)簡介 254
6.8 小結 258
6.9 習題 259
第7章 物聯(lián)網(wǎng)Zephyr操作系統(tǒng) 260
7.1 Zephyr操作系統(tǒng)概述 261
7.1.1 Zephyr特色 261
7.1.2 支持的微處理器類型 262
7.1.3 支持的通信標準和網(wǎng)絡協(xié)議 262
7.1.4 內核版本迭代歷程 263
7.2 Zephyr系統(tǒng)內核 266
7.2.1 多線程功能 267
7.2.2 中斷服務功能 268
7.2.3 時鐘和定時器功能 268
7.2.4 同步功能 268
7.2.5 數(shù)據(jù)傳輸功能 269
7.2.6 內存動態(tài)分配功能 269
7.2.7 公共和私有內核對象 269
7.2.8 微內核服務器功能 270
7.2.9 C 支持的應用 270
7.2.10 Zephyr源代碼結構 271
7.3 在Linux上搭建Zephyr開發(fā)環(huán)境 271
7.3.1 下載源代碼 272
7.3.2 安裝需要的包和依賴文件 272
7.3.3 安裝Zephyr SDK 272
7.3.4 編譯、運行應用程序 273
7.3.5 應用程序仿真測試與運行 274
7.4 在Windows上搭建Zephyr開發(fā)環(huán)境 274
7.5 用MSYS2搭建Zephyr 開發(fā)環(huán)境 277
7.6 應用程序開發(fā) 279
7.6.1 概述 279
7.6.2 創(chuàng)建應用程序目錄app 280
7.6.3 創(chuàng)建應用程序子目錄build 281
7.6.4 重構應用程序 282
7.6.5 運行應用程序 282
7.6.6 開發(fā)板定制 283
7.6.7 用QEMU調試程序 284
7.6.8 用Eclipse調試程序 286
7.6.9 CMake工具 287
7.6.10 CMakeLists.txt文件 288
7.6.11 CMakeCache.txt文件 289
7.6.12 編輯配置文件 290
7.6.13 更新設備樹序列 293
7.6.14 支持第三方庫代碼 294
7.7 小結 294
7.8 習題 295
第8章 嵌入式Ubuntu操作系統(tǒng) 296
8.1 準備Ubuntu文件 297
8.2 安裝Ubuntu系統(tǒng) 299
8.3 連網(wǎng)資源 304
8.4 更新系統(tǒng) 307
8.5 目錄結構 309
8.6 啟動流程 310
8.7 編程環(huán)境 311
8.7.1 安裝編輯器 311
8.7.2 下載并安裝JDK 311
8.7.3 Ubuntu開發(fā)環(huán)境的配置 314
8.7.4 Ubuntu添加或刪除源 315
8.7.5 安裝Eclipse 316
8.7.6 安裝MySQL 317
8.7.7 安裝build-essential 318
8.7.8 安裝Tomcat 319
8.7.9 安裝Android Studio(32Bit) 321
8.8 小結 322
8.9 習題 322
第9章 路由器OpenWrt操作系統(tǒng) 323
9.1 OpenWrt開發(fā)環(huán)境基礎 324
9.1.1 OpenWrt硬件需求 324
9.1.2 OpenWrt文件結構和網(wǎng)絡結構 326
9.2 OpenWrt常用命令 326
9.2.1 編輯命令vi 327
9.2.2 查找命令grep 328
9.2.3 查找命令find 328
9.2.4 在線手冊查看命令man 329
9.2.5 其他命令 330
9.3 OpenWrt常用工具 331
9.3.1 Feeds簡介 332
9.3.2 Buildroot簡介 333
9.3.3 代碼閱讀與編輯工具Source Insight 334
9.3.4 文件傳輸工具FileZilla 339
9.3.5 遠程登錄工具SecureCRT 343
9.3.6 TFTP服務器軟件Tftpd32 345
9.3.7 代碼閱讀和編輯工具KScope 346
9.3.8 遠程登錄工具C-Kermit 350
9.4 在Windows上安裝VMware 351
9.5 在VMware上安裝Ubuntu 357
9.5.1 Ubuntu安裝步驟 357
9.5.2 Ubuntu上安裝、配置、啟動FTP和SSH服務 360
9.6 在Ubuntu上安裝OpenWrt 362
9.6.1 安裝open-vm-tools 363
9.6.2 安裝所需的依賴環(huán)境 363
9.6.3 OpenWrt下載安裝 364
9.6.4 OpenWrt的編譯 364
9.6.5 OpenWrt的固件燒寫 366
9.7 OpenWrt配置 368
9.7.1 初始配置 368
9.7.2 配置DNS 369
9.7.3 配置PPTP 370
9.7.4 配置chnroutes 373
9.7.5 配置VPN 374
9.7.6 安裝LuCI 376
9.8 OpenWrt路由器應用開發(fā) 377
9.8.1 OpenWrt系統(tǒng)的編譯 377
9.8.2 OpenWrt在線固件更新 380
9.8.3 OpenWrt刷機 390
9.8.4 路由器設置 392
9.8.5 文件服務 397
9.8.6 DDNS服務 403
9.9 OpenWrt應用程序編程實例 404
9.10 小結 412
9.11 習題 413
第10章 設備底層驅動編程 414
10.1 設備驅動簡介 414
10.1.1 引言 414
10.1.2 設備驅動分類 415
10.1.3 驅動模塊程序結構 416
10.2 Linux文件系統(tǒng) 420
10.3 文件系統(tǒng)與設備驅動 421
10.4 驅動編譯及加載實例 423
10.5 字符設備驅動 427
10.5.1 字符設備驅動初識 428
10.5.2 字符設備驅動構成 431
10.6 小結 434
10.7 習題 434
參考文獻 435