首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用实时操作系统(如QNX或VxWorks )而不是Linux的优点?

使用实时操作系统(如QNX或VxWorks )而不是Linux的优点?
EN

Unix & Linux用户
提问于 2011-03-01 18:13:29
回答 2查看 10.7K关注 0票数 15

当开发一个需要实时操作系统的解决方案时,像QNX或VxWorks这样的操作系统比Linux有什么优势?

或者换一种说法,因为这些操作系统是专为实时嵌入式应用而设计的,而Linux是一种更通用的系统,可以根据实时使用量身定做,您什么时候需要使用这些操作系统之一而不是Linux呢?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2011-03-01 20:16:12

一些嵌入式系统(a)需要满足困难的实时需求,而(b)硬件非常有限(这使得满足这些需求更加困难)。

如果您无法更改硬件,那么有几种情况下,您不得不排除Linux,转而使用其他东西:

  • 也许CPU甚至没有MMU,这使得无法运行Linux (除了uClinux,据我所知,uClinux不是实时的)。
  • 也许CPU相对比较慢,Linux中的最坏的中断延迟无法满足某些硬要求,而其他一些RTOS调优为极低的中断延迟可以满足要求。
  • 也许这个系统的内存非常少。几年前,最小的Linux设置需要大约2MB的内存;最小的eCos设置(允许它运行一些最初设计在Linux上运行的应用程序)需要大约20 kB的内存。
  • 也许您的硬件没有Linux的端口,在需要启动之前也没有足够的时间移植Linux (双关语!)你的系统。与Linux相比,许多简单的RTOSes移植到新硬件上所花费的时间要少得多。
票数 14
EN

Unix & Linux用户

发布于 2011-03-01 19:27:07

我根本没有做过任何实时的工作,所以你得带点盐.

我听说有两类“实时”:硬实时和软实时。

“软实时”的非正式意思是“尽快完成它”。我认为现代CPU上的Linux对这类事情是有好处的。

“硬实时”的非正式意思是“在规定的时间范围内完成它”。窗口可以很小,毫秒或什么的。巡航导弹或卫星运载火箭的飞行控制系统似乎是典型的例子。工业过程控制系统也可能需要这一点。Stuxnet蠕虫似乎已经与执行这种控制的系统进行了交互。

在后一种情况下,您可以使用RTOS。RTOS通常保证在少于这么多指令或时钟滴答或其他任何情况下发送中断。

另一个考虑因素可能是,RTOS的设计、测试和/或“证明”不会占用没有绑定的堆栈空间。它可以存在于一定的最小内存中,而像"OOM杀手“这样的东西并不存在,因为它们显然是不需要的。早期FORTRAN的一些优秀特性来自于这类需求。当您编译FORTRAN程序时,您确切地知道它需要多少堆栈和堆,因为您不能递归,并且不能动态地分配任何东西。

实际上,在某些安全关键应用程序中,第二个考虑因素(保证最大内存消耗)可能比“保证中断延迟0.001秒”更为重要。

我还可以想象,如果去掉支持语句的选择过程,您会发现工程师选择RTOS是因为“需求说明了”。

票数 8
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/8413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档