几位嵌入式技术大牛:嵌入式操作系统那么多,如何选择?
目前,新生代的嵌入式操作系统是以物联网应用为代表的操作系统,工程师在选择的时候,要考虑以下几个因素:第一,实时性要求,首先要看所做项目有没有实时性要求,而实时性又分为硬实时和软实时,μC/OS-III和VxWorks都可以提供硬实时,嵌入式Linux可以提供软实时;第二,安全性考虑,要根据项目的安全要求级别做选择,如果用于一般消费电子产品,安全性要求低一些,如果用于高铁和飞机,则安全性要求就很高,所以要根据需要选择符合安全规范要求的系统;第三,开源考虑,因为开源操作系统具有活跃的社区、丰富的生态环境,且软硬件和标准非常齐全,所以在做物联网设计时,开发者喜欢选择开源操作系统;第四,工具的考量,要看操作系统是否有大量第三方工具(包括开发工具、性能分析工具和测试工具)支持,工具支持越多,越好用,开发周期会越短;第五,成本考虑,购买商业软件需要成本,如果使用开源系统,虽然源码免费,但是真正使用时仍需投入相当多的费用,所以开源未必真正免费,在选择时需要提前考虑。
个人觉得,如果做物联网设备开发,可以有两种选择途径:一种是 基于开源的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终端的开发周期和风险。
第二,生态方面。工程师选择嵌入式操作系统时,需要关注它的生态和开发者社区,开发者既能够从良好的生态中获取和分享技术文档、软件模块、第三方工具等资料,也能够在开发者社区中学习和交流开发经验,甚至获得解决问题的思路,从而有助于产品开发。
第三,技术服务方面。工程师在产品开发阶段一般都面临产品上市时间和研发成本的压
rtos RT-Thread Linux 嵌入式操作系统 相关文章:
- RTX实时操作系统平台拓展IntervalZero解决方案范围(04-24)
- 技术干货:MCU专用RTOS种类盘点(04-08)
- 麻雀虽小 五脏俱全:MCU专用RTOS简述(04-07)
- Adam Taylor玩转MicroZed:MicroZed操作系统(02-11)
- 从0到1,嵌入式开发就这么简单!(02-09)
- Zynq中使用FreeRTOS的空闲钩子函数时在SDK中的设置(02-09)