admin管理员组

文章数量:1613371

嵌入式操作系统风云录:

历史演进与物联网未来


何小庆 著





图书在版编目(CIP)数据

嵌入式操作系统风云录:历史演进与物联网未来 / 何小庆著. —北京:机械工业出版社,2016.10

ISBN 978-7-111-55085-3

Ⅰ. 嵌…   Ⅱ. 何…   Ⅲ. 实时操作系统   Ⅳ. TP316.2

中国版本图书馆CIP数据核字(2016)第248216号

本书全面回顾了嵌入式操作系统的演进历史,主流的嵌入式操作系统的技术特点、成长历程以及背后的商业故事,展望了嵌入式操作系统未来的技术路径、市场发展趋势和物联网时代的新机遇。并按时间轴讲述了从RTOS、开源嵌入式操作系统到物联网操作系统的发展历程,以技术为视角剖析了嵌入式操作系统的实时性、安全性和云计算等重要技术,从手机、通信、汽车和可穿戴设备几个市场讨论了嵌入式操作系统的应用,从嵌入式操作系统知识产权角度讨论了商业模式的问题。

本书适合电子信息行业的人士阅读,尤其适合嵌入式系统、电子设计和工业控制领域的工程技术人员、管理和营销人士阅读,也可供从事嵌入式系统教学和学术研究领域的科研人员、老师,以及高校计算机、物联网、电子信息和自动控制等专业学习嵌入式课程的学生学习参考。





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

出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037)

责任编辑:缪 杰 责任校对:殷 虹

印  刷: 版  次:2016年11月第1版第1次印刷

开  本:186mm×240mm 1/16 印  张:16.75

书  号:ISBN 978-7-111-55085-3 定  价:59.00元

凡购本书,如有缺页、倒页、脱页,由本社发行部调换

客服热线:(010)88379426 88361066 投稿热线:(010)88379604

购书热线:(010)68326294 88379649 68995259 读者信箱:hzit@hzbook

版权所有·侵权必究

封底无防伪标均为盗版

本书法律顾问:北京大成律师事务所 韩光/邹晓东





Foreword 推荐序

计算机技术可以说是人类历史上最重要的发明之一,但是业内人士担心这一重要技术的发展历史并没有被正确地保留下来。即使是能够以实物保留的硬件,不少也已经被拆解,无法让后人完整地学习和了解。事实上,美国加利福尼亚山景城的计算机博物馆正是为了保存计算机技术的历史而创建的。对于软件而言,如何保存的问题就更加严重了,也许只有手册、源代码列表或者磁带可以保存。

针对这一问题,Allan(何小庆的英文名)决定撰写本书,以自己的力量来更好地保存软件的历史。嵌入式软件的特性决定了它们隐藏在航空、运输、通信等众多大型应用领域中,对于外界基本是不可见的(除非它们出了故障)。这也意味着除了少数业内人士以外,更多的人根本都不知道这些软件的存在。尽管如此,嵌入式软件全天候、可靠、安全地运行对于整体系统而言是极其重要的。

在个人计算机兴起的时代,Intel公司的处理器也遇到了类似的苦恼,但他们成功地通过Intel Inside宣传项目让自己的品牌广为人知。很遗憾,对于嵌入式操作系统而言,历史上并没有一个关于“内有嵌入式操作系统”的宣传活动来让更多的人知晓它。

尽管嵌入式系统业内没有像Intel这样成功地宣传自己的公司,但好消息是,Allan是业内先锋之一,他处在能够记录历史的独特位置上。20世纪90年代早期,Allan是中国嵌入式软件市场最早的企业家之一,他先创建了Ready System中国,后来创建了BMR(麦克泰)。近30年来,Allan一直在推动RTOS技术和嵌入式Linux的应用。1992年前后,Allan加入了国际嵌入式系统社区,他也很可能因此成为中国最早的Linux和互联网用户之一(Linux在1991年首次发行)。Allan是一个言行一致的企业家,他说到做到(在硅谷,这是衷心的赞美)。

在本书中,你能够体会到保留软件历史的核心,听到内行人士亲自向你讲述历史。在此向Allan致以敬意,感谢他投入时间和精力来撰写本书。


Jim Ready

2016年2月9日

写于美国加利福尼亚库比蒂诺





Preface 前 言

我是在1994年正式进入嵌入式系统这个领域的,之前10年,我虽然参与过工业自动化和通信设备开发项目,但在当时,它们还不能算是真正意义上的嵌入式系统。可以这样讲,1994年之前我对实时多任务操作系统有一定的了解,但对嵌入式操作系统基本上是一无所知。20多年一路走过来,我与嵌入式系统和嵌入式操作系统结下了不解之缘。

写作的初衷

本书最初的构想还要从2008年整理的一本小册子《嵌入式系统文集》说起。就在那一年,我自己有了更多的可以自由支配的时间,于是我将前几年撰写的20余篇文章整理成文集,并印刷了一小批送给我的朋友,这算是本书的雏形。

2011年,我在桂林参加飞思卡尔大学计划的交流会,期间我做了一个题为“嵌入式系统:以变应变、未来无限”的发言。听了我的发言,同去参会的电子工业出版社的一位编辑就建议我写一本关于嵌入式操作系统历史的书籍。之后,他还很热情地寄给我一本吴军写的《浪潮之巅》。这位朋友的鼓励是我写成本书的一个推动力。

2013年下半年,与非网的刘福锋和高扬两位主编找到我,希望我能写一个介绍嵌入式操作系统发展历史的系列文章。经过构思,我前后花2个月时间完成了12篇文章,并于2014年1~3月在与非网“嵌入式操作系统史话”栏目上发表。这些文章受到了业内人士的普遍好评,也让初学者弄清楚了嵌入式操作系统的概念和产品变迁历史。这一次的系列文章让我对嵌入式操作系统历史的知识积累更加丰富,也让我确定了撰写嵌入式操作系统风云录图书的计划。

2014年中期,我把与非网文章的链接发给了对嵌入式Linux很感兴趣的张国强先生,当时他是机械工业出版社华章公司的策划编辑。他很热情地邀请我写一本嵌入式操作系统科技史的图书。于是写这本书就到了水到渠成的时候。此外,我确信物联网操作系统将是嵌入式操作系统的发展方向之一,这也是我下定决心写本书的原因之一。而在2013年年底写“嵌入式OS的未来”这篇文章的时候,我只是预感到物联网操作系统可能成为嵌入式产业界未来关注的方向。

本书的内容

本书共15章,包括史话、技术、应用、商业模式和发展几大部分内容。书中全面回顾了嵌入式操作系统的演进历史,主流的嵌入式操作系统的技术特点、成长历程以及背后的商业故事,展望了嵌入式操作系统未来的技术路径、市场发展趋势和物联网时代的新机遇。本书以时间为轴,讲述了从RTOS、开源嵌入式操作系统到物联网操作系统的发展历程;以技术为视角,剖析了嵌入式操作系统的实时性、安全性和云计算等重要技术;从手机、通信、汽车和可穿戴设备几个市场角度讨论了嵌入式操作系统的应用,从嵌入式操作系统知识产权的角度讨论了商业模式的问题。嵌入式操作系统起源于北美,主要的创新也来自北美,但近年来,欧洲和亚洲的嵌入式操作系统发展也颇具特色,潜力无限,所以本书也以极大的热情关注了欧亚市场。

致谢

早在1988年我在北航计算机应用专业攻读研究生期间,田子钧和庄梓新两位导师就曾细心指导我对微处理器技术及其应用进行了深入的研究,这段经历为我今后从事嵌入式系统工作打下了坚实的基础。正如美国著名的嵌入式系统人士Jack Ganssle于2011年年底所说:“在微处理器出现之前,如果你想在电子产品中加入计算机,那将是一件极其困难的事情。而在今天,任何电子产品如果没有嵌入智能,那将是无法想象的。”

真正引领我走入嵌入式操作系统大门的是Jim Ready和Andre Kobel。Jim是技术专家和成功的创业者,他善于把握大方向。Andre精于销售和市场开发,他的帮助最为直接和有效。这两位前辈给了我进入嵌入式操作系统领域的信心,借助于Jim Ready创建的Ready System和Microtec Research公司的产品,我顺畅地走上了嵌入式系统的研究道路。

2009年以后,我有幸与何立民教授在《单片机与嵌入式系统应用》杂志社共事。何老是中国单片机的开拓者之一,他敏捷的思维、开放的思想,以及严谨的作风让我受益匪浅。与何老等人共同创建的嵌入式系统联谊会让我有机会与高校嵌入式和物联网专业方向的老师相识并交流,加上后来我自己亲身参与高校的嵌入式和物联网的教学工作,这些让我对嵌入式系统的理解多了一个维度。

在学习和应用嵌入式操作系统的20多年中,许多学生、老师、企业和媒体界的朋友都给过我多方的帮助和支持,这里无法一一细说,借本书出版之机,谨表达我最真挚的感谢!

本书在写作过程中还得到了多位朋友的帮助,他们的贡献让本书的内容更加丰富,在这里一并奉上我的衷心感谢!这些朋友是:我与Microtec Research和Montavista合作时的老朋友Jim Ready,他给了我一些珍贵的史料,并为本书撰写推荐序(Jim现在在Cadence公司工作,任软件开发和业务发展集团的副总裁);Bill Weinberg(Bill曾在Montavista和Black duck工作,现在在OSDL工作)和Jun Sun博士(Jun曾在Montavista和Google工作);Micrium的Jean Labrosse和Christian Legare;麦克泰公司我的同事江文瑞和张爱华;还有曾经在麦克泰公司实习的李少莆博士、黄武陵博士和王霞女士;北京理工大学马忠梅副教授;中兴成都研究所的钟卫东总工程师;北京凯思昊鹏董事长顾玉良博士;RT-Thread的创始人熊谱翔以及Synopsys武汉研究中心的任蔚博士等人,麦克泰公司及其合作伙伴也给我提供了资料。

我还要感谢多年来科技媒体界朋友们的帮助和支持,尤其是嵌入式联谊会的支持媒体(http://www.esbf/),科技媒体在宣传嵌入式操作系统上一直不遗余力。

最后需要特别感谢的是我的家人,我的太太和儿子,他们倾力的支持才能让本书得以顺利完成。我太太帮助我审阅了全书,并帮助我精心梳理文字;我儿子何灵渊帮助我整理了文章。感谢他们的支持和理解,让我能一直做我喜欢的事。

2016年2月23~25日,我访问了德国的纽伦堡,参加Embedded World 2016会议和展览。这个展览中,全球著名的嵌入式操作系统、软件和工具公司悉数登场。比如微软展示了Windows 10 for IoT,ARM演示了embed OS和谷歌Brillo,QNX展示了汽车电子应用,Gree Hills和卡巴斯基展示了安全操作系统,Micrium展示了最新的创客版本—c/OS for maker。现场我还看到了Expresslogic、Mentor Graphic、WindRiver(在Intel展位)等著名企业。欧洲Enea和FreeRTOS,德国的Segger、SYSGO、euros也参加了展示,这些公司在欧洲市场都颇有名气。此外还有更多从事嵌入式操作系统安全认证、测试服务和应用方案的中小企业也来到现场。150余场技术报告中,许多都是嵌入式操作系统相关的内容,在欧洲物联网和工业4.0发展浪潮中,嵌入式操作系统正在发挥着举足轻重的作用。

嵌入式操作系统是一门软硬结合、覆盖广泛的应用和工程技术,在当前物联网浪潮袭来之际,嵌入式操作系统再一次被推上了风口浪尖。我创建了www.hexiaoqing网站,将我过去20多年所写的文章和会议发言的PPT,以及相关的资料全部放在上面,欢迎对嵌入式操作系统有兴趣的朋友随时浏览,也欢迎朋友们随时以任何方式与我交流和探讨。再次感谢大家!


何小庆

2016年4月20日

写于北京海淀中关村





Contents 目 录

推荐序

前言

第1章 认识嵌入式操作系统 1

什么是嵌入式系统 2

什么是嵌入式操作系统 2

嵌入式操作系统分类 3

嵌入式操作系统的应用 4

第2章 嵌入式操作系统的历史 6

VRTX:嵌入式操作系统的开拓者 7

嵌入式操作系统的“摩托”系 11

C/OS的故事 13

风河—嵌入式操作系统的常青树 18

嵌入式操作系统的红花绿叶 22

第3章 开源的嵌入式操作系统 27

开源软件与嵌入式操作系统 28

嵌入式系统开源软件的思考 32

构建你自己的Linux 37

从Montavista看嵌入式Linux的发展 40

Linux和Android:谁更适合你 47

第4章 IT大佬的嵌入式操作系统梦 53

微软嵌入式操作系统分析 54

ARM:成长中的烦恼 63

如何看待谷歌的Brillo OS 73

第5章 欧洲的嵌入式操作系统 76

OSE—来自北欧的RTOS 77

安全操作系统—SafeRTOS 80

开源新兵FreeRTOS 81

第6章 亚洲的嵌入式操作系统 86

中日在发展嵌入式软件上的不同思路 87

实时嵌入式操作系统TOPPERS剖析 89

RT-Thread的发展历程 107

第7章 嵌入式Linux操作系统 114

嵌入式Linux的实时性技术 115

提高嵌入式Linux时钟精度的方式 121

嵌入式Linux的动态电源管理技术 123

第8章 嵌入式系统安全 131

物联网中的嵌入式安全 132

基于嵌入式操作系统的物联网安全 133

丰田汽车召回事件给我们的启示 138

第9章 嵌入式系统与云计算 141

云计算、物联网和嵌入式系统 142

互联网与物联网协议 146

第10章 手机中的嵌入式操作系统 151

手机:嵌入式操作系统必争之地 152

手机设计挑战嵌入式Linux 159

第11章 嵌入式操作系统的应用 168

我与嵌入式通信产品开发 169

嵌入式Linux在通信设备中的应用 171

基于嵌入式Linux的无线网络设备开发 176

汽车电子:群雄逐鹿的新战场 182

第12章 嵌入式软件的知识产权 187

嵌入式软件的知识产权 188

谈谈FreeRTOS及其授权方式 195

第13章 嵌入式操作系统的发展 200

嵌入式操作系统的现状和未来 201

Android方兴未艾 204

第14章 可穿戴设备与嵌入式操作系统 208

可穿戴设备市场回顾和展望 209

可穿戴设备的操作系统 212

第15章 物联网操作系统 219

什么是物联网操作系统 220

物联网与开源软件 227

物联网操作系统的新进展 241

后记 我与嵌入式系统20年 247

Chapter1 第1章 认识嵌入式操作系统 操作系统和物联网是今天大众熟悉的二个专业技术词汇。人们拿起智能手机就想到绿色小机器人—谷歌的Android操作系统;使用电脑的时候就想到了Windows操作系统;当人们驾驶汽车时,使用ETC可以自动交费通过高速路的收费站;人们使用小米手环每天记录自己的运动步数,到了晚上,微信运动应用会自动将这些数据同步到云端,运动爱好者们在那里一决胜负。这些都是物联网应用。但是对于嵌入式系统和嵌入式操作系统的认识,人们的观点是不一致的。 什么是嵌入式系统 到底什么是嵌入式系统?什么又是嵌入式操作系统?这些概念不为大众所深入了解。既使我们这些专业人士对于嵌入式系统定义的理解也不尽相同,但概括起来,嵌入式系统的定义应该是这样两种:第一,嵌入式系统是专用的计算机系统,比如有这样的定义,以应用为中心,以计算机技术为基础,软件硬件可裁剪,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统;第二,嵌入式系统是软件和硬件的综合体,最经典的解释出自美国CMP Books出版的Embedded Systems Dictionary的中译本的定义,嵌入式系统是一种计算机硬件和软件的组合,也许还有机械装置或其他部件,用于实现一个特定功能。在某些情况下,嵌入式系统是一个大系统或产品的一部分,例如汽车中的防抱死制动系统。简练一点的定义还有IEEE的定义:嵌入式系统是软件和硬件的综合体,可以涵盖机电等附属装置。从以上的定义我们不难看出,嵌入式系统具备两个最显著的特点:一个是软硬结合;一个是计算功能。因此最近Intel和微软公司也把嵌入式系统称为智能系统,这样的说法也有其道理。 今天,嵌入式系统无处不在,从厨房里的电饭煲、冰箱,到我们每天使用的智能手机、智能手环和手表,它们都是嵌入式系统。还有我们驾驶的汽车和乘坐的高铁、飞机,里面含有许多嵌入式处理器和系统设备;保证我们互联网通信的网络中也有许多路由器、交换机和网关,它们都是嵌入式系统设备。 什么是嵌入式操作系统 每一个嵌入式系统至少有一个嵌入式微处理器(或微控制器和DSP),运行在这些嵌入式微处理器中的软件就称为嵌入式软件,也称为固件(firmware)。初期这些软件都不是很复杂。随着嵌入式微处理器和微控制器从8位发展到16位和32位,整个嵌入式计算机系统也变得越来越庞大和复杂,这就需要有一个操作系统对微处理器进行管理和提供应用编程接口(API)。于是,实时多任务内核(real-time kernel)在20世纪70年代末应运而生。进入20世纪80年代,嵌入式系统应用开始变得更加复杂,仅仅只有实时多任务内核的嵌入式操作系统已无法满足以通信设备为代表的嵌入式开发需求。最初的实时多任务内核开始发展成一个包括网络、文件、开发和调试环境的完整的实时多任务操作系统(称为RTOS)。到了20世纪90年代,嵌入式微处理器技术已经成熟,除了传统的x86处理器,以ARM7/9为代表的嵌入式处理器开始流行起来,这也让以Linux为代表的通用操作系统进入了嵌入式系统应用这个领域,一些针对资源受限硬件的Linux发行版本开始出现,也就是我们所说的嵌入式Linux。进入2000年以后,Android开始被广泛地应用在具有人机界面的嵌入式设备中。近来,物联网操作系统又以崭新的面貌进入了人们的视野。 所有可用于嵌入式系统的操作系统都可以称为嵌入式操作系统(国外称为Embedded Operating System或者Embedded OS,中文简称为嵌入式OS)。既然它是一个操作系统,那就必须具备操作系统的功能—任务(进程)、通信、调度和内存管理等内核功能,还需要具备内核之外的文件、网络、设备等服务能力。为了适应技术发展,嵌入式操作系统还应具备多核、虚拟化和安全的机制,以及完善的开发环境和生态系统。嵌入式OS必须能支持嵌入式系统特殊性的需求,如实时性、可靠性、可裁剪和固化(嵌入)等特点。这里不一一细说。 Labrosse和Noergaard在《Embedded Software》中的“Embedded Operating System”一章中对嵌入式操作系统有这样的描述:每一种嵌入式操作系统所包含的组件可能有所不同,但至少都要有一个内核,这个内核应具备操作系统的基本功能。嵌入式操作系统可以运行在任何移植好的CPU上,可以在设备驱动程序之上运行,也可以通过BSP(板支持软件包)来支持操作系统运行。 20世纪70年代末,嵌入式操作系统的商业产品开始在北美出现。进入20世纪90年代,嵌入式操作系统的数量呈井喷式增加,最鼎盛的时候有数百种之多,经过30多年的市场发展和淘汰,如今依然有数十种。但是,真正在市场上具有影响力并有一定的客户数量和成功的应用产品的嵌入式操作系统并不多,常见的有:eCos、C/OS-II和III、VxWorks、pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、C Executive、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等。关于这些操作系统的情况,本书后面的章节将会有更多的介绍。 嵌入式操作系统分类 通用的操作系统按照应用可分成桌面和服务器两种版本,近年随着智能终端(手机和平板电脑)的兴起,又增加了一个移动版本,而服务器版本随着云计算的发展,又出现了云操作系统这一“新贵”。但是,嵌入式操作系统分类却是一件很困难的事情。原因是什么呢?因为嵌入式系统没有一个标准的平台。从实时性角度看,嵌入式操作系统可分为硬实时和软实时,RTOS是硬实时操作系统,而Linux是软实时的操作系统;从商业模式看可分为开源和闭源(私有);从应用角度看可分为通用的嵌入式操作系统和专用的嵌入式操作系统。比如,VxWorks就是硬实时、私有和专用的操作系统,而嵌入式Linux就是软实时、开源和通用的嵌入式操作系统。Android是一个有趣的例子,它主要应用在智能手机和平板电脑中,不是一个典型的嵌入式操作系统。但是最近几年,它也开始广泛应用在消费电子产品中,比如智能电视、智能手表,甚至是工业电子应用中,这说明它正在逐渐变成为一个嵌入式操作系统。 从内核技术看,嵌入式操作系统有3种架构:单片(monolithic)、分层(layer)和微内核(microkernel)。单片架构是将设备驱动、中间件和内核功能模块集成在一起。单片架构的操作系统因为结构上很难裁剪和调试,后期发展成模块化单片架构,典型的单片架构的操作系统有C/OS-II和Linux等。分层架构是指操作系统分成不同级别的层,上层的功能依赖底层提供的服务。这种架构的好处是易于开发和维护,但是每层都有自己的API,所带来的附加开销会使操作系统的尺寸增加和性能降低,VRTX32是一个典型分层架构的嵌入式操作系统。模块化的进一步发展,最小内核功能压缩成只有存储和进程管理,设备驱动变成一个更小内核模块的操作系统,称为微内核操作系统。这个操作系统的附件模块因为可以动态地加载,使得系统的可伸缩和可调试性更强,独立的内存空间又使得系统的安全性更好,模块化的架构更容易移植到不同的处理器上。比较前面两种架构,微内核的操作系统的整体开销更大,性能和效率要低。目前商业的嵌入式操作系统多数都是微内核架构,比如CMX-RTX、VxWorks、Nucleus plus、QNX和VRTXsa。 嵌入式操作系统的应用 可以说,哪里有嵌入式的应用,哪里就有嵌入式操作系统的身影。今天的嵌入式应用已经无处不在,嵌入式操

本文标签: 嵌入式风云录操作系统未来历史