嵌入式开发中三种操作系统的分析与比较

三种常用的嵌入式操作系统——Palm OS、Windows CE、Linux;在此基础上、分析、比较这三种嵌入式操作系统,给出它们之间的异同点及各自的适用范围。

1 嵌入式系统与嵌入式操作系统

1.1 嵌入式系统

嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。

嵌入式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常 工作;许多嵌入式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力 ;嵌入式系统和具体应用有机地结合在一起,它的升级换代也是具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性,一般都固化在只读存储器中或 闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。

1.2 嵌入式操作系统

嵌入式操作系统EOS(Embedded Operating System)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、调度作,控制、协调并 发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。随着 Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统 实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而方的,它除具备了一般操作系统最基本的 功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下特点:

① 可装卸性。开放性、可伸缩性的体系结构。

② 强实时性。EOS实时性一般较强,可用于各种设备控制当中。

③ 统一的接口。提供各种设备驱动接口。

④ 操作方便、简单、提供友好的图形GUI,图形界面,追求易学易用。

⑤ 提供强大的网络功能,支持TCP/IP协议及其它协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。

⑥ 强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。

⑦ 固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统。⑧更好的硬件适应性,也就是良好的移植性。

国际上用于信息电器的嵌入式操作系统有40种左右。现在,市场上非常流行的EOS产品,包 括3Com公司下属子公司的Palm OS,全球占有份额达50%,Microsoft公司的Windows CE不过29%。在美国市场,Palm OS更以80%的占有率远超Windows CE。开放源代码的Linux很适于做信息家电的开发。比如:中科红旗软件技术有限公司开发的红旗嵌入式Linux和美商网虎公司开发的基于Xlinux 的嵌入式操作系统“夸克”。“夸克”是目前全世界最小的Linux,它有两具很突出的特点,就是体积小和使用GCS编码。

2 三种常用的嵌入式操作系统

2.1 Palm OS

Palm是3Com公司的产品,其操作系统为Palm OS。Palm OS是一种32位的嵌入式操作系统。Palm提供了串行通信接口和红外线传输接口,利用它可以方便地与其它外部设备通信、传输数据;拥有开放的OS应用程 序接口,开发商可根据需要自行开发所需的应用程序。Palm OS是一套具有术强开放性的系统,现在有大约数千种专用为Palm OS编写的应用程序,从程序内容上看,小到个人管理、游戏,大到行业解决方案,Palm OS无所不包。在丰富的软件支持下,基于Palm OS的掌上电脑功能得以不断扩展。

Palm OS是一套专门为掌上电脑开发的OS。在编写程序时,Palm OS充分考虑了掌上电脑内存相对较小的情况,因此它只占有非常小的内存。由于基于Palm OS编写的应用程序占用的空间也非常小(通常只有几十KB),所以,基于Palm OS的掌上电脑(虽然只有几MB的RAM)可以运行众多应用程序。

由于Palm产品的最大特点是使用简便、机体轻巧,因此决定了Palm OS应具有以下特点。

1、操作系统的节能功能。由上掌上电脑要求使用电源尽可能小,因此在Palm OS的应用程序中,如果没有事件运行,则系统设备进入半休眠(doze)的状态;如果应用程序停止活动一段时间,则系统自动进入休眠(sleep)状态。

2、合理的内存管理。Palm的存储器全部是可读写的快速RAM,动态 RAM(Dynamic RAM)类似于PC机上的RAM,它为全局变量和其它不需永久保存的数据提供临时的存储空间;存储RAM(Storage RAM)类似于PC机上的硬盘,可以永久保存应用程序和数据。

3、Palm OS的数据是以数据库(database)的格式来存储的。数据库是由一组记录(records)和一些数据库头信息组成的。为保证程序处理速度和存储器 空间,在处理数据的时候,Palm OS不是把数据从存储堆(Storage Heap)拷贝到动态堆(Dynamic Heap)后再进行处理,而是在存储堆中直接处理。为避免错误地调用存储器地址,Palm OS规定,这一切都必须调用其内存管理器里的API来实现。

4、Palm OS与同步软件(HotSync)结合可以使掌上电脑与PC机上的信息实现同步,把台式同的功能扩展到了掌上电脑。Palm应用范围相当广泛,如:联络及 工作表管理、电子邮件及互联网通信、销售人员及组别自动化等等。Palm外围硬件也十分丰富,有数码相机、GPS接收器、调制解调器、GSM无线电话、数 码音频播放设备、便携键盘、语音记录器、条码扫描、无线寻呼接收器、探测仪。其中Palm与GPS结合的应用,不但可以作导航定位,还可以结合GPS作气 候的监测、地名调查等。

2.2 Windows CE

Windows CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作。它是精简的Windows 95。Windows CE的图形用户界面相当出色。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣 (Companion);E代表电子产品(Electronics)。与Windows 95/98、Windows NT不同的是,Windows CE是所有源代码全部由微软自行开发的嵌入式新型操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于Win32 API重新开发的、新型的信息设备平台。Windows CE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C++等)、使用同样的函数、使用同样的界面网格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。

Windows CE的设计目标是:模块化及可伸缩性、实时性能好,通信能力强大,支持多种CPU。它的设计可以满足多种设备的需要,这些设备包括了工业控制器、通信集线 器以及销售终端之类的企业设备,还有像照相机、电话和家用娱乐器材之类的消费产品。一个典型的基于Windows CE的嵌入系统通常为某个特定用途而设计,并在不联机的情况下工作。它要求所使用的操作系统体积较小,内建有对中断的响应功能。

Windows CE的特点有:

① 具有灵活的电源管理功能,包括瞬眠/唤醒模式。

② 使用了对象存储(object store)技术,包括文件系统、注册表及数据库。它还具有很多高性能、高效率的操作系统特 性,包括按需换页、共享存储、交叉处理同步、支持大容量堆(heap)等。

③ 拥有良好的通信能力。广泛支持各种通信硬件,亦支持直接的局域连接以及拨号连接,并提供与PC、内部网以及Internet的连接,还提供与Windows 9x/NT的最佳集成和通信。

④ 支持嵌套中断。允许更高优先级别的中断首先得到响应,而不是等待低级别的ISR完成。这使得该操作系统具有嵌入式操作系统所要求的实时性。

⑤ 更好的线程响应能力。对高级别IST(中断服务线程)的响应时间上限的要求更加严格,在线程响应能力方面的改进,帮助开发人员掌握线程转换的具体时间,并通过增强的监控能力和对硬件的控制能力帮助他们创建新的嵌入式应用程序。

⑥ 256个优先级别。可以使开发人员在控制嵌入式系统的时序安排方面有更大的灵活性。

⑦ Windows CE的API是Win32 API的一个子集,支持近1500个Win32 API。有了这些API,足可以编写任何复杂的应用程序。当然,在Windows CE系统中,所提供的API也可以随具体应用的需求而定。

在掌上型电脑中,Windows CE包含如下一些重要组件:Pocket Outlook及其组件、语音录音机、移动频道、远程拨号访问、世界时钟、计算器、多种输入法、GBK字符集、中文TTF字库、英汉双向词典、袖珍浏览 器、电子邮件、Pocket Office、系统设置、Windows CE Services软件。2.3 Linux

Linux是一个类似于Unix的操作系统。它起源于芬兰一个名为Linus Torvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。Linux从1991年问世到现在,短短10年的时间内已发展成为一个 功能强大、设计完善的操作系统,伴随网络技术进步而发展起来的Linux OS已成为Microsoft公司的DOS和Windows 95/98的强劲对手。Linux系统不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,在各种嵌入式Linux OS迅速发展的状况下,Linux OS逐渐形成了可与Windows CE等EOS进行抗衡的局面。目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作的理想选择。

中科红旗软件技术有限公司开发的红旗嵌入式Linux正在成为许多嵌入式设备厂商的首选。 在不到一年的时间内,红旗公司先后推出了PDA、机顶盒、瘦客户机、交换机用的嵌入式Linux系统,并且投入了实际应用。现以红旗嵌入式Linux为例 来讲解嵌入式Linux OS的特点:

① 精简的内核,性能高、稳定,多任务。

② 适用于不同的CPU,支持多种体系结构,如X86、ARM、MIPS、ALPHA、SPARC等。

③ 能够提供完善的嵌入式GUI以及嵌入式X-Windows。

④ 提供嵌入式浏览器、邮件程序、MP3播放器、MPEG播放器、记事本等应用程序。

⑤ 提供完整的开发工具和SDK,同时提供PC上的开发版本。

⑥ 用户可定制,可提供图形化的定制和配置工具。

⑦ 常用嵌入式芯片的驱动集,支持大量的周边硬件设备,驱动丰富。

⑧ 针对嵌入式的存储方案,提供实时版本和完善的嵌入式解决方案。

⑨ 完善的中文支持,强大的技术支持,完整的文档。

⑩ 开放源码,丰富的软件资源,广泛的软件开发者的支持,价格低廉,结构灵活,适用面广。

3 三种嵌入式操作系统的比较

3.1 Linux OS与Windows Ce的比较

嵌入式Linux OS与Windows CE相比的优点:第一,Linux是开放源代码的,不在存黑箱技术,遍布全球的众多Linux爱好者都是Linux开发者的强大技术支持者;而 Windows CE是非开放性OS,使第三方很难实现产品定制。第二,Linux的源代码随处可得,注释丰富,文档齐全,易于解决各种问题。第三,Linux的内核小、 效率高;而Windows CE在这方面是笨拙的,占用过多的RAM,应用程序庞大。第四,Linux是开放源代码的OS,在价格上极具竞争力,适合中国国情。Windows CE的版权费用是厂家不得不考虑的因素。第五,Linux不仅支持x86芯片,还是一个跨平台的系统。到目前为止,它可以支持20~30种CPU,很多 CPU(包括家电业的芯片)厂商都开始做Linux的平台移植工作,而且移植的速度远远超过Java的开发环境。如果今天采用Linux环境开发产品,那 么将来更换CPU时就不会遇到更换平台的困扰。第六,Linux内核的结构在网络方面是非常完整的,它提供了对包括十兆位、百兆位及千兆位的以太网络,还 有无线网络、Token ring(令牌环)

嵌入式开发中三种操作系统的分析与比较相关推荐

  1. iOS开发UI篇—iOS开发中三种简单的动画设置

    [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要"参与到"动画中 [UIView beginAnimations: ...

  2. asp.net ajax怎样传值,JQuery在asp.net中三种ajax传值

    1)通过webservice,注意去掉注释[System.Web.Script.Services.ScriptService]这行前的注释 2)通过aspx.cs文件中的静态方法 3)通过aspx文件 ...

  3. 嵌入式开发中常用的几种通信接口总结

    关注.星标公众号,直达精彩内容 在嵌入式系统中,板上通信接口是指用于将各种集成电路与其他外围设备交互连接的通信通路或总线. 以下内容为常用板上通信接口:包括I2C.SPI.UART.1-Wire: I ...

  4. 直立车模控制中三种滤波算法简单分析(清华卓晴)

    摘自:https://mp.weixin.qq.com/s/WbCh0NFAnsf9y2blQenf7g 让我想起余义的一篇文章也是说到平衡车有三种滤波,我想和卓晴说的是一样的吧. https://b ...

  5. 【嵌入式笔记】简要谈一谈嵌入式开发中重写printf的几种方法

    文章目录 抛砖引玉 1 宏定义替换 2 直接重写printf函数的实现 3 重写fputc/putchar接口 4 仿照POSIX的实现,从文件描述符0/1/2上面做文章 总结 更多分享 摘要 简单总 ...

  6. 嵌入式开发中,嵌入式硬件和软件有什么区别?

    嵌入式指的是把软件直接烧录在硬件里,而不是安装在外部存储介质上,就像赋予机器人灵魂,从而方便人类操控.在嵌入式开发中,分为嵌入式硬件和嵌入式软件,大多数人对嵌入式的硬件和软件之间的区别不是很了解,现在 ...

  7. 理解嵌入式开发中的一些硬件相关的概念

    为什么80%的码农都做不了架构师?>>>    做嵌入式系统开发,经常要接触硬件.做嵌入式开发对数字电路和模拟电路要有一定的了解.这样才能深入的研究下去.下面我们简单的介绍嵌入式开发 ...

  8. 企业人才测评结果的三种导向分析

    2019独角兽企业重金招聘Python工程师标准>>> 企业人才测评结果的三种导向分析 随着知识经济的兴起和人力资源管理观念的树立,越来越多的企业采用了人才测评技术,以增强人事决策的 ...

  9. 事业单位人力资源开发中的职业发展分析

    事业单位人力资源开发中的职业发展分析 摘要:首先,从人才发展的概念.理论和公共事业单位的初始情况入手.从发展的角度分析了国有事业单位人才发展存在的问题和可能的原因.最后,提出完善事业单位人才培养措施, ...

  10. python示波器 波形数据_Python在嵌入式开发中的应用——数据示波器

    Python在嵌入式开发中的应用 引言 在嵌入式开发中我们常常要进行数据分析.算法设计.原型验证.自动化测试.辅助工具设计,每个环节的工作效率对整体的开发都非常重要.选用一个好的辅助开发工具是非常必要 ...

最新文章

  1. QT中如何读写ini配置文件
  2. 计科专业大一学生一枚,如何提高编程能力?
  3. MySQL 8.0 Server层最新架构详解
  4. 基于live555实现的RTSPServer对底层进行性能优化的方法
  5. USACO-Section1.5 Mother's Milk (深度优先搜索)
  6. matlab从哪里学,从零开始学MATLAB(附光盘)/从零开始学系列
  7. manjaro linux下查看硬件温度
  8. Go语言的一些使用心得
  9. Spring Cloud构建微服务架构(四)分布式配置中心(续)
  10. win10卸载电脑管家就蓝屏_Win10系统运行腾讯软件出现蓝屏TesSafe.sys 解决方案
  11. 惠康游戏手柄 WE-8400 Windows 10 驱动教程
  12. 中西医结合耳鼻咽喉科疾病 100254
  13. 北邮OJ 126 中序遍历序列
  14. R语言中的rgl包的安装问题
  15. WYSE S10、WYSE V90、HP T5740瘦客机评测
  16. k2ttl救砖_无线路由救砖 ttl刷机教程
  17. Linux设备类型有哪些?
  18. 苹果自带输入法怎么换行_微信个性签名怎么弄成竖的?不仅可以竖着还可以加边框效果!...
  19. 网页视频播放速度修改器,亲测可用
  20. linux的mtr参数详解,linux mtr 命令详解

热门文章

  1. 百度地图API位置偏移的校准算法
  2. .click()与on('click',function())
  3. 夜光带你走进Bootstrap(2)
  4. win 7系统微信如何用代理服务器,win7系统电脑上使用微信的操作方法
  5. win7使用痕迹清理方法【系统天地】
  6. 还在用老办法扫描?纸质文档变电子文档,手机这个功能一键搞定!
  7. PHP打造的轻量级单文件管理系统FileBox V1.10.0.2版
  8. 计算机与经济学之关联刍议,西方五大经济学期刊发展趋势刍议
  9. 学Dapr Actors 看这篇就够了
  10. 简单描述数字签名:私钥签名;公钥验签。