嵌入式操作系统风云录:历史演进与物联网未来.html.pdf

上传人:紫*** 文档编号:2913581 上传时间:2020-05-21 格式:PDF 页数:205 大小:5.84MB
返回 下载 相关 举报
嵌入式操作系统风云录:历史演进与物联网未来.html.pdf_第1页
第1页 / 共205页
亲,该文档总共205页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《嵌入式操作系统风云录:历史演进与物联网未来.html.pdf》由会员分享,可在线阅读,更多相关《嵌入式操作系统风云录:历史演进与物联网未来.html.pdf(205页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、推荐序 计算机技术可以说是人类历史上最重要的发明之一,但是业内人士担心这一重要技术的发展历史并没有被正确地保留下来。 即使是能够以实物保留的硬件,不少也已经被拆解,无法让后人完整地学习和了解。事实上,美国加利福尼亚山景城的计算机博 物馆正是为了保存计算机技术的历史而创建的。对于软件而言,如何保存的问题就更加严重了,也许只有手册、源代码列表或者 磁带可以保存。 针对这一问题,Allan(何小庆的英文名)决定撰写本书,以自己的力量来更好地保存软件的历史。嵌入式软件的特性决定 了它们隐藏在航空、运输、通信等众多大型应用领域中,对于外界基本是不可见的(除非它们出了故障)。这也意味着除了少数 业内人士以

2、外,更多的人根本都不知道这些软件的存在。尽管如此,嵌入式软件全天候、可靠、安全地运行对于整体系统而言是 极其重要的。 在个人计算机兴起的时代,Intel公司的处理器也遇到了类似的苦恼,但他们成功地通过Intel Inside宣传项目让自己的品牌广 为人知。很遗憾,对于嵌入式操作系统而言,历史上并没有一个关于“内有嵌入式操作系统”的宣传活动来让更多的人知晓它。 尽管嵌入式系统业内没有像Intel这样成功地宣传自己的公司,但好消息是,Allan是业内先锋之一,他处在能够记录历史的独 特位置上。20世纪90年代早期,Allan是中国嵌入式软件市场最早的企业家之一,他先创建了Ready System中

3、国,后来创建了 BMR(麦克泰)。近30年来,Allan一直在推动RTOS技术和嵌入式Linux的应用。1992年前后,Allan加入了国际嵌入式系统社区, 他也很可能因此成为中国最早的Linux和互联网用户之一(Linux在1991年首次发行)。Allan是一个言行一致的企业家,他说到做 到(在硅谷,这是衷心的赞美)。 在本书中,你能够体会到保留软件历史的核心,听到内行人士亲自向你讲述历史。在此向Allan致以敬意,感谢他投入时间 和精力来撰写本书。 Jim Ready 2016年2月9日 写于美国加利福尼亚库比蒂诺 前言 我是在1994年正式进入嵌入式系统这个领域的,之前10年,我虽然参与

4、过工业自动化和通信设备开发项目,但在当时,它们 还不能算是真正意义上的嵌入式系统。可以这样讲,1994年之前我对实时多任务操作系统有一定的了解,但对嵌入式操作系统基 本上是一无所知。20多年一路走过来,我与嵌入式系统和嵌入式操作系统结下了不解之缘。 写作的初衷 本书最初的构想还要从2008年整理的一本小册子嵌入式系统文集说起。就在那一年,我自己有了更多的可以自由支配的 时间,于是我将前几年撰写的20余篇文章整理成文集,并印刷了一小批送给我的朋友,这算是本书的雏形。 2011年,我在桂林参加飞思卡尔大学计划的交流会,期间我做了一个题为“嵌入式系统:以变应变、未来无限”的发言。听 了我的发言,同去

5、参会的电子工业出版社的一位编辑就建议我写一本关于嵌入式操作系统历史的书籍。之后,他还很热情地寄给 我一本吴军写的浪潮之巅。这位朋友的鼓励是我写成本书的一个推动力。 2013年下半年,与非网的刘福锋和高扬两位主编找到我,希望我能写一个介绍嵌入式操作系统发展历史的系列文章。经过构 思,我前后花2个月时间完成了12篇文章,并于2014年13月在与非网“嵌入式操作系统史话”栏目上发表。这些文章受到了业 内人士的普遍好评,也让初学者弄清楚了嵌入式操作系统的概念和产品变迁历史。这一次的系列文章让我对嵌入式操作系统历史 的知识积累更加丰富,也让我确定了撰写嵌入式操作系统风云录图书的计划。 2014年中期,我

6、把与非网文章的链接发给了对嵌入式Linux很感兴趣的张国强先生,当时他是机械工业出版社华章公司的策 划编辑。他很热情地邀请我写一本嵌入式操作系统科技史的图书。于是写这本书就到了水到渠成的时候。此外,我确信物联网操 作系统将是嵌入式操作系统的发展方向之一,这也是我下定决心写本书的原因之一。而在2013年年底写“嵌入式OS的未来”这 篇文章的时候,我只是预感到物联网操作系统可能成为嵌入式产业界未来关注的方向。 本书的内容 本书共15章,包括史话、技术、应用、商业模式和发展几大部分内容。书中全面回顾了嵌入式操作系统的演进历史,主流的 嵌入式操作系统的技术特点、成长历程以及背后的商业故事,展望了嵌入式

7、操作系统未来的技术路径、市场发展趋势和物联网时 代的新机遇。本书以时间为轴,讲述了从RTOS、开源嵌入式操作系统到物联网操作系统的发展历程;以技术为视角,剖析了嵌 入式操作系统的实时性、安全性和云计算等重要技术;从手机、通信、汽车和可穿戴设备几个市场角度讨论了嵌入式操作系统的 应用,从嵌入式操作系统知识产权的角度讨论了商业模式的问题。嵌入式操作系统起源于北美,主要的创新也来自北美,但近年 来,欧洲和亚洲的嵌入式操作系统发展也颇具特色,潜力无限,所以本书也以极大的热情关注了欧亚市场。 致谢 早在1988年我在北航计算机应用专业攻读研究生期间,田子钧和庄梓新两位导师就曾细心指导我对微处理器技术及其

8、应用进 行了深入的研究,这段经历为我今后从事嵌入式系统工作打下了坚实的基础。正如美国著名的嵌入式系统人士Jack Ganssle于2011 年年底所说:“在微处理器出现之前,如果你想在电子产品中加入计算机,那将是一件极其困难的事情。而在今天,任何电子产 品如果没有嵌入智能,那将是无法想象的。” 真正引领我走入嵌入式操作系统大门的是Jim Ready和Andre Kobel。Jim是技术专家和成功的创业者,他善于把握大方向。 Andre精于销售和市场开发,他的帮助最为直接和有效。这两位前辈给了我进入嵌入式操作系统领域的信心,借助于Jim Ready创 建的Ready System和Microte

9、c Research公司的产品,我顺畅地走上了嵌入式系统的研究道路。 2009年以后,我有幸与何立民教授在单片机与嵌入式系统应用杂志社共事。何老是中国单片机的开拓者之一,他敏捷的 思维、开放的思想,以及严谨的作风让我受益匪浅。与何老等人共同创建的嵌入式系统联谊会让我有机会与高校嵌入式和物联网 专业方向的老师相识并交流,加上后来我自己亲身参与高校的嵌入式和物联网的教学工作,这些让我对嵌入式系统的理解多了一 个维度。 在学习和应用嵌入式操作系统的20多年中,许多学生、老师、企业和媒体界的朋友都给过我多方的帮助和支持,这里无法一 一细说,借本书出版之机,谨表达我最真挚的感谢! 本书在写作过程中还得到

10、了多位朋友的帮助,他们的贡献让本书的内容更加丰富,在这里一并奉上我的衷心感谢!这些朋友 是:我与Microtec Research和Montavista合作时的老朋友Jim Ready,他给了我一些珍贵的史料,并为本书撰写推荐序(Jim现在在 Cadence公司工作,任软件开发和业务发展集团的副总裁);Bill Weinberg(Bill曾在Montavista和Black duck工作,现在在OSDL工 作)和Jun Sun博士(Jun曾在Montavista和Google工作);Micrium的Jean Labrosse和Christian Legare;麦克泰公司我的同事江文瑞和 张爱华

11、;还有曾经在麦克泰公司实习的李少莆博士、黄武陵博士和王霞女士;北京理工大学马忠梅副教授;中兴成都研究所的钟 卫东总工程师;北京凯思昊鹏董事长顾玉良博士;RT-Thread的创始人熊谱翔以及Synopsys武汉研究中心的任蔚博士等人,麦克泰 公司及其合作伙伴也给我提供了资料。 我还要感谢多年来科技媒体界朋友们的帮助和支持,尤其是嵌入式联谊会的支持媒体( 在宣传嵌入式操作系统上一直不遗余力。 最后需要特别感谢的是我的家人,我的太太和儿子,他们倾力的支持才能让本书得以顺利完成。我太太帮助我审阅了全书, 并帮助我精心梳理文字;我儿子何灵渊帮助我整理了文章。感谢他们的支持和理解,让我能一直做我喜欢的事。

12、 2016年2月2325日,我访问了德国的纽伦堡,参加Embedded World2016会议和展览。这个展览中,全球著名的嵌入式操作 系统、软件和工具公司悉数登场。比如微软展示了Windows10for IoT,ARM演示了embed OS和谷歌Brillo,QNX展示了汽车电子 应用,Gree Hills和卡巴斯基展示了安全操作系统,Micrium展示了最新的创客版本c/OS for maker。现场我还看到了 Expresslogic、Mentor Graphic、WindRiver(在Intel展位)等著名企业。欧洲Enea和FreeRTOS,德国的Segger、SYSGO、euros

13、也参 加了展示,这些公司在欧洲市场都颇有名气。此外还有更多从事嵌入式操作系统安全认证、测试服务和应用方案的中小企业也来 到现场。150余场技术报告中,许多都是嵌入式操作系统相关的内容,在欧洲物联网和工业4.0发展浪潮中,嵌入式操作系统正在 发挥着举足轻重的作用。 嵌入式操作系统是一门软硬结合、覆盖广泛的应用和工程技术,在当前物联网浪潮袭来之际,嵌入式操作系统再一次被推上 了风口浪尖。我创建了网站,将我过去20多年所写的文章和会议发言的PPT,以及相关的资料全部放在上面, 欢迎对嵌入式操作系统有兴趣的朋友随时浏览,也欢迎朋友们随时以任何方式与我交流和探讨。再次感谢大家! 何小庆 2016年4月2

14、0日 写于北京海淀中关村 第1章 认识嵌入式操作系统 操作系统和物联网是今天大众熟悉的二个专业技术词汇。人们拿起智能手机就想到绿色小机器人谷歌的Android操作系 统;使用电脑的时候就想到了Windows操作系统;当人们驾驶汽车时,使用ETC可以自动交费通过高速路的收费站;人们使用小 米手环每天记录自己的运动步数,到了晚上,微信运动应用会自动将这些数据同步到云端,运动爱好者们在那里一决胜负。这些 都是物联网应用。但是对于嵌入式系统和嵌入式操作系统的认识,人们的观点是不一致的。 什么是嵌入式系统 到底什么是嵌入式系统?什么又是嵌入式操作系统?这些概念不为大众所深入了解。既使我们这些专业人士对于

15、嵌入式系统 定义的理解也不尽相同,但概括起来,嵌入式系统的定义应该是这样两种:第一,嵌入式系统是专用的计算机系统,比如有这样 的定义,以应用为中心,以计算机技术为基础,软件硬件可裁剪,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系 统;第二,嵌入式系统是软件和硬件的综合体,最经典的解释出自美国CMP Books出版的Embedded Systems Dictionary的中 译本的定义,嵌入式系统是一种计算机硬件和软件的组合,也许还有机械装置或其他部件,用于实现一个特定功能。在某些情况 下,嵌入式系统是一个大系统或产品的一部分,例如汽车中的防抱死制动系统。简练一点的定义还有IEEE的定

16、义:嵌入式系统是 软件和硬件的综合体,可以涵盖机电等附属装置。从以上的定义我们不难看出,嵌入式系统具备两个最显著的特点:一个是软硬 结合;一个是计算功能。因此最近Intel和微软公司也把嵌入式系统称为智能系统,这样的说法也有其道理。 今天,嵌入式系统无处不在,从厨房里的电饭煲、冰箱,到我们每天使用的智能手机、智能手环和手表,它们都是嵌入式系 统。还有我们驾驶的汽车和乘坐的高铁、飞机,里面含有许多嵌入式处理器和系统设备;保证我们互联网通信的网络中也有许多 路由器、交换机和网关,它们都是嵌入式系统设备。 什么是嵌入式操作系统 每一个嵌入式系统至少有一个嵌入式微处理器(或微控制器和DSP),运行在这

17、些嵌入式微处理器中的软件就称为嵌入式软 件,也称为固件(firmware)。初期这些软件都不是很复杂。随着嵌入式微处理器和微控制器从8位发展到16位和32位,整个 嵌入式计算机系统也变得越来越庞大和复杂,这就需要有一个操作系统对微处理器进行管理和提供应用编程接口(API)。于 是,实时多任务内核(real-time kernel)在20世纪70年代末应运而生。进入20世纪80年代,嵌入式系统应用开始变得更加复 杂,仅仅只有实时多任务内核的嵌入式操作系统已无法满足以通信设备为代表的嵌入式开发需求。最初的实时多任务内核开始发 展成一个包括网络、文件、开发和调试环境的完整的实时多任务操作系统(称为R

18、TOS)。到了20世纪90年代,嵌入式微处理器 技术已经成熟,除了传统的x86处理器,以ARM7/9为代表的嵌入式处理器开始流行起来,这也让以Linux为代表的通用操作系统 进入了嵌入式系统应用这个领域,一些针对资源受限硬件的Linux发行版本开始出现,也就是我们所说的嵌入式Linux。进入 2000年以后,Android开始被广泛地应用在具有人机界面的嵌入式设备中。近来,物联网操作系统又以崭新的面貌进入了人们 的视野。 所有可用于嵌入式系统的操作系统都可以称为嵌入式操作系统(国外称为Embedded Operating System或者Embedded OS,中文简称为嵌入式OS)。既然它是

19、一个操作系统,那就必须具备操作系统的功能任务(进程)、通信、调度和内存管理 等内核功能,还需要具备内核之外的文件、网络、设备等服务能力。为了适应技术发展,嵌入式操作系统还应具备多核、虚拟化 和安全的机制,以及完善的开发环境和生态系统。嵌入式OS必须能支持嵌入式系统特殊性的需求,如实时性、可靠性、可裁剪 和固化(嵌入)等特点。这里不一一细说。 Labrosse和Noergaard在Embedded Software中的“Embedded Operating System”一章中对嵌入式操作系统有这 样的描述:每一种嵌入式操作系统所包含的组件可能有所不同,但至少都要有一个内核,这个内核应具备操作系

20、统的基本功能。 嵌入式操作系统可以运行在任何移植好的CPU上,可以在设备驱动程序之上运行,也可以通过BSP(板支持软件包)来支持操作 系统运行。 20世纪70年代末,嵌入式操作系统的商业产品开始在北美出现。进入20世纪90年代,嵌入式操作系统的数量呈井喷式增 加,最鼎盛的时候有数百种之多,经过30多年的市场发展和淘汰,如今依然有数十种。但是,真正在市场上具有影响力并有一 定的客户数量和成功的应用产品的嵌入式操作系统并不多,常见的有:eCos、C/OS-II和III、VxWorks、pSOS、Nucleus、 ThreadX、Rtems、QNX、INTEGRITY、OSE、C Executive

21、、CMX、SMX、emOS、Chrous、VRTX、RTX、FreeRTOS、 LynxOS、ITRON、Symbian、RT-thread,以及Linux家族的各种版本,比如Clinux、Android和Meego等,还有微软家族的 WinCE、Windows Embedded、Windows Mobile等。其中有些产品已经因为公司被收购而消失,比如pSOS、VRTX和 Chrous等;还有的开源嵌入式操作系统因为缺少维护而逐渐被放弃,比如eCos和Meego等。关于这些操作系统的情况,本书 后面的章节将会有更多的介绍。 嵌入式操作系统分类 通用的操作系统按照应用可分成桌面和服务器两种版本

22、,近年随着智能终端(手机和平板电脑)的兴起,又增加了一个移动 版本,而服务器版本随着云计算的发展,又出现了云操作系统这一“新贵”。但是,嵌入式操作系统分类却是一件很困难的事 情。原因是什么呢?因为嵌入式系统没有一个标准的平台。从实时性角度看,嵌入式操作系统可分为硬实时和软实时,RTOS是 硬实时操作系统,而Linux是软实时的操作系统;从商业模式看可分为开源和闭源(私有);从应用角度看可分为通用的嵌入式 操作系统和专用的嵌入式操作系统。比如,VxWorks就是硬实时、私有和专用的操作系统,而嵌入式Linux就是软实时、开源和 通用的嵌入式操作系统。Android是一个有趣的例子,它主要应用在智

23、能手机和平板电脑中,不是一个典型的嵌入式操作系统。 但是最近几年,它也开始广泛应用在消费电子产品中,比如智能电视、智能手表,甚至是工业电子应用中,这说明它正在逐渐变 成为一个嵌入式操作系统。 从内核技术看,嵌入式操作系统有3种架构:单片(monolithic)、分层(layer)和微内核(microkernel)。单片架构是 将设备驱动、中间件和内核功能模块集成在一起。单片架构的操作系统因为结构上很难裁剪和调试,后期发展成模块化单片架 构,典型的单片架构的操作系统有C/OS-II和Linux等。分层架构是指操作系统分成不同级别的层,上层的功能依赖底层提供的 服务。这种架构的好处是易于开发和维护

24、,但是每层都有自己的API,所带来的附加开销会使操作系统的尺寸增加和性能降 低,VRTX32是一个典型分层架构的嵌入式操作系统。模块化的进一步发展,最小内核功能压缩成只有存储和进程管理,设备驱 动变成一个更小内核模块的操作系统,称为微内核操作系统。这个操作系统的附件模块因为可以动态地加载,使得系统的可伸缩 和可调试性更强,独立的内存空间又使得系统的安全性更好,模块化的架构更容易移植到不同的处理器上。比较前面两种架构, 微内核的操作系统的整体开销更大,性能和效率要低。目前商业的嵌入式操作系统多数都是微内核架构,比如CMX-RTX、 VxWorks、Nucleus plus、QNX和VRTXsa。

25、 嵌入式操作系统的应用 可以说,哪里有嵌入式的应用,哪里就有嵌入式操作系统的身影。今天的嵌入式应用已经无处不在,嵌入式操作系统更是随 处可见。但是必须强调,嵌入式操作系统对于系统的处理器和其他资源均有一定要求和占用,商业嵌入式操作系统要收取一定的 开发和使用费用,即使是开源的嵌入式操作系统,你在开发中也或许要向商业公司购买技术服务。这些都将是最终的电子产品的 成本因素,如果你想降低成本,对于那些开发者不多且易于维护的简单应用,就可以选择不使用操作系统。哪些应用适合而且必 须使用嵌入式操作系统呢?笔者根据自己20多年的实践经验,认为下面所列出的各项是市场上嵌入式操作系统应用的热点。 无线通信产品

26、:比如手机、基站和无线交换机等无线通信设备大量使用嵌入式操作系统和中间件(通信协议等)。 网络产品:比如路由器、交换机、接入设备和信息安全产品等大量使用RTOS和开源的Linux。 智能家电:比如智能电视、IP机顶盒、智能冰箱等产品大量使用包括Android在内的嵌入式操作系统。 航空航天和军事装备:包括飞机、宇航器、舰船和武器装备等在内,都在使用经过认证的RTOS,这个领域也是嵌入式操 作系统最早开发的市场之一。 汽车电子:现代汽车和运输工具大量使用嵌入式处理器技术,正在从采用私有的RTOS转向采用标准和开放的RTOS和通 用的嵌入式操作系统技术。随着智能交通和车联网的发展,汽车电子将给嵌入

27、式操作系统发展带来一个新的春天。 物联网应用:物联网和云计算是IT产业技术发展的两大推手,其中物联网的发展对嵌入式操作系统的需要和影响更大。物 联网应用需要嵌入式操作系统来支持低功耗无线网络技术、物联网网关、物联网安全,以及动态的升级和维护功能。 第2章 嵌入式操作系统的历史 20世纪70年代末,嵌入式操作系统商业产品开始在北美出现,20世纪90年代末嵌入式OS的数量呈井喷式增加,最鼎盛的时 候有数百种之多,即使经过30多年的发展和淘汰,现在嵌入式OS依然有数十种之多。最早的嵌入式操作系统是实时多任务操作 系统(RTOS)内核,支持8位和16位微处理器,它初期使用汇编和PLM语言编程,后来支持

28、C和Ada。本章讲述了RTOS发展历史 中几个重要产品背后的故事。 VRTX:嵌入式操作系统的开拓者 最早出现的商业嵌入式操作系统当属VRTX,因其技术上的创新性,VRTX很快就得到了用户和嵌入式系统公司的广泛支 持。VRTX可称为商业嵌入式操作系统的开拓者和领导者。 VRTX的历史 起初VRTX是Hunter static struct deviceomap_i2c_driver= .name =OMAP161xI2C Controller, .bus_id =I2C device_driver =NULL, .constraints = static struct constraints

29、my_i2c_constraints= .count =1, /*constraints Num.*/ .param =DPM_MD_MULT,100,500, ; I2C驱动注册到MPU公有TI外围总线:driver_reg- ister(&omap_i2c_driver)platform_device_register(&omap_i2c_device)。在驱动程序中实现挂起和恢复函数为 omap_i2c_controller_suspen(&omap_i2c_device),omap_i2c_con-troller_resume(&omap_i2c_deviee)。这样,所有 注册到系统

30、的设备在sysfs中都有一个管理接口。通过这些接口可以操纵设备的电源状态。在多种情况下,可利用该接口来挂断 设备,例如:应用程序显式挂断应用中不需要的设备;平台挂起前需挂断所有设备;当DPM将系统设置到设备不兼容状态时需 挂起该设备等。其中DPM中管理设备电源状态时还提供设备驱动约束检查(频率相关)。例如,当系统电源状态改变,准备运 行在新的操作点时,驱动约束检查该状态是否满足设备正常运行。如果不满足,且当前操作点force属性设置为1,设备首先被 LDM回调函数关断(或将设备置于和此时PLL相应的挂起状态);如果满足条件,则利用设备驱动中实现的调节函数转到新状 态。 驱动约束还用于限制DPM

31、操作方式。当没有设备被使用时,约束才允许DPM将系统转到低电源空闲状态。 结语 DPM技术通过内核模块的方式实现了任务级别的电源管理,实现了有效的设备电源管理,满足了嵌入式Linux的需求,补充 了基于桌面系统APM和APCI电源管理技术的不足。实践证明,DPM对嵌入式系统,尤其是移动终端,能够达到很好的节能效 果。 当然,动态电源管理系统还有待于进一步完善。例如,可以根据硬件和软件收集系统负载状态,使用Markov链等手段准确 预测电源状态,从而设计出更智能、更有效的状态切换管理策略;电源管理和实时性能要求之间的复杂关系还需处理等。 后记 谷歌的Android手机操作系统是一个开放系统,内核

32、仍然采用了Linux,上层应用采用了Java。Linux内核层面对电源管理的 支持是Android的电源管理技术的基础。Android电源管理分成3个部分:内核驱动、Android framework和Linux内核。配合最 新的智能手机芯片,比如高通和Marvel,Android系统可以实现CPU的动态频率和电压调节。读者可参考Android相关图书和论 文了解实现的细节。 第8章 嵌入式系统安全 嵌入式系统的安全(Safety和Security)包含了两个层面的含义:第一层意思是指嵌入式系统功能安全,即保障系统的危害可 控;第二层意思是指抵抗外部的伤害,比如网络攻击。物联网系统中的嵌入式系

33、统安全问题是本章的重点。 物联网中的嵌入式安全 物联网安全是最近非常热的话题,我参加了2016年纽伦堡嵌入式世界展的会议,期间有3天会议,6大主题之一是 Security&Safety,物联网专题中也有不少内容是关于物联网安全。今年特邀主旨发言之一是卡巴斯基公司创始人Eugene Kaspesky,他演讲的题目是“从信息黑暗时代走出,我们的路还很长”。由此可见网络安全现状的严重性。互联网安全既然如 此,物联网安全形势更加严峻。 最近几年,物联网(IoT)风起云涌,随之而来的是,联网后的嵌入式系统安全问题更加严峻。归纳起来,物联网嵌入式安 全设计应考虑以下几个方面: 1)容易被攻击的对象显著增多

34、。比如家电联网变成智能家居,汽车联网变成车联网,那么汽车和家电就成了可以被攻击的 对象。这里的汽车是指广义的交通工具,包括公共交通和飞机等,未来的无人驾驶汽车也是可能受到攻击的对象。我最近乘坐美 联航和Bluejet航空公司的飞机,均已提供机内WiFi服务,这就使攻击者有了趁虚而入的机会。 2)越来越多的日常活动可能因为受攻击而中断。除了汽车和家电以外,大量可穿戴的医疗健康设备,都能够通过智能手机 接入互联网,这类攻击可能导致设备发生故障,危害人们的健康甚至生命。 3)互联网和大数据通过传感器收集到了大量物(Things)的信息,其内容更加广泛,一旦重要信息泄漏,后果不堪设想。 我们驾驶的汽车

35、的位置、个人信息和疾病信息,以及智慧城市的建筑和交通等管理信息,都可能被泄漏。 4)电网、交通运输和管理、核电站和环境监测等关键系统,若遭到黑客的攻击,将会造成毁灭性的危害。 5)新的开放的标准与传统的私有的标准之间的转换带来的安全隐患。比如,如果物联网设备中使用的ZigBee、Z-Wave、 Thread和ANT协议,与互联网IP协议之间需要转换,就必须考虑安全性的问题。国际性标准组织IETF、ITU,以及民间企业联盟 OIC和AllJoyn等,正在针对架构层做有关安全性的研究工作,期望降低安全风险,但是因为大量的设备已经存在,所以还需要 一段时间才能完善。 物联网安全已经开始引起计算机科学

36、、通信技术等学科的专家学者,以及半导体、IT和嵌入式系统产业界人士的高度重视。 哥伦比亚大学计算机专业2015年春天讲授的网络安全课程已经加入了IoT安全方面的内容,很多相关企业也在加紧推出物联网安 全方面的产品。2015年6月,我在旧金山一个嵌入式会议上遇到一家网络软件公司Icon lab的创始人和CEO Alan Gran,会上他 介绍了他们公司面向工业物联网(IIoT)嵌入式网络安全软件技术。著名开源技术咨询公司Blackduck公司的开源策略总监Bill Weinberg,在其“物联网与开源软件”(The Internet of Things and Open Source)一文中详细

37、讨论了物联网端点和边缘节 点设备的安全问题,ARM、NXP、飞思卡尔、谷歌和微软也在芯片和物联网操作系统层面布局了物联网系统安全技术和解决方 案。可见,物联网安全正在快速发展中。 延伸阅读 关于嵌入式系统和物联网系统的安全,笔者推荐由机械工业出版社2015年11月出版的嵌入式系统安全安全与可信软件 开发实战方法一书,它是国内第一本专业的嵌入式系统安全方面的译著。 该书的作者是两位嵌入式系统安全领域专家,David Kleidermacher是格林希尔(Green Hill)软件公司首席技术官,主要 负责制定技术战略、平台规划及方案设计。自1991年起,他一直在公司从事系统软件和安全领域的研究,

38、参与并指导了多种高 安全等级的产品。另一位作者Mike Kleidermacher是一位资深电子工程师,45年来他一直致力于安全嵌入式设备的设计、实现 及战略演进。 正如莱比锡应用科学大学教授、嵌入式世界会议指导委员会主席Matthias Sturm博士在推荐语中所说:“嵌入式系统的安 全比以往任何时候都要重要,网络快速增长是其中一个原因。然而,很多嵌入式系统开发人员缺乏实现他们设计的系统安全的知 识。David Kleidermacher是该领域名满天下的专家,在书中与其他工程师分享了他的知识和长期的经验。这本非常重要的书的 出版恰逢其时。” 该书由兰州大学周庆国教授组织翻译。周教授长期从事

39、嵌入式系统和开源软件安全方面的工作,翻译团队对书中的技术内容 有着深刻的理解。我应邀为该书写了推荐序,相信关注嵌入式系统安全的读者阅读本书后会有收获。 基于嵌入式操作系统的物联网安全 当今社会的很多商业行为、通信、金融交易及娱乐在很大程度上依赖于互联网。随着越来越多的设备连接到物联网(IoT) 中,各个行业对互联网的依赖性将不断增加。如果设备不安全,这种依赖将导致互联网重大的安全漏洞,并使设备遭到攻击和破 坏。 目前,很多在使用的物联网设备,根据不同的应用范围将持续使用。例如,公用事业使用的仪表几乎不会更换,通信基础设 施的设计使用年限为50年,电力传输系统使用寿命也在30年以上。住宅、办公室

40、、工业建筑和其他建筑物可以每10年装修一 次,以便长期使用。如果这些设备不安全,在威胁增加时,它们很快会被抛弃。 为保持用户对智能设备的投资,保护设备免遭破坏,安全成为所有新型设备的基本要求。在未来的几年中,将有500亿的物 联网设备连入互联网,其中很大一部分是使用微控制器和资源有限的微处理器。幸运的是,与大型设备相比,这些小型设备更容 易保护,更不易受到同类型威胁的攻击,因而显得更安全。但并不意味着安全很容易实现,只是如果能正确地利用MCU和小型 的MPU的特性,则开发安全的设备不困难而已。本文的后续部分将讨论如何保护物联网中的小型设备。 物联网安全特征 为了充分保护MCU或小型MPU,下列

41、安全功能通常是必需的。当然,并不是每个系统都必须具备所有功能。使用标准信息 技术实现的安全解决方案是嵌入式MCU和MPU产品安全机制的核心。这些安全协议包括:TLS、IPSec/VPN、SSH、SFTP、安 全启动和自动回调、过滤、HTTPS、SNMP v3、安全的无线连接、加密和解密、加密文件系统、DTLS(用于UDP安全)和安全 电子邮件。 其中,TLS、IPSec/VPN、HTTPS、安全的无线连接及DTLS意味着安全的通信连接;SFTP提供了安全的文件传输;SSH提 供了安全的远程访问;而安全电子邮件则提供了基于加密连接的邮件服务。 支持自动回退的安全启动程序(bootloader)确

42、保系统不被破坏。SNMPv3、数据加密和加密文件系统通过加密保护本地 数据或传输到其他机器的数据。过滤实际上是防火墙的功能,用于阻止不受欢迎的访问。各个协议将在系统安全一节之后讨论。 系统安全 只有系统中最薄弱的连接或组件都可靠时,整个系统才是安全的。为保证系统的安全,其所有的通信通道、文件传输、数据 存储和系统更新方式都必须是安全的。在系统支持动态加载、可执行文件修改及其他复杂功能时,实现系统安全是非常困难的。 想象以下这些场景: 1)入侵者通过电子邮件、ftp或其他方式将文件传入设备。 2)文件动态加载,其运行时,会破坏其他可执行文件,然后需要清理现场并删除自己。 3)如果病毒很新,系统不

43、认识该病毒,它将获准进入系统并感染系统。 再考虑另外一种情况,在不安全或者没有正确安全设计的通信连接中,有可能读取少量的数据,还可能有办法在数据流中添 加新的数据,并破坏正在接收数据的系统。 通过互联网加载不安全的镜像文件到设备就是这种情况的一个实例。当新加载的镜像运行时,如果该镜像可以正确访问系 统,不安全的镜像文件将接管整个系统。 还有一种情况就是设备的关键数据会被窃取,除非数据被加密或保存在安全文件系统中,才可能从设备中恢复加密的数据。 这是需要考虑的另一种情况。 为了确保系统安全,最好的方式是考虑如何访问设备信息。通常,好的安全系统要求:你知道的(密码)、你拥有的(借记 卡或可穿戴式设

44、备)和你是谁(虹膜扫描设备)。 对小型设备来说,这些安全措施过头了。但如果系统有非常高的安全要求,可以通过间接方式来实现,只要确保系统的各个 组件都是安全的。通过与服务器的安全交互,服务器可以安全地访问设备,安全设备接口可以运行在大型设备上,也可以用于小 型设备。 安全系统的另一个关键要素是分层安全,假设一些人只需要访问系统的一部分,好的设计原则采用分层安全机制。这种情况 下,如果没有重要的工作,入侵者仅能访问部分系统。一个实例是使用两个防火墙级联来保护服务器,因此,一个防火墙的漏洞 可以被第二个防火墙隔离。 如图8-1所示提供了安全功能的软件概述。后面将针对前面列出的场景,讨论如何使用这些软

45、件,以保护系统。 图8-1 安全物联网系统应该包含的互联网协议软件 通信安全 通信安全协议确保机器到机器间的通信安全。有一个可以依赖的信任等级,以建立安全通信。 TLS及其前身SSL是为TCP套接字流和需按顺序交付的流连接提供通信安全的最常用的方式。DTLS是一个新的协议,提供可 靠的UDP传输和基于TLS的数据包传输。TLS和DTLS协议面向应用到应用间的通信。 IPSec或虚拟专用网络(VPN)在TCP协议栈的基础上使用虚拟链路安全技术。它的设置比较困难,但它允许应用通过链路 通信,即使应用没有提供安全保护。通常情况下,由于设置困难,并且很多人认为NSA(美国国家安全局)参与开发的算法不

46、安全,导致它没有被广泛使用。 HTTPS是建立在TLS上的安全的网络服务器访问协议,它提供了安全的应用访问,通过与SSH相同的方式,为远程用户提供 安全的模拟终端访问。 安全的无线连接确保无线信息不被收集,数据不会被其他人通过天线获取。 安全电子邮件用于确保数据不会通过电子邮件直接传输。一种方式是在邮件发送之前加密数据。而更简单、更通用的方案是 在加密连接中提供邮件服务,以确保管理邮件的服务器接收的所有邮件数据都是安全的。 基于SNMP的安全文件传输 使用加密和解密程序保护数据时,SNMPv3用于加密数据。如果所有的数据都很重要,可以使用文件加密,尽管文件加密 方式会损失性能。 过滤和防火墙

47、防火墙通过过滤网络服务器发送所有数据包,拒绝未授权的访问。通过过滤,设计者可以确保只有真正的用户才能访问系 统,阻止非法访问,保证系统安全。这些过滤规则需要在设备上配置,过滤功能通常需要结合SSH或SNMP使用。 安全启动 安全启动是一个安全系统的重要组成部分,支持固件更新并通过安全的方式实现更新非常重要,固件更新可以删除所有工厂 固件,并通过自动回退(fall back)机制增强了该功能。通过自动回退,如果新的固件(可能损坏)导致启动失败,可以使用旧 的安全版本重新启动系统,这是分层安全机制的部分功能。 Unison操作系统(Nanoexec)分层安全机制通过解释器或其他方式加载的程序运行时

48、,可能破坏系统。Unison的操作系 统在底层提供了额外的安全启动功能,以保护系统,该功能使得系统很难被攻击,如图8-2所示。 图8-2 Unison操作系统(Nanoexec)架构 系统安全的考虑 现在考虑一下这种情况:MCU或资源有限的MPU需要应用很多协议以实现安全目的。一个参考实例是Unison的操作系 统,它是一个小型的POSIX实时操作系统,以非常小的代码尺寸提供了这些安全功能。 首先,Unison系统使用了安全通信协议,目标设备的所有应用是安全的。这些应用包括手机应用、面向小型网络服务器的 安全Web访问等。类似缓冲区溢出之类的攻击是不可能的,因为Unison设计在运行时占用很少

49、的资源,禁止任何不合理的资源 占用。还可以使用安全无线连接,但必须使用VPN。 可以使用SFTP将文件传输到系统。该机制保证数据在传输时不被破坏,这对安全系统更新非常重要。在TCP服务器前端增 加过滤处理,可以确保只处理授权的请求和更新,防止设备被入侵,极大地提高了安全性。此外,可以使用终端通过SSH协议远 程配置设备。与使用网络服务器相比,使用脚本的方法更可靠。这种配置方式确保了配置设备也是安全的。此时,设备接收和发 送的数据是安全的。任何更改或配置也是可靠的,授权的应用和用户可以使用设备的数据和功能。 如果设备被偷了,怎么办?为了应对这种情况,可以加密设备存储的数据,不使用本地数据或使用加密文件系统,这将确保 设备的关键数据是安全的。如果用户的设备有密码,通常被认为是合适的安全措施。还可以增加其他安全措施,如增加指纹扫 描、虹膜扫描、掌纹和其他功能给设备,或将其连接到安全工作站,以增加设备的可靠性。 前面列出的安全场景中,可能破坏系统安全的情况都一一考虑到了。对MCU或一些MPU来说,程序是一个运行在Flash中 的单个映像文件。这种情况下,由于整个映像在Flash中运行,并且如果启动机制和

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com