物联网应用选择 RTOS 还是 Linux?

13 篇文章 3 订阅

物联网应用选择 RTOS 还是 Linux

Linux VS RTOS,我该选哪个?

引言

在开发设备或系统时,您需要做出的最早和最关键的决定之一就是决定它将运行哪种类型的操作系统。

操作系统是基于特定硬件的大型系统级软件,是一个包含了资源管理、线程\进程调度、线程\进程间通信与同步等组件的集合。

Linux 通常是许多设备和项目的默认操作系统选择,比如 Android 智能手机、智能电视到游戏机和汽车很多设备都使用 Linux 系统。
RTOS(Real-time operating system, RTOS)也很常见,一些小型网关、智能手表、医疗器械或者玩具会选择 RTOS 作为设备的操作系统。

Linux

Linux是一个通用操作系统(General Purpose Operating System, GPOS);它在嵌入式系统中的应用通常包含外设驱动支持、文件系统、网络连接和 UI 支持。所有这些东西都可以在RTOS中提供(或者裁剪掉这部分功能),但通常支持范围不大,或者需要额外的成本或集成工作。

当然 Linux 的这些功能都需要大量的软硬件资源的支持,而 RTOS 需要的资源则少得多,这也对应了需要的钱的多少。
另一个重要的因素是 Linux 不是实时的。RTOS 提供调度保证,以确保确定性行为以及及时响应事件和中断。

RTOS

RTOS 不同于 Linux 等传统操作系统,因为它对外部事件提供确定性的硬实时响应(规定的很小的时间内,高优先级的任务必须得到执行,否则自爆)。另一方面,传统操作系统提供非确定性的软实时响应。在实践中,这意味着RTOS软件可以为有限数量的预定任务提供高实时性响应的处理(比传统操作系统快得多),而传统 Linux 操作系统在处理大量不同任务方面更有效。

比较

LinuxRTOS
实时性软实时,Linux 有许多调度选项,包括实时调度程序,但这充其量是“软”实时,实时Linux中的典型延迟将在几十或几百微秒左右,像Linux这样的通用操作系统(GPOS)通常使用循环等优先级分时调度程序,在许多进程中“公平”地分配时间。因此,运行处理的越多,它们越忙(使用更多的可用时间片),它的响应就越慢。硬实时,典型的RTOS实时内核可以实现从零到几微秒的延迟(最坏情况下,不是平均时间)。RTOS通常具有基于抢占优先级的调度程序,因此优先级最高的就绪任务无论如何都会立即运行,并将继续运行,直到它挂起自身或更高优先级的任务准备就绪。注意,并不是说把程序放到 RTOS 中,程序就会自动变得实时了,开发者必须适当地分配优先级,以确保所有任务每次都按时运行。通常,具有最短和最确定性运行时的任务应具有最高优先级。
资源需求最初Linux是为台式PC开发的(基于x86处理器架构)。需要大量的CPU资源,可能是>200MIPS,32位处理器,理想情况下需要带MMU,4Mb的ROM和16MB的RAM来启动(可能需要几秒钟),它通常无法在 8 位或 16 位 MCU 上运行,并且需要更多的板载 RAM 用于 Linux 内核。例如,基于ARM Cortex-M架构的MCU,通常只有几百千字节的RAM,Linux无法在这些芯片上运行。RTOS可以在几毫秒内启动,在8位以上的微控制器上运行不到10Kb。一个非常简单的设置,运行两个任务,一个调度程序,一个通信队列和一个8位架构上的信号量,需要的 RAM 可能在 200字节左右
安全性高,Linux 使用适当的进程分离,其中应用程序无法访问其他进程或内核本身使用的内存。较高
开发友好度代码抽象做的好,方便移植。支持众多软硬件驱动程序,调试和性能分析工具更多更完善支持有限的性能分析的 debug 工具,代码兼容性一般
开发理解难度基于 Linux 的系统中的引导加载程序、内核和根文件系统至少比基于 RTOS 的设计复杂几个数量级。
设备体积较大较小
低功耗功耗较高。并且了解其功耗控制方法比较难功耗低,提供简单有效的功耗控制方法
成本Linux系统的物料清单(BOM)起价约为20美元左右单芯片微控制器的BOM可能只有3美元左右
硬件驱动程序Linux是现成的硬件驱动程序的统治者,如今许多芯片供应商只提供Linux驱动程序。如果您正在使用的硬件驱动很多很复杂,那么使用现成的 Linux 驱动程序可以大大加快速度支持的硬件驱动有限
选型建议在实时性的细粒度级别上显得不足。但是,在开发友好度方面,开发环境要友好得多,特别是对于那些不深入了解低层代码的人。如果您需要大量内存来完成手头的任务,例如GPS系统所需的大型数据库,那么Linux的额外内存将不是问题。如果您的响应时间基于人类感知(延迟超过 100 毫秒也可以满足需求), 那么相对较低的实时性性能不是问题。RTOS 只能同时运行少量的任务,尤其是对实时性要求高的少量的任务。代码少得多,复杂性要低得多,出错的可能性要小得多,因此您可以更好地控制整个系统的运行方式。廉价的硬件、快速的响应和愿意做艰苦的开发是 RTOS 的终点,互补的方面指向 Linux。

总结

1)关于物联网应用选择 Linux 还是 RTOS,首先是简单的答案:如果您有实时需求,您应该使用(顾名思义)RTOS。
2)除此之外,一切都取决于您的实际要求(成本、功能)。这也实际上取决于开发人员习惯了什么。配置 Linux 可能非常具有挑战性,有时简单的 RTOS 会更容易。
(谢谢点赞或收藏)

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物联网老王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值