【最新通知】:
嵌入式软件

嵌入式操作系统这么多,哪一个适合你?

2017-09-01 13:52:13   来源:单片机与嵌入式系统应用   浏览: 95 次

关键字:

  物联网、人工智能的发展都离不开嵌入式系统,而嵌入式操作系统又是其中不容忽视的重要部分,工程师对其要求也由过去的简单易用上升到既要简单易用又安全可靠。嵌入式操作系统那么多,在设计时,到底哪一个才适合工程师的应用呢?

  业界声音

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

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

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

  如果你的应用需要的是RTOS在多任务处理和资源共享方面的功能,那么FreeRTOS这款受欢迎的开源RTOS可能是另一种不错的选择。同样地,如果你使用Cortex-M处理器,ARM会提供免费的RTX。然而,如果你正在设计一款商业产品,强烈推荐你使用一种商业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年的考验,成熟性高,开发便捷,软件生态支持好,也非常符合物联网时代对终端软件系统的要求。

  编辑视角

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


分享到:

相关阅读:
· 比选择操作系统更重要的是用好选定的操作系统
· 嵌入式操作系统怎么选,风云录来教你!
· 互斥量的设计原理
· 最快、最优、最差内存分配算法
· 基于链表节点的内存分配算法
· 嵌入式操作系统内核原理和开发:固定内存分配算法
· 嵌入式操作系统内核原理和开发:内存分配算法
· 嵌入式操作系统内核原理和开发:头文件调整
· 嵌入式OS内核原理和开发:改进型优先级调度