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非常互补,开发人员才有了更多选择,能够自由地选择用什么系统,对开发者来说才是一次真正的胜利。

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

    关注

    2939

    文章

    47317

    浏览量

    407858
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217972
  • RTOS
    +关注

    关注

    25

    文章

    862

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    学习RTOS的意义?

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

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

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

    使用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

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

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

    rtosrtos&amp;linux能否调整连接windows后的设备名称?

    rtosrtos&amp;linux 能否调整连接windows后的设备名称
    发表于 05-14 06:19

    如何在Eclipse ThreadX RTOS中集成SystemView

    SEGGER实时软件分析工具SystemView已经在ThreadX v6.4.2上进行了测试。SystemView从v3.60c版本支持Eclipse ThreadX(Azure RTOS),用户
    的头像 发表于 05-06 17:11 1171次阅读

    RTOS如何在FX3中工作?

    大家好, 我正在使用 FX3 进行一个项目。 我想知道 RTOS 调度是如何工作的。 我知道调用“CyU3PKernelEntry();”后 RTOS 就会开始工作。 如果我只注册一个应用程序线程。 我的线程什么时候执行?
    发表于 05-06 13:20

    k230 rtos串口1无输出怎么解决?

    studio k230 linux+rtos,在大核里打开了uart1设备,使用例程通过uart1发送和接收数据,但是电脑上没有接收到任何数据,01 studio的串口1是io3和io4,请问是需要配置引脚功能么?如果需要,怎么改呢?
    发表于 04-28 08:02

    linux+rtos系统如何适配linux小核屏幕驱动?

    我希望使用小核运行lvgl对大核程序进行控制,运行小核lvgldemo的时候发现linux下的屏幕没有做适配,查看dts发现几乎所有的dts都用的是hx8399作为dsi的显示,但是现在市面上
    发表于 04-25 07:16

    深度对比:全国产电脑替代方案VS进口设备,性能差距缩小至15%的真相

    在工业、金融、能源等领域,进口电脑设备长期占据主导地位,但高昂的成本和技术依赖风险成为企业痛点。如今,以华颉工控机为代表的全国产电脑替代方案,通过CPU、操作系统、芯片组的全面国产化,将性能差距从过去的50%以上缩小至15%以内,同时成本直降40%。
    的头像 发表于 03-27 13:43 2825次阅读
    深度对比:全国产电脑替代方案VS进口设备,性能<b class='flag-5'>差距</b><b class='flag-5'>缩小</b>至15%的真相

    详解RTOS中的Hook函数

    Hook函数是RTOS中的一个关键特性,通过该函数,用户可以增强对任务管理的控制,定义系统行为。
    的头像 发表于 03-24 16:14 838次阅读

    RTOS中的本地存储指针使用

    本地存储指针是RTOS中的一个重要特性,增强了任务管理和数据处理能力。在RTOS上下文中,本地存储是指存储在本地的特定任务或对象的数据。通常与任务本地存储(Task Local Storage,TLS)有关,其中数据存储在任务控制块(TCB)中,允许每个任务具有私有的、特
    的头像 发表于 02-28 16:33 1170次阅读
    <b class='flag-5'>RTOS</b>中的本地存储指针使用

    Flexible Safety RTOS的技术特征

    Embedded Office的Flexible Safety RTOS是专为具有严格功能安全要求的嵌入式系统量身定制的、先进的实时操作系统。该RTOS专为工业自动化、汽车、铁路和医疗设备等行业而设
    的头像 发表于 01-07 11:29 993次阅读