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

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。

嵌入式操作系统的应用

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

无线通信产品:比如手机、基站和无线交换机等无线通信设备大量使用嵌入式操作系统和中间件(通信协议等)。

网络产品:比如路由器、交换机、接入设备和信息安全产品等大量使用RTOS和开源的Linux。

智能家电:比如智能电视、IP机顶盒、智能冰箱等产品大量使用包括Android在内的嵌入式操作系统。

航空航天和军事装备:包括飞机、宇航器、舰船和武器装备等在内,都在使用经过认证的RTOS,这个领域也是嵌入式操作系统最早开发的市场之一。

汽车电子:现代汽车和运输工具大量使用嵌入式处理器技术,正在从采用私有的RTOS转向采用标准和开放的RTOS和通用的嵌入式操作系统技术。随着智能交通和车联网的发展,汽车电子将给嵌入式操作系统发展带来一个新的春天。

物联网应用:物联网和云计算是IT产业技术发展的两大推手,其中物联网的发展对嵌入式操作系统的需要和影响更大。物联网应用需要嵌入式操作系统来支持低功耗无线网络技术、物联网网关、物联网安全,以及动态的升级和维护功能。

时间: 2024-11-20 12:55:36

嵌入式操作系统风云录:历史演进与物联网未来Chapter1 第1章的相关文章

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

嵌入式操作系统风云录: 历史演进与物联网未来 何小庆 著 图书在版编目(CIP)数据 嵌入式操作系统风云录:历史演进与物联网未来 / 何小庆著. -北京:机械工业出版社,2016.10 ISBN 978-7-111-55085-3 Ⅰ. 嵌-   Ⅱ. 何-   Ⅲ. 实时操作系统   Ⅳ. TP316.2 中国版本图书馆CIP数据核字(2016)第248216号 本书全面回顾了嵌入式操作系统的演进历史,主流的嵌入式操作系统的技术特点.成长历程以及背后的商业故事,展望了嵌入式操作系统未来的技术路

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

Preface 前 言 我是在1994年正式进入嵌入式系统这个领域的,之前10年,我虽然参与过工业自动化和通信设备开发项目,但在当时,它们还不能算是真正意义上的嵌入式系统.可以这样讲,1994年之前我对实时多任务操作系统有一定的了解,但对嵌入式操作系统基本上是一无所知.20多年一路走过来,我与嵌入式系统和嵌入式操作系统结下了不解之缘. 写作的初衷 本书最初的构想还要从2008年整理的一本小册子<嵌入式系统文集>说起.就在那一年,我自己有了更多的可以自由支配的时间,于是我将前几年撰写的20余篇文

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

Chapter3 第3章 开源的嵌入式操作系统 今天开源软件正大行其道,从服务器.云计算.桌面到手机和嵌入式设备,到处都可以见到开源软件和开源的操作系统.本章介绍对嵌入式系统发展具有重要影响的几种开源的操作系统. 开源软件与嵌入式操作系统 Linux支持多种微处理器.总线架构和设备,半导体公司SoC芯片的驱动程序.应用相关的中间件.工具和应用程序都是先为Linux开发,后来才移植到其他OS平台.这些特性都非常适合于嵌入式系统应用. 在讨论开源的嵌入式操作系统(简称嵌入式OS)之前,我们先把开源软

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

第2章 Chapter2 嵌入式操作系统的历史 20世纪70年代末,嵌入式操作系统商业产品开始在北美出现,20世纪90年代末嵌入式OS的数量呈井喷式增加,最鼎盛的时候有数百种之多,即使经过30多年的发展和淘汰,现在嵌入式OS依然有数十种之多.最早的嵌入式操作系统是实时多任务操作系统(RTOS)内核,支持8位和16位微处理器,它初期使用汇编和PLM语言编程,后来支持C和Ada.本章讲述了RTOS发展历史中几个重要产品背后的故事. VRTX:嵌入式操作系统的开拓者 最早出现的商业嵌入式操作系统当属V

实时性-请问有哪几款嵌入式操作系统用于商用时是免费的,像ucos-ii这类收费的操作系统又是怎么收费的呢?

问题描述 请问有哪几款嵌入式操作系统用于商用时是免费的,像ucos-ii这类收费的操作系统又是怎么收费的呢? 1.请问有那几款嵌入式操作系统用于商用时是免费的? 2.像ucos-ii这类收费的操作系统又是怎么收费的呢? 3.现在市场上应用于商业的实时性操作系统和非实时性操作系统主要有哪些呢? 这关乎到我未来要学什么操作系统,希望大虾们能帮我解答,感激不尽~~!!! 4.还有,我还想问下有哪几款嵌入式GUI用于商业是免费的,现在市场上的嵌入式系统一般用的是什么GUI? 解决方案 ucosii好像是

常用嵌入式操作系统

嵌入式操作系统与通用的操作相比较主要特点在于: 1.小内核,稳定可靠. 2.需要可装卸.可裁剪,以便能灵活应对各种不同的硬件平台. 3.面向应用,强实时性,可用于各种设备控制当中. 国际上常见的嵌入式操作系统大约有40种左,右如:Linux.uClinux.WinCE.PalmOS.Symbian.eCos.uCOS-II.VxWorks.pSOS.Nucleus.ThreadX .Rtems .QNX.INTEGRITY.OSE.C Executive .他们基本可以分为两类,一类是面向控制.

微软2010年推出Windows 7嵌入式操作系统

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 明年在Windows 7新操作系统推出后,2010年微软拟推出更新的Windows Embedded Standard版本,将可支援多点触控与Silverlight的使用体验. 伴随明年底发表新一代微软操作系统Windows 7的进程,微软表示2010年也将推出相同核心的Windows Embedded Standard嵌入式操作系统. 代号

嵌入式系统-嵌入式操作系统移植问题

问题描述 嵌入式操作系统移植问题 利用k60开发的时候可以移植哪些操作系统,我们所说的移植操作系统是为每一个工程移植操作系统?还是在板子上跑另外一个工程的时候可以移植另外的操作系统.另外移植操作系统的时候是不是就是在工程里面添加下载的系统代码,求大神指教! 解决方案 嵌入式系统一般都是linux内核,也有wince等等.移植说的是,你在一个平台上跑的程序可以换到另一个平台跑,比方,程序之前是windows的,后来又在linux上跑,这就是移植.操作系统哪里什么移植,无非是把内核裁剪,让硬件较差的

嵌入式操作系统Palm webOS该怎么操作

现今随便逛逛各大科技博客.资讯网站,关于iOS.Android.wp7几个时下主流移动操作系统的消息铺天盖地,如若再赶上新产品的发布,那更是风头一时无两.前有Google I/O大会和android 3.1版本的正式推出,今有WWDC大会和iOS5的发布,思来想去打算聊点"小资"的."非主流"的,所以今天就来聊聊webOS的故事. 对于很多人来说webOS还是个陌生的事物,但如果我们提到Palm,很多就会恍然大悟,"哦,原来是他", 对,就是他,