0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RTOS正在缩小与Linux的差距

RT-Thread官方账号 2024-09-10 08:07 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

付斌|作者

电子工程世界(ID:EEworldbbs)|出品

RTOSLinux物联网设备操作系统之争已经持续了很多年。Linux以其强大的计算能力和丰富的软件生态,在需要复杂处理和软件支持的物联网设备上占据一席之地;RTOS凭借实时响应和资源节约的特性,在对实时性和资源占用有严格要求的场景中独领风骚。


如果时间倒回五年前,那时候IoT彻底火了,但大型科技公司在面对RTOS和Linux的抉择中,对RTOS不感兴趣,更加青睐Linux,并把它推成主流。不过,在最近一段时间,风评反转了,实时操作系统 (RTOS)在嵌入式IoT领域开始重新复兴。

在开源计划、大型科技公司支持、对低延迟和资源受限应用程序不断增长的需求的推动下,RTOS 正在迅速缩小与Linux的差距。很多开发人员发现,在选择操作系统时,规模并非越大越好,随着更多传感器在时间关键型的应用程序中上线,越来越多人发现RTOS有着改变边缘世界的力量。

嵌入式的新变革

全面而精简,是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在IntelNXP 和 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解决方案正在迅速成熟,使开发人员能够构建安全、响应迅速且可扩展的嵌入式系统。

ba2660a6-6f08-11ef-bb4b-92fbcf53809c.jpg

不过,要说RTOS彻底取代Linux,那也是完全不可能的。

毕竟,实时不会带来优化的性能,而且Linux在复杂的高端嵌入式系统中无法被取代。

RTOS通常是专业且资源密集型的,与通用操作系统相比,功能有限。在需要超出实时约束的不同应用程序的场景中,这可能是一个缺点。而且,现在实时Linux开始集成一些补丁(比如Ubuntu的PREEMPT_RT补丁),能够有效地为大多数实际的低延迟、低抖动工作负载提供服务,同时实现均衡的解决方案,从而减少开销并保持响应能力,最终减少维护成本,并使用有限的资源最大限度地提高。

总之,正是因为RTOS和Linux非常互补,开发人员才有了更多选择,能够自由地选择用什么系统,对开发者来说才是一次真正的胜利。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2951

    文章

    48261

    浏览量

    419620
  • Linux
    +关注

    关注

    88

    文章

    11854

    浏览量

    219825
  • RTOS
    +关注

    关注

    25

    文章

    871

    浏览量

    123273
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    保姆级教程 | i.MX 93开发板适配Zephyr RTOS全解析

    对于嵌入式RTOS选型、工业级产品开发的团队而言,飞凌嵌入式OK-MX9352-C开发板+Zephyr RTOS是兼顾开发效率、系统安全与硬件可靠性的优选方案。
    的头像 发表于 04-28 08:03 1.1w次阅读
    保姆级教程 | i.MX 93开发板适配Zephyr <b class='flag-5'>RTOS</b>全解析

    标签不能放大和缩小,怎么解决?

    Hi: 最近,我在使用过程中遇到了一个问题: 我创建了一个标签,然后触发事件放大或缩小另一个标签,然后模拟不成功。当按下标签时,另一个标签没有反应。 使用四个接口函数
    发表于 04-28 07:25

    基于极海APM32F4的Azure RTOS ThreadX移植过程分享

    最近在玩APM32F407IG的板子,发现官方提供了两个RTOS的demo,FreeRTOS和RT-thread。想着APM32F4这么丰富的资源,是不是也可以跑一下ThreadX RTOS看看
    的头像 发表于 04-02 11:30 1932次阅读
    基于极海APM32F4的Azure <b class='flag-5'>RTOS</b> ThreadX移植过程分享

    使用RTOS时需要注意的几点内容分享

    内嵌入了一个RTOS。例如,Lynux-Works LynxOS和Bluecat Linux共享一个Linux API。LynxOS是一款硬RTOS,而Bluecat是
    发表于 12-23 06:34

    选择RTOS的要点

    (OS)在其内嵌入了一个RTOS。例如,Lynux-Works LynxOS和Bluecat Linux共享一个Linux API。LynxOS是一款硬RTOS,而Bluecat是
    发表于 12-12 08:00

    RTOS Crash 问题全维度分析与解决指南

    高频创建/删除任务、队列满负载收发),复现Crash,缩小问题范围。 三、典型RTOS Crash场景解决案例 案例1:FreeRTOS栈溢出导致HardFault 现象 :系统运行随机Crash
    发表于 12-08 03:56

    学习RTOS的意义?

    对于嵌入式软件工程师,学习RTOS非常有必要。 1. 项目需要 随着产品要实现的功能越来越多,单纯的裸机系统已经不能完美地解决问题,反而会使编程变得更加复杂,如果想降低编程的难度,就必须引入
    发表于 11-27 08:16

    嵌入式rtos中哪一个更加值得去学习?

    的 “实时性优化”,放到大多数嵌入式场景里,这点差距根本够不上 “决定性”。真正决定一个 RTOS 值不值得学、能不能扛事的,从来不是这点 “微操”,而是能不能把硬
    的头像 发表于 11-05 10:48 997次阅读
    嵌入式<b class='flag-5'>rtos</b>中哪一个更加值得去学习?

    RTOS怎么实现共享内存?

    K230的RTOS支持POSIX标准的共享内存吗 我尝试使用却失败 还是说需要源码部分配置的开启才可以使用 求教大佬
    发表于 08-04 08:06

    使用RTOS的SDK,调整rtsmart-menuconfig出现编译错误怎么解决?

    .想要启用USB的Host主模式,在rtos_k230下改动rtsmart-menuconfig 2.进入RT-Thread Components---> 3.进入Device
    发表于 07-22 07:59

    请问Linux+rtos的1.9版本sdk大核开机自启动一个程序怎么关闭?

    编译开机大核心就出现一个程序报错,01开发板csi2上面默认接的摄像头是gc2093的,运行的是ov5647 期待结果和实际结果 可以关闭这个自启动程序;也希望顺带知道我要开启自启动的程序放在哪里 软硬件版本信息 01stido开发板,Linux+rtos sdk v1.9 错误日志
    发表于 07-22 06:07

    请问编译纯rtos到底是选择Linux+rtos的sdk编译only rtos还是直接使用rtos sdk?

    编译纯rtos到底是选择Linux+rtos的sdk编译only rtos还是直接使用rtos sdk?
    发表于 07-11 07:22

    下一代PX5 RTOS具有哪些优势

    许多古老的RTOS设计至今仍在使用,包括Zephyr(1980年代)、Nucleus(1990年代)和FreeRTOS(2003年)。所有这些旧设计都有专有的API,通常更大、更慢,并且缺乏下一代RTOS的必要安全认证和功能。
    的头像 发表于 06-19 15:06 1376次阅读

    新能源汽车充电桩,中国与欧盟差距很大!

    差距本质是技术路线与市场形态的选择差异
    的头像 发表于 05-28 17:21 998次阅读
    新能源汽车充电桩,中国与欧盟<b class='flag-5'>差距</b>很大!

    国产 vs 进口贴片固态电容:技术差距缩小,本土化替代加速

    差异、市场表现及未来趋势,探讨国产替代的机遇与挑战。   1.性能对比:国产技术迎头赶上   (1)关键参数差距缩小   - ESR(等效串联电阻):早期国产固态电容的ESR较高,影响高频性能,但近年来,如风华高科(FH)、宇阳科技(EYANG)等企业已推出超低ESR系列
    的头像 发表于 05-27 16:25 2175次阅读
    国产 vs 进口贴片固态电容:技术<b class='flag-5'>差距</b><b class='flag-5'>缩小</b>,本土化替代加速