首页>参考读物>计算机科学与技术>计算机网络

物联网之魂:物联网协议与物联网操作系统
作者 : 孙昊 王洋 赵帅 杜秀芳 曾凡太 编著
出版日期 : 2019-06-14
ISBN : 978-7-111-62931-3
定价 : 119.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 460
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书系统地介绍了物联网协议和物联网操作系统的相关内容。第1章阐述了与物联网联系比较紧密的几种网络通信协议;第2章阐述了路由器交换机的原理及其开发要点;第3章对移动互联网Wi-Fi做了详细解析;第4章介绍了操作系统的一般概念;第5章介绍了几种应用于资源受限设备的物联网操作系统;第6章介绍了几种嵌入式实时操作系统;第7章剖析了一种轻量级实时物联网操作系统zephyr,给出较详细的应用开发指导;第8章阐述了比较流行的Ubunto操作系统;第9章详尽地讲解了路由器操作系统的开发流程,为物联网网关、智能路由器及边缘计算服务器的研发打下基础;第10章给出了嵌入式系统底层驱动软件的开发指导。本书适合从事物联网开发的工程技术人员及物联网专业的师生阅读。

图书特色

国内物联网工程学科的奠基性作品,物联网工程研发一线工程师的经验总结;系统阐述物联网操作系统与通信协议的相关知识,多位物联网专业人士力荐

上架指导

计算机\网络

封底文字

业内点评

“物联网工程实战丛书”给出了物联网工程的学科架构和理论体系。这对于开设物联网专业的高校来说,无论是进行学科建设,还是做课程设置,都具有很高的参考价值。丛书适合作为各院校物联网专业相关课程的教材,也适合作为物联网研发工程师的项目研发读物。

——山东力明科技职业学院信息工程与管理学院院长 陶翠霞

“物联网工程实战丛书”系统地阐述了物联网的理论基础、工程实践和行业应用。丛书是多位一线物联网研发人员和教学人员的经验总结,是一套优秀的物联网专业教材,也是物联网研发工程师产品研发和项目规划的实践指南。丛书对于普及物联网知识和推动物联网技术进步有很大价值,对于青年学生和工程技术人员的物联网技术学习大有助益。
——山东大学教授 赵世民

物联网是一个未来大有可为的领域。目前各院校出来的学生虽然能了解物联网的一些技术点,但是他们对物联网缺少系统性的认识和端到端的业务解决能力。这本书填补了物联网图书领域的一个空白,从开发者的角度讲述了如何设计物联网的传输环节,内容很接地气,属于比较务实的著作,对于相关从业人员有很大的帮助。
——华为技术有限公司软件行业部经理 刘冬冬

本书作者孙昊是我的前同事。他是一个低调、谦和的人,写代码的时候一丝不苟,周围的人有问题时总是乐于求助于他。他对技术总是能保持一颗好奇心,总是想把问题弄明白。他参与这本书的写作再合适不过,因为物联网通信技术的相关知识正是我们以前的工作内容。从整个行业来说,国内没有多少公司比华为公司做得更突出。我现在的工作依然跟物联网和通信有很大的关系,有这样一本系统讲解物联网操作系统和通信协议的书,正好可以满足工作的需要,也希望更多的人能看到这本书。
——长沙万为机器人技术有限公司CTO 明振


图书序言

  沉舟侧畔千帆过,病树前头万木春
  继计算机操作系统、嵌入式操作系统、手机操作系统之后,物联网操作系统进入了起步发展阶段。就目前的现状,物联网操作可以描述为:厂商山头林立、市场虚假繁荣、技术概念老旧、产品良莠不齐。
物联网操作系统产生的背景
  应用需求催生了物联网操作系统的诞生。边缘计算的兴起,不仅解决了海量数据上云引起的网络阻塞、存储冗余、响应迟缓等问题,也为物联网操作系统的发展提供了机遇。边缘计算(将在丛书的第6卷中展开讲解)是物联网操作系统的重要应用领域之一。
  高档微处理器奠定了物联网操作系统的硬件搭载基础。微处理器技术发展快速,32位MCU技术已经成熟,既可以在嵌入式设备终端和网关设备上使用,又可以在传感单元和执行单元上普遍使用。32位微处理器的硬件资源丰富,为物联网操作系统载体奠定了良好的硬件基础。例如,在MCU市场里,ARM完善的生态环境大大推动了物联网操作系统在内的嵌入式软件的发展。其他内嵌网络接口、A/D 转换、通信模块的微处理器芯片也不断出现,物联网操作系统的搭载基础越来越好。
  此外,设备端的小型化、低功耗、安全性的趋势,以及通信协议之间的灵活转换、应用层对边缘计算能力的要求、复杂的设备测控软件,这些市场需求成了物联网操作系统产生的必要条件。
物联网操作系统的组成框架
  物联网操作系统沿用了嵌入式操作系统中的技术,可以将该技术分为两种,一种是实时的,另一种是通用型的。物联网操作系统由内核、通信支持(Wi-Fi/蓝牙、2G、3G、4G、5G、NFC、RS232、PLC等)、外围组件(文件系统、GUI、Java虚拟机、XML文件解析器等),以及集成开发环境等组成。
物联网操作系统的必备能力
  设备管理能力:内核应该有一个基于总线或树结构的设备管理机制,可以动态加载存储在外部介质上的设备驱动程序或其他核心模块。只需要开发新的应用程序,就可以满足设备管理需求。
  可扩展、可裁剪、可伸缩的架构:因为物联网应用环境具备广谱特性,要求操作系统必须能够扩展,以适应新的应用环境。将物联网操作系统的内核设计成框架结构,定义接口和规范就可以在操作系统内核上增加新的功能和硬件支持。对于资源(内存和CPU)受限的设备,内核软件的大小必须维持在10KB以内,具备基本的任务调度和通信功能即可。高配置的设备(具有边缘计算能力的服务器、具有路由功能的网关),其内核必须具备完善的线程调度、内存管理、本地存储、复杂的网络协议、图形用户界面等功能。这时内核软件的大小可以达到几百KB,甚至MB。内核软件大小的伸缩性通过两个措施来实现,即重新编译和二进制模块选择加载。重新编译需要根据不同的应用目标,选择所需要的功能模块,然后对内核进行重新编译;二进制模块选择加载,需要操作系统配置文件,在内核初始化完成后,会根据配置文件,选择加载所需要的二进制模块。
  文件系统、外部存储能力:支持常用的文件系统和外部存储,支持FAT32、NTFS、DCFS等文件系统,支持硬盘、USB Stick、Flash和ROM等常用存储设备。
  应用程序动态加载能力:物联网操作系统应提供一组API,供不同应用程序调用,而且这一组API应该根据操作系统所加载的外围模块实时变化。操作系统能够动态地从外部存储介质上按需加载应用程序,其内核和外围模块(GUI、网络等)提供基础支持,而各种各样的行业应用则通过应用程序来实现。
  兼容的通信接入能力:支持物联网常用的无线和有线通信功能。比如,支持GPRS、3G、HSPA、4G等公共网络的无线通信功能,同时要支持 ZigBee、NFC、RFID、Wi-Fi、Bluetooth 等近场通信功能,还要支持 Ethernet、CAN、USB 有线网络功能,以及窄带通信技术NB-IoT 和LoRa。
  完善的网络协议兼容和转换能力:物联网操作系统必须支持完善的TCP/IP协议栈,包括对IPv4和IPv6的同时支持。同时也支持丰富的IP协议族,比如Telnet、FTP、IPSec、SCTP等协议,以适用智能终端和高安全、高可靠的应用场合;不同的物理和链路层接口之上的协议之间要能够相互转换,把从一种协议获取到的数据报文转换成另一种协议报文发送出去。
  设备的安全保护能力:支持内存保护(VMM等机制)和异常管理等机制,在必要时隔离错误代码。另外一个安全策略就是不开放源代码,或者不开放关键部分的内核源代码。物联网设备中很大一部分小型设备使用 MCU 和资源有限的微处理器,不开放它们的源代码能保护[0]这些小型设备使其不受网络攻击和非法控制,以确保设备安全。
  边缘计算能力:物联网设备连续不断地产生海量数据,如何管理和处理这些数据是摆在物联网企业面前的一个难题。边缘计算无疑是解决这个难题的有效技术手段之一。边缘计算是提高响应速度,改善网络阻塞的关键技术。
  物联网操作系统的实时性:物联网设备的测量控制,很多关键性动作必须在有限的时间内完成,否则将失去意义。首先是中断响应的实时性,一旦外部中断发生,操作系统必须在足够短的时间内响应中断并做出处理;其次是线程或任务调度的实时性,一旦任务或线程所需的资源或进一步运行的条件准备就绪,必须马上得到调度执行。
  物联网操作系统的可靠性:物联网应用环境具备自动化程度高、人为干预少的特点,这要求物联网操作系统必须足够可靠,以支撑长时间地独立运行和无故障运行。
  功耗控制能力:操作系统内核应该在CPU空闲的时候降低CPU的运行频率,或干脆关闭CPU。对于周边设备,也应该实时判断其运行状态,一旦进入空闲状态,则切换到省电模式。例如,网络上发送和接收信息的一个个嵌入式计算小型设备(比如智能传感器),它们的测控方法和管理模式是快速执行、立即睡眠模式。
  远程诊断、维护、升级能力:可大大降低运营成本。远程升级完成后,原有的设备配置和数据能够得以继续使用。在升级失败的情况下,操作系统也应该能够恢复原有的运行状态。远程升级和维护是物联网操作系统大规模部署、低成本运营的主要措施之一。
  远程配置、管理能力:常见的远程操作项目有远程修改设备参数、远程查看运行信息、远程查看操作系统内核状态、远程调试线程或任务、远程转储(dump)内核状态等功能。
  XML文件解析能力:物联网时代,不同行业之间存在严重的信息共享壁垒。XML格式的数据共享可以打破这个壁垒。物联网操作系统内置了对XML解析的支持,操作系统的配置数据统一用XML格式进行存储,从而对行业自行定义的XML格式进行解析,以完成行业间的信息交互功能。
  完善的GUI能力:图形用户界面一般应用于物联网的智能终端中,完成用户和设备的交互。应该定义一个完整的GUI框架,以方便图形功能的扩展。同时应该实现常用的用户界面元素,比如文本框、按钮和列表等。GUI模块的效率要足够高,从用户输入确认,到具体的动作开始执行之间的时间(可以叫做click-launch时间)要足够短,响应要足够快。
物联网应用软件的开发环境
  集成开发环境是构筑行业应用的关键工具。物联网操作系统必须提供方便、灵活的开发工具,以开发出适合不同行业的应用程序。开发环境必须足够成熟并得到广泛适用,以降低应用程序的上市时间(TTM)。集成开发环境必须具备如下特点:
* 物联网操作系统要提供丰富灵活的API,供程序员调用,这组API应该能够支持多种语言,比如既支持C/C++,也支持Java等程序设计语言。
* 充分利用已有的集成开发环境,比如可以利用Eclipse、Visual Studio等集成开发环境,它们有广泛的应用基础,可以在Internet上直接获得良好的技术支持。
* 要提供一组工具,方便应用程序的开发和调试,比如提供应用程序下载工具和远程调试工具等,以支撑整个开发过程。
  物联网操作系统内核、外围模块、应用开发环境是支撑平台,而行业应用才是最终产生生产力的软件。物联网操作系统是行业应用软件得以茁壮成长和长期有效生存的基础。
物联网工程裸机环境编程
  所谓的裸机编程指的是无OS(Operatings System,操作系统)支持的硬件系统编程。实际的编程工作肯定需要一个环境,用于编程和编译的环境叫做“宿主机”,最终的程序在“目标机”上运行(交叉编译)。单片机没有操作系统,在Keil中编写的代码都是裸机代码。
  裸机编程主要是针对低端的嵌入式系统,如SCM(Single Chip Machine)、各式MCU、DSP等。当然,编写PC的boot loader肯定也属于裸机编程。
  裸机编程的最原始办法是用汇编语言。现今,裸机编程普遍使用了更高级的语言。从C语言转换到汇编语言的过程叫做编译。
  在裸机上执行程序时,仅仅需要机器能直接识别的二进制机器码bin文件,这是一种纯净的二进制机器码文件。裸机运行的程序代码一般由一个main函数中的while死循环和各种中断服务程序组成,平时CPU执行while循环中的代码,在出现其他事件时,跳转到中断服务程序进行处理,没有多任务和线程的概念。
物联网工程操作系统环境编程
  首先OS管理并扩展了整个机器资源,提供API系统调用接口,程序员通过这个接口与硬件资源打交道,因此在OS上编程不需要考虑硬件特性,换句话说就是移植性最佳。
  其次,编译器与OS之间的关系非常紧密,OS环境编程很少有人用汇编代码,而是使用各种层次和类型的高级语言。OS环境编程使用的编译器,其功能要比裸机编程的编译器广泛得多。举例而言,GCC编译器能够为多种软硬件平台编译C/C++程序。可以用GCC编译裸机程序,也可以编译OS环境下的程序。GCC编译出来的OS环境可执行文件是裸机环境可执行文件的超集。
  引入操作系统后,程序执行时可以把一个应用程序分割为多个任务,每个任务完成一部分工作,并且每个任务都可以写成死循环。操作系统根据任务的优先级,通过调度器使CPU分时执行各个任务,以保证每个任务都能够得到运行。若调度方法优良,则各任务看起来是并行执行的,从而减少了CPU的空闲时间,提高了CPU的利用率。
物联网操作系统的开源策略
  开源操作系统是指源代码公开的操作系统软件,遵循开源协议进行使用、编译和再发布。在遵守相关开源协议的前提下,任何人都可以免费使用,随意控制软件的运行方式。各种物联网操作系统支持不同的硬件、通信标准和应用场景。开源有利于打破技术障碍和壁垒,提高互操作性和可移植性,减小开发成本,适合开源社区的开发人员参与。物联网操作系统开源的一个范例是英特尔Zephyr物联网操作系统。该操作系统项目的开源策略是与合作伙伴共同打造一个完善的生态系统,从而更好地帮助开发者利用Zephyr操作系统开发物联网设备。
  Zephyr项目以其开源性、灵活性和安全性,将会吸引越来越多的社区用户加入生态系统,产业链上下游的厂商会通过自己的特长对Zephyr项目作出贡献,让其代码和应用越来越完善,进而更好地服务于用户。例如,Linaro可以为Zephyr项目提供优质的ARM架构支持,Runtime.io为资源受限设备运行时提供设备管理和监控。
  英特尔物联网战略非常清晰,发挥从设备到数据中心的技术专长,致力于通过可扩展的软硬件产品路线图,开发智能设备和网关,促进传统系统与云的连接,实现端到端的解决方案,并从大数据中挖掘商业价值。
物联网操作系统的产业生态竞争
  对于物联网发展而言,“碎片化”是主要问题。其中,芯片、传感器、通信协议、应用场景千差万别,山头林立。比如无线通信标准,就有蓝牙、Wi-Fi、ZigBee、PLC、Z-Wave、RF、Thread、Z-Wave、NFC、UWB、LiFi、NB-IoT和LoRa等。它们技术方案不统一,体系结构不一致,阻碍了物联网的发展,也限制了互联互通的范围。碎片化特点必将使得物联网应用对软件的需求多样化。因此,一种操作系统和开发工具很难支持物联网系统中的所有设备。
  当前物联网操作系统的发展状况犹如智能手机操作系统发展的早期阶段。短时间内物联网操作系统很难形成像智能手机中Android和iOS两家瓜分市场的局面。现在物联网操作系统处于初期的探索和打磨阶段,产品尚不成熟,功能尚不完善,协议尚不兼容,标准尚不统一。物联网操作系统的市场竞争将是产业生态的竞争,借助不断完善的生态系统,各个物联网操作系统经过市场的不断验证,优胜劣汰。沉舟侧畔千帆过,病树前头万木春。相信几年后,有一些企业研发的物联网操作系统技术形态和商业模式将会受到产业界的认可,从中脱颖而出。
关于本书
  本书是“物联网工程实战丛书”的第3卷——《物联网之魂:物联网协议与物联网操作系统》。本书第1~2章由孙昊编写;第3章由杜秀芳编写,第4~7章由曾凡太编写;第8~9章由赵帅编写;第10章由王洋编写。曾凡太统筹全稿。本书的出版首先感谢各位青年作者按时完成了写作计划!感谢欧振旭编辑的鼎力支持和出版社其他编辑的辛苦工作!本书编写过程中参考了海量的技术文献,限于篇幅不能一一列出,深表歉意,在此对参考文献的原作者表示衷心的感谢!

  曾凡太
  于山东大学

图书目录

丛书序
序言
第1章 网络通信技术 1
  1.1 数字通信概述 1
  1.2 数字通信关键技术 2
  1.3 数字通信OSI模型 3
  1.4 TCP/IP网络通信协议 7
1.4.1 TCP/IP协议 7
1.4.2 CoAP协议 10
1.4.3 MQTT协议(低带宽) 11
1.4.4 AMQP协议(互操作性) 11
1.4.5 XMPP协议(即时通信) 12
1.4.6 JMS协议 13
  1.5 UDP协议 14
  1.6 HTTP协议 16
1.6.1 工作原理 16
1.6.2 消息结构 17
1.6.3 请求方法 18
1.6.4 响应头信息 19
1.6.5 状态码 20
1.6.6 内容类型 20
  1.7 FTP协议 21
  1.8 Bluetooth协议 23
1.8.1 Bluetooth发展史及优势 23
1.8.2 Bluetooth技术 25
  1.9 ZigBee协议 26
1.9.1 ZigBee发展历史 27
1.9.2 ZigBee的特点及优势 30
1.9.3 ZigBee基本概念 30
1.9.4 ZigBee协议栈 32
  1.10 6LoWPAN低速无线个域网协议 33
  1.11 LoRa WAN低功耗广域网协议 35
  1.12 NB-IoT窄带物联网协议 41
1.12.1 物联网应用场景和技术特点 41
1.12.2 无线通信技术发展过程 48
1.12.3 NB-IoT窄带物联网节能原理 52
1.12.4 NB-IoT通信系统拓扑结构 56
1.12.5 NB-IoT窄带物联网信号收发技术 59
1.12.6 NB-IoT窄带物联网小区接入 64
1.12.7 NB-IoT连接管理 67
1.12.8 NB-IoT数据传输 68
  1.13 MQTT网络协议 71
1.13.1 网络协议比较 71
1.13.2 发布和订阅模型 72
1.13.3 MQTT协议命令 73
1.13.4 MQTT协议参数 74
  1.14 协议转换 77
1.14.1 RS-232/485/CAN转换器 77
1.14.2 基于现场总线的协议转换器 78
1.14.3 物联网协议转换器——网关 79
1.14.4 物联网网关 82
1.14.5 物联网网关应用 84
  1.15 小结 85
  1.16 习题 86
第2章 信息交换技术 87
  2.1 交换技术概述 88
  2.2 数字程控交换 91
  2.3 ATM交换 92
  2.4 以太网交换 92
  2.5 光交换 94
  2.6 二层交换——交换机原理 94
  2.7 三层转发——路由器原理 95
  2.8 三层交换——三层交换机 98
  2.9 交换机设计开发 103
2.9.1 交换机的层次定位 103
2.9.2 交换机的硬件设计 104
2.9.3 交换机的软件设计 107
2.9.4 测试环节 110
  2.10 小结 110
  2.11 习题 111
第3章 无线Wi-Fi技术 112
  3.1 Wi-Fi概述 112
3.1.1 WLAN无线局域网络概述 112
3.1.2 Wi-Fi无线网络起源 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基础参数 121
  3.3 Wi-Fi接入 123
3.3.1 Wi-Fi的STA与AP的接入 123
3.3.2 Wi-Fi的多AP认证和关联过程 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 网络设备注册 159
  3.7 小结 162
  3.8 习题 163
第4章 操作系统概述 164
  4.1 通用计算机操作系统 164
  4.2 嵌入式实时操作系统 166
4.2.1 嵌入式操作系统的主要特点 167
4.2.2 嵌入式操作系统和通用计算机操作系统的区别 167
4.2.3 流行嵌入式实时操作系统 168
  4.3 手机操作系统 171
4.3.1 Android 操作系统 171
4.3.2 Android App研发基础 172
4.3.3 Android App开发文献 174
4.3.4 iOS操作系统 176
  4.4 物联网操作系统 178
4.4.1 概述 178
4.4.2 特点 180
4.4.3 架构 182
4.4.4 实例分析 192
4.4.5 发展趋势 194
  4.5 小结 195
  4.6 习题 196
第5章 物联网操作系统 197
  5.1 微软物联网操作系统 197
  5.2 谷歌物联网操作系统 197
5.2.1 谷歌Brillo 198
5.2.2 谷歌Android Things 199
  5.3 ARM物联网操作系统 203
  5.4 华为物联网操作系统Huawei LiteOS 204
  5.5 中兴物联网操作系统 207
  5.6 庆科物联网操作系统MICO 211
  5.7 小结 220
  5.8 习题 220
第6章 嵌入式Linux操作系统 221
  6.1 uClinux简介 221
  6.2 RTLinux简介 230
  6.3 Ostro Linux简介 234
  6.4 HelloX物联网操作系统 237
6.4.1 HelloX物联网操作系统框架分析 238
6.4.2 HelloX主要功能 239
6.4.3 HelloX的开发方向 241
6.4.4 HelloX用于智慧家庭 243
  6.5 FreeRTOS操作系统简介 246
  6.6 Tiny OS操作系统简介 249
6.6.1 Tiny OS特点 249
6.6.2 Tiny OS组成 251
6.6.3 Tiny OS运行机理 252
6.6.4 Tiny OS开发环境 252
6.6.5 Tiny OS开发过程 253
6.6.6 Tiny OS开发平台 254
6.6.7 Tiny OS的研究项目 254
  6.7 RIOT OS操作系统简介 254
  6.8 小结 258
  6.9 习题 259
第7章 物联网Zephyr操作系统 260
  7.1 Zephyr操作系统概述 261
7.1.1 Zephyr特色 261
7.1.2 支持的微处理器类型 262
7.1.3 支持的通信标准和网络协议 262
7.1.4 内核版本迭代历程 263
  7.2 Zephyr系统内核 266
7.2.1 多线程功能 267
7.2.2 中断服务功能 268
7.2.3 时钟和定时器功能 268
7.2.4 同步功能 268
7.2.5 数据传输功能 269
7.2.6 内存动态分配功能 269
7.2.7 公共和私有内核对象 269
7.2.8 微内核服务器功能 270
7.2.9 C++支持的应用 270
7.2.10 Zephyr源代码结构 271
  7.3 在Linux上搭建Zephyr开发环境 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开发环境 274
  7.5 用MSYS2搭建Zephyr 开发环境 277
  7.6 应用程序开发 279
7.6.1 概述 279
7.6.2 创建应用程序目录app 280
7.6.3 创建应用程序子目录build 281
7.6.4 重构应用程序 282
7.6.5 运行应用程序 282
7.6.6 开发板定制 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操作系统 296
  8.1 准备Ubuntu文件 297
  8.2 安装Ubuntu系统 299
  8.3 连网资源 304
  8.4 更新系统 307
  8.5 目录结构 309
  8.6 启动流程 310
  8.7 编程环境 311
8.7.1 安装编辑器 311
8.7.2 下载并安装JDK 311
8.7.3 Ubuntu开发环境的配置 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操作系统 323
  9.1 OpenWrt开发环境基础 324
9.1.1 OpenWrt硬件需求 324
9.1.2 OpenWrt文件结构和网络结构 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 安装所需的依赖环境 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路由器应用开发 377
9.8.1 OpenWrt系统的编译 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文件系统 420
  10.3 文件系统与设备驱动 421
  10.4 驱动编译及加载实例 423
  10.5 字符设备驱动 427
10.5.1 字符设备驱动初识 428
10.5.2 字符设备驱动构成 431
  10.6 小结 434
  10.7 习题 434
参考文献 435

教学资源推荐
作者: 郭秋萍 陈建辉 主编
作者: Michaet J.Palmer
作者: 李向丽 李磊 陈静 等
作者: (美)Timothy S.Ramteke
参考读物推荐
作者: Stefan Boecking
作者: (美)Bo Begole 著
作者: 塞切尔(Satchell,S.T.) 克里弗(Clifford,H.B.J.)