Answers:
一些嵌入式系统(a)需要满足困难的实时要求,而(b)硬件非常有限(这使得满足这些要求更加困难)。
如果您无法更改硬件,那么在某些情况下,您将不得不排除Linux并改用其他软件:
我根本没有做任何实时工作,所以要加一点盐...
有人告诉我“实时”有两类:硬实时和软实时。
非正式的“软件实时”是指“尽快完成”。我认为现代CPU上的Linux可以很好地解决这种问题。
“硬实时”非正式地表示“在要求的时间范围内完成”。窗口可以很小,毫秒级。巡航导弹或卫星运载火箭的飞行控制系统似乎是典型的例子。工业过程控制系统可能也需要此。Stuxnet蠕虫似乎已经干扰了执行这种控制的系统。
在后一种情况下,您将使用RTOS。RTOS经常保证在少于这么多的指令或时钟滴答声之类的时间内发送中断。
另一个考虑因素可能是设计,测试和/或“证明” RTOS不会无限制地消耗堆栈空间。它可以驻留在一定的最小内存量之内,并且不存在诸如“ OOM Killer”之类的东西,因为事实证明它们根本不需要。早期FORTRAN的一些愚蠢的功能来自这种要求。编译FORTRAN II程序时,您确切知道需要多少堆栈和多少堆,因为您无法递归,也无法动态分配任何内容。
实际上,第二个考虑因素(保证的最大内存消耗)在某些对安全性至关重要的应用中可能比“保证的0.001秒的中断等待时间”更重要。
我还可以想象,如果剥去无花果叶的选择流程,您会发现工程师选择RTOS是因为“要求如此”。