▲ 点击上方蓝字关注我们,不错过任何一篇干货文章!
RTOS与Linux的物联网设备操作系统之争已经持续了很多年。Linux以其强大的计算能力和丰富的软件生态,在需要复杂处理和软件支持的物联网设备上占据一席之地;RTOS凭借实时响应和资源节约的特性,在对实时性和资源占用有严格要求的场景中独领风骚。
如果时间倒回五年前,那时候IoT彻底火了,但大型科技公司在面对RTOS和Linux的抉择中,对RTOS不感兴趣,更加青睐Linux,并把它推成主流。不过,在最近一段时间,风评反转了,实时操作系统 (RTOS)在嵌入式IoT领域开始重新复兴。
在开源计划、大型科技公司支持、对低延迟和资源受限应用程序不断增长的需求的推动下,RTOS 正在迅速缩小与Linux的差距。很多开发人员发现,在选择操作系统时,规模并非越大越好,随着更多传感器在时间关键型的应用程序中上线,越来越多人发现RTOS有着改变边缘世界的力量。
付斌|作者
电子工程世界(ID:EEworldbbs)|出品
5tzhkpghf136406924234.png
嵌入式的新变革
z0vzahqrmac6406924334.png
全面而精简,是RTOS被人注视的最大原因,毕竟谁又不喜欢“小而美”。并且,这几年,随着RTOS在保持实时响应性的同时,其在可用性、安全性和可扩展性等方面也取得进展。目前,有将近三分之二的嵌入式系统都在使用RTOS,而RTOS迄今已经拥有了100多种不同的商业和开源产品,比如VxWorks、PX5、EmbOS、SafeRTOS等商业RTOS,再比如Eclipse ThreadX、RT-Thread、mbed OS、UCOS-II、NuttX、eCos、Zephyr等开源RTOS。对于未来几年的市场,很多业内人士都很乐观吗,并表示RTOS在未来三年内每年或可增长10%。之所以能够有这种市场表现的原因在于大厂不断布局RTOS,帮助提升了RTOS开发环境,提供了增强的综合工具、强大的社区支持等,持续促进市场增长。
首先,是微软。2019年4月18日,ThreadX这一有名的RTOS被微软看中,其所有者Express Logic 被整体收购。从那时起,它的名字也被改为Azure RTOS。去年11月,微软宣布将Azure RTOS托管至Eclipse基金会,更名为Eclipse ThreadX,并过渡到开源模式。其次,是亚马逊。2017年 FreeRTOS由亚马逊收购,并成为亚马逊Web Services(AWS)的一部分,进一步推动了其在物联网(IoT)领域的应用。同时,亚马逊宣布在FreeRTOS_V10内核基础上建立MIT licensed的Amazon FreeRTOS操作系统”。最后,是MCU厂商。比如,乐鑫将FreeRTOS作为组件集成到ESP-IDF中,因为原生FreeRTOS是单核RTOS,而ESP32是双核的,因此乐鑫为了支持多核,将FreeRTOS 内核移植到ESP芯片的所有可用架构中;Linux基金会的Zephyr RTOS在Intel、NXP 和 Nordic等厂商的努力下,正在逐渐发展壮大,成为行业新主流;为嵌入式系统设计的lwIP(轻型IP)这样的RTOS IP堆栈正变得越来越强大;MbedTLS这样的加密库现在可以与OpenSSL的功能相媲美,OpenSSL长期以来一直是Linux系统的领导者。
RTOS和Linux的异同
RTOS和Linux都属于嵌入式领域,二者的根本区别在于它们的设计理念。RTOS追求的是轻量级和极致的实时性(Real-time),通常是专为实时应用程序构建的,优先考虑任务执行的确定性和可预测性,使其在医疗、核能或航空航天等关键任务行业中得到广泛应用。同时,轻量化的设计,使得其在资源受限的嵌入式系统中非常受欢。所谓实时性指的是操作系统(OS)在有限的响应时间内提供所需服务级别的能力。在实时系统中,计算的正确性不仅取决于结果的逻辑正确性,还取决于它产生结果的时间。与通用操作系统不同,RTOS侧重于确定性响应时间和对任务调度的精确控制。相比来说,RTOS擅长管理任务优先级,允许关键任务优先于对时间不太敏感的流程,在系统必须保证运营在特定时间范围内时,这种优先级至关重要。企业通常在任务关键型场景中使用RTOS,此外,它同样适用于无法容忍任何形式系统故障的关键系统应用程序中。Linux则更为通用,支持多用户和多任务处理,并提供了丰富的网络功能和设备独立性,也针对性地推出了实时Linux。不过,毕竟Linux需要处理大量系统调度和其它任务,实时性相对会差一些。实时Linux的核心概念是“抢占”,也就是中断当前执行线程,立即处理优先级较高的事件。在没有内核抢占的情况下,在Linux中无法实现确定性响应时间。RTOS和实时Linux之间的选择取决于系统特定延迟要求,以及对开销和资源效率的需求。虽然实时Linux为许多场景提供了强大的解决方案,但在某些关键的嵌入式系统中,专用 RTOS可能仍然更可取。如果项目需要在实时需求和运行各种应用程序的灵活性之间取得平衡,那么实时Linux将提供更通用的解决方案。
RTOS和Linux未来依然会共生
RTOS此时此刻的优势是明显的。对于构建时间敏感型应用程序的开发人员来说,RTOS的低延迟和可预测的实时任务执行比通用操作系统具有明显优势。此外,随着复杂软件堆栈中的安全漏洞不断浮出水面,RTOS的精简架构减少了攻击面。由于应用程序直接编译到操作系统中,因此与动态加载的程序相比,代码注入的可能性大大降低。更重要的是,开发人员不再需要为了性能和安全性而牺牲可用性。从云到加密,RTOS解决方案正在迅速成熟,使开发人员能够构建安全、响应迅速且可扩展的嵌入式系统。
n20gcesf0te6406924434.jpg
不过,要说RTOS彻底取代Linux,那也是完全不可能的。毕竟,实时不会带来优化的性能,而且Linux在复杂的高端嵌入式系统中无法被取代。RTOS通常是专业且资源密集型的,与通用操作系统相比,功能有限。在需要超出实时约束的不同应用程序的场景中,这可能是一个缺点。而且,现在实时Linux开始集成一些补丁(比如Ubuntu的PREEMPT_RT补丁),能够有效地为大多数实际的低延迟、低抖动工作负载提供服务,同时实现均衡的解决方案,从而减少开销并保持响应能力,最终减少维护成本,并使用有限的资源最大限度地提高。总之,正是因为RTOS和Linux非常互补,开发人员才有了更多选择,能够自由地选择用什么系统,对开发者来说才是一次真正的胜利。参考文献
[1] https://www.embedded.com/the-rtos-renaissance-closing-the-os-gap-with-linux-in-iot
[2] https://www.embedded.com/will-zephyr-become-the-dominant-rtos
[3] https://developer.aliyun.com/article/1528219
[4] https://ubuntu.com/blog/real-time-linux-vs-rtos
[5] https://ubuntu.com/blog/real-time-linux-vs-rtos-2
[6] https://mp.weixin.qq.com/s/vx3N6lmeLoFhIuTarQckZQ
猜你喜欢:
WiFi6+蓝牙+星闪,三合一开发板,真香!
Github上热门 C 语言项目汇总!
嵌入式,可测试性软件设计!
一些低功耗软件设计的要点!
嵌入式 C 保护结构体的方式
实用 | 10分钟教你通过网页点灯
谈谈嵌入式软件的兼容性! |