原标题:嵌入式操作系统那么多,哪一个适合你?

物联网、人工智能的发展都离不开嵌入式系统,而嵌入式操作系统又是其中不容忽视的重要部分,工程师对其要求也由过去的简单易用上升到既要简单易用又安全可靠。嵌入式操作系统那么多,在设计时,到底哪一个才适合工程师的应用呢?《单片机与嵌入式系统应用》特别邀请了几位业界大牛,分享了对此问题的看法。

业界声音

选择哪款操作系统取决于你的应用

Silicon Labs软件架构师,Micrium创始人 Jean J. Labrosse

其实,目前市场上还没有一款操作系统可以适合所有不同类型的嵌入式应用,尽管有一些非常接近。嵌入式系统多种多样,范围从简单的8位MCU到高度复杂的64位多核CPU。在大多数嵌入式操作系统的内核中,都会有一个实时操作系统(RTOS),这是管理CPU时序和其他资源的软件。此外,一些操作系统会提供额外的模块来处理通信协议、数据存储、用户接口等。下图为一些流行的嵌入式RTOS的CPU支持情况。到目前为止,在中国非常受欢迎的RTOS是来自Micrium(现被Silicon Labs收购)的µC/OS-II(OS2)和µC/OS-III(OS3)。这些RTOS在非商业应用中可以免费使用,但对于商业用途则需要获得授权。OS2和OS3可以覆盖市场上几乎所有的CPU,这是一个相当理想的特性,因为它有助于保护你在软件方面的投资,你的应用可以很容易地从一种处理器架构迁移到另一种处理器架构上。

流行的RTOS的CPU支持情况

如果你的应用需要的是RTOS在多任务处理和资源共享方面的功能,那么FreeRTOS这款受欢迎的开源RTOS可能是另一种不错的选择。同样地,如果你使用Cortex-M处理器,ARM会提供免费的RTX。然而,如果你正在设计一款商业产品,强烈推荐你使用一种商业RTOS而非一种开源解决方案。

Micrium的RTOS很容易理解,事实上,关于这些RTOS内部构成的书籍已经被撰写并翻译成中文版本,如下图所示。

在中国最受欢迎的嵌入式操作系统

现在,物联网是一个非常热门的话题,它取决于你正在谈论哪方面的内容。如果你正在设计一个叶子节点,那么很可能你将需要某种形式的无线连接。有许多协议可供选择,不过大多数嵌入式操作系统提供商并不直接提供无线协议栈,你可能得借助半导体制造商来提供这些解决方案。事实证明,只有极少数供应商可以提供无线芯片和软件的完整组合。

不过,Silicon Labs可提供IoT解决方案和无线连接,能够提供如下协议的完整解决方案:Bluetooth、Bluetooth Mesh、ZigBee、Thread、WiFi、专有协议(即定制协议)。事实上,这些协议已经预集成在Silicon Labs的EFR32多协议Wireless Gecko SoC系列产品中。这些芯片不仅包含无线协议,而且集成了Micrium的嵌入式操作系统。这使得可以相对容易地增加产品的功能,而无需担心无线技术的复杂性。

越来越多的应用需要同时使用多种无线协议,并且为了降低成本,需要同一颗芯片同时支持这些协议。例如,你可能希望你的客户使用Bluetooth去配置一个ZigBee和Thread设备。一旦配置成功,继续同时运行两种协议栈是可行的。Bluetooth仍然可以作为一个信标设备向路人提供关于你的设备可提供的增值特性的额外信息。这对于电子货架标签、餐馆、加油站或其他类似应用都将非常有用。

另一个方面是云连接。你的嵌入式设备将很可能是一个更大联网设备网络的一部分,连接到亚马逊网络服务、微软Azure云、IBM Bluemix或其他平台将不再是问题,嵌入式操作系统供应商正在越来越多地提供云连接器及其协议栈来支持这些服务。

当然,IoT解决方案供应商必须提供一些功能来确保这些设备是安全、可靠且现场可升级的。设计人员需要在开发周期的早期考虑安全因素,而不是在事后。客户越来越多地要求我们提供完整的、端到端的解决方案。现在这是可以的,因为作为Silicon Labs的一部分,我们不仅可以提供带有额外模块和云连接功能的嵌入式操作系统,而且可以提供完整的无线MCU和协议栈,让工程师将精力更多地集中在产品设计的独特性方面。

对于物联网设备开发,操作系统该如何选择?

嵌入式系统联谊会秘书长 何小庆

商业嵌入式操作系统起源于20世纪70年代末80年代初,经历了4个发展阶段:RTOS kernel、RTOS、通用操作系统嵌入式化(如嵌入式Linux和嵌入式Windows)和以Android为代表的面向应用的嵌入式操作系统。关于嵌入式操作系统的发展史,在我所著《嵌入式操作系统风云录》中有更加详细的阐述。

目前,新生代的嵌入式操作系统是以物联网应用为代表的操作系统,工程师在选择的时候,要考虑以下几个因素:第一,实时性要求,首先要看所做项目有没有实时性要求,而实时性又分为硬实时和软实时,μC/OS-III和VxWorks都可以提供硬实时,嵌入式Linux可以提供软实时;第二,安全性考虑,要根据项目的安全要求级别做选择,如果用于一般消费电子产品,安全性要求低一些,如果用于高铁和飞机,则安全性要求就很高,所以要根据需要选择符合安全规范要求的系统;第三,开源考虑,因为开源操作系统具有活跃的社区、丰富的生态环境,且软硬件和标准非常齐全,所以在做物联网设计时,开发者喜欢选择开源操作系统;第四,工具的考量,要看操作系统是否有大量第三方工具(包括开发工具、性能分析工具和测试工具)支持,工具支持越多,越好用,开发周期会越短;第五,成本考虑,购买商业软件需要成本,如果使用开源系统,虽然源码免费,但是真正使用时仍需投入相当多的费用,所以开源未必真正免费,在选择时需要提前考虑。

2016年的一份IoT开发者研究报告指出,在现有物联网设备中,Linux系统占比将近70%,FreeRTOS占13%,其他系统均没有超过5%(如ARM mbed、Contiki、TinyOS等)。

个人觉得,如果做物联网设备开发,可以有两种选择途径:一种是 基于开源的Linux和FreeRTOS,因为开源,它们有IoT协议栈,可以连接到云端,还会有一些IoT芯片公司开发的连接协议和驱动,如WiFi、蓝牙、ZigBee等,通过整合,可以让开源操作系统支持物联网开发,从目前市场看,这种方案使用最多;另一种是选择物联网操作系统,它是一站式方案,针对性较强,但缺点是通用型较弱,如果企业未来不做物联网项目了,系统裁剪会比较麻烦,这些物联网操作系统更适合物联网创业项目,可以让产品尽快上市。

但是有一点需要开发者注意,物联网时代,越来越多的设备采用MCU,因为架构的原因,它只能选择使用RTOS,不适合选用Linux这类大型的操作系统。因此,开发者要早做准备,尽快熟悉RTOS和掌握一种RTOS技术,做好知识储备,会对以后的开发有帮助。一些物联网操作系统的内核也是基于RTOS 技术演变而成,比如华为Lite OS 和庆科Mico OS,对于未来的物联网系统,RTOS 将成为一种基础软件平台。

嵌入式工程师和创客在物联网设备开发上选择操作系统时候,也会有一些差异,创客会喜欢树莓派、Arduino这样的开源硬件,而且他们中很多是从互联网开发转过来的,喜欢使用高阶的编程语言(Python 和Javascrpit),他们对嵌入式底层了解不多,更擅长与云端连接,所以在选择嵌入式操作系统时,着眼点也会有差别。

从产品、生态和技术服务三方面对嵌入式操作系统进行考量

上海睿赛德电子科技有限公司联合创始人及副总裁 邱祎

工程师在选择嵌入式操作系统时,如果以学习为目的,主要看系统是否容易上手以及资料是否丰富,一般可以考虑主流的开源嵌入式操作系统;如果是以产品开发为目的,那么可以从产品、生态和技术服务三方面对嵌入式操作系统进行考量。

第一,产品方面。首先成熟和稳定可靠是基本的要求,选择在行业内至少经过5年以上时间验证,并且被各个行业广泛使用的系统会更有保障。其次,选择容易使用、开发便捷、注重开发者体验的系统。架构清晰、API简明齐全、编译工具支持广泛、调试方便等,对于工程师的应用开发至关重要。再次,物联网时代和人工智能的崛起提出了很多新的需求,硬件碎片化、产品多样化是主要特征之一。产品开发会使用不同架构、品牌的芯片平台,且高中低端产品跨度非常大。因此,选择跨芯片架构、高度可裁剪的系统非常重要,一方面能避免因为更换芯片平台而带来的大量额外工作和不稳定因素;另一方面,一款操作系统适用于不同档次的产品,且能够做到资源占用小、结构轻盈,可大大增加软件的可复用性,提高开发效率。

此外,物联网应用对系统提出了连接、安全、低功耗等多方面要求,因此,选择功能丰富的系统能够给产品开发带来很大帮助,如具备连接、安全、低功耗、可靠存储甚至是轻量级GUI图形交互等功能。网络连接是物联网终端开发的核心,如果操作系统能支持丰富的网络协议(如MQTT、LWM2M、Web Socket等),甚至是完成了主流IoT云平台的对接,则会大幅降低IoT终端的开发周期和风险。

第二,生态方面。工程师选择嵌入式操作系统时,需要关注它的生态和开发者社区,开发者既能够从良好的生态中获取和分享技术文档、软件模块、第三方工具等资料,也能够在开发者社区中学习和交流开发经验,甚至获得解决问题的思路,从而有助于产品开发。

第三,技术服务方面。工程师在产品开发阶段一般都面临产品上市时间和研发成本的压力,尤其是物联网方案开发,系统复杂、难度大,如果选择能够提供良好技术服务的嵌入式操作系统(包括技术支持、技术培训等),那么对于提高团队研发能力、降低研发成本、加快产品上市都有很好的帮助。

除上述三方面外,建议大家关注两点大趋势。第一,关注开源开放的嵌入式操作系统,传统封闭的嵌入式操作系统正走向没落,开源开放的嵌入式操作系统被越来越广泛地使用,生态也在逐渐完善。第二,关注国内自主的嵌入式和物联网操作系统,因为IoT制造在中国,IoT芯片在中国,IoT市场在中国,所以IoT操作系统也一定是在中国。例如,RT-Thread,就是一款非常优质、对开发者很友好的国产自主操作系统,历经11年的考验,成熟性高,开发便捷,软件生态支持好,也非常符合物联网时代对终端软件系统的要求。

编辑视角

嵌入式系统应用的多种多样,决定了嵌入式操作系统的种类繁多,在选择时,如果是设计商业产品,尽量要选择生态系统良好的成熟商业产品,如果是创客,可以优先考虑新兴的、开源的操作系统。尤其物联网应用更加多样化,选择合适的操作系统更重要!

今天七夕,祝愿所有的嵌友中国情人节快乐!美食、鲜花、巧克力,跟自己的另一半慢慢享用,好文章,是小编送上的节日礼物!关键小编还特实诚,本周还有几篇业内大牛写的关于嵌入式操作系统的文章会陆续奉上,没准还会有意外惊喜哦,敬请期待!返回搜狐,查看更多

责任编辑:

学python与嵌入式操作系统_嵌入式操作系统那么多,哪一个适合你?相关推荐

  1. 零基础学python尹会生_编程零基础应当如何开始学习 Python?

    这是一篇小白自学Python的经验,针对没有任何经验.从零开始学习Python的童鞋,不管你是出于兴趣,还是想提升工作效率,或者想要转行,都可以作为一个参考. 作为过来人,先分享几点建议给你: 1.找 ...

  2. 一个完整的嵌入式程序_嵌入式入门-从STM32CudeMX、FreeRtos、Proteu仿真开始

    系统 嵌入式是什么呢? 嵌入式开发就是指在嵌入式操作系统下进行开发,常用的嵌入式操作系统有FreeRtos,ucos,linux,android等.与单片机开发最大的不同就是裸跑与跑系统的区别.嵌入式 ...

  3. 一个零基础学python能学会吗_零基础可以学Python吗

    展开全部 一.Python是一种计算机程序设计语言. 你可能32313133353236313431303231363533e78988e69d8331333433633338已经听说过很多种流行的编 ...

  4. 学python就业到底如何_学习python后,就业如何?

    Python技术相关人才,正是迎合了目前人工智能时代的发展趋势,Python作为人工智能的首选语言,其发展前景那是大大的好. 学习python原因 1.python是脚本语言,作为程序员至少应该掌握一 ...

  5. 老齐学python的django 源代码_《跟老齐学Python:Django实战》真正的手把手“带”您学习...

    全书通过不断升级改造的方式,带着读者完成了一个"极其"简单的实战项目.这里说简单是相对于那些"大牛"而言.如果您是大牛,齐老师会建议您使用谷歌或者读官方英文文档 ...

  6. 学python人工智能需要多久_人工智能Python开发怎么学才能最快入门

    原标题:人工智能Python开发怎么学才能最快入门 学习 Python 的捷径是什么? 学习Python编程有没有捷径?有,那就是学习过程中牢记三个字--写.背.练 写的意思是把书中所有代码独自写一遍 ...

  7. 学python数学要好吗_学习Python数学英语基础重要吗?

    提到Python编程语言,大家就会想编程语言肯定会涉及到的就是代码,很多人看到那满屏的英文字母就头疼,觉得自己不会英语,肯定学不好Python,但是不会英语到底能不能够学习Python呢,下面小编给大 ...

  8. 编程小白学python知乎周刊_在知乎上学 Python - 入门篇

    写在前面 本文对知乎上关于Python入门方面的问答.文章.专栏做了一定的收集和整理,希望对各位Python学习者能有帮助,至少可以节省大家一点时间. 这一篇主要针对的是零基础或初学Python,包括 ...

  9. 初学者先学python语音好吗_献给Python初学者 零基础学习Python能学会吗

    献给Python初学者 零基础学习Python能学会吗 时间:2018-01-08     来源:零基础学习Python方法讲解 零基础学习Python能学会吗?这个问题几乎是所有初学Python的小 ...

最新文章

  1. java中执行cmd命令_如何通过Java执行cmd命令
  2. 清理mysql创建的游戏_Linux定时清理游戏log及mysql定时任务删除游戏日志数据的步骤...
  3. 学Java好不好?从业方向都有哪些?
  4. ITK:创建3D体积
  5. 关于 Unloading class sun.reflect.GeneratedSerial...
  6. JavaScript If…Else 语句
  7. bitnami如何使用_使用Bitnami获取完全配置的Apache Airflow Docker开发堆栈
  8. cd返回上一 git_使用Git实现自动化部署项目
  9. Android 系统(186)---最易懂的Android屏幕适配解决方案--总结版
  10. 免费直播:1 小时带你体验 Python 车牌识别实战
  11. android 电池续航时间,《Android优化专题》——优化电池续航能力
  12. Swift面向对象基础(中)——Swift中的方法
  13. 虚继承中的构造函数的调用
  14. ug安装教程详细步骤ug怎么免费安装教程ug软件怎样安装步骤
  15. gitlab自定义头像设置
  16. openjdk1.8的下载与安装
  17. 联想台式电脑硬盘分区失败数据恢复
  18. 零售业小程序行业解决方案
  19. Android Studio实现内容丰富的安卓小说阅读平台
  20. 赛普拉斯代理4Mbit串行SPI铁电存储器CY15B104Q-LHXI

热门文章

  1. 美丽天天秒系统开发模式与美丽天天秒系统源码分享
  2. 华为系统取名鸿蒙,华为自主操作系统为何取名鸿蒙?看完西游记就知道霸气在哪里!...
  3. 该结束这忙忙碌碌却又碌碌无为的生活了
  4. A 0.18um CMOS SOC for a 100-m-Range 10-Frame/s 200x96 pixel time-of-flight Depth Sensor翻译
  5. c++ http服务器之Apache工具ab压力测试(nginx与brpc)
  6. eKing Cloud基础云平台演进之路
  7. Matlab对BPSK与QPSK进行仿真,BPSKQPSK的MATLAB仿真
  8. 【科普篇】云存储与传统存储
  9. 丰泽就业老师告知90后求职面试应具备的5种心态_河南丰泽教育JAVA/3G学院
  10. 单目ORB-SLAM流程梳理