有没有针对x86架构的开源实时操作系统?

14

有没有开源的实时操作系统?我听说过实时Linux,但大多数实现似乎真的是一种专有的实时操作系统(需要付费),它作为Linux进程运行 - 就像Ardence的RTX实时系统在Windows上的工作方式。

编辑:我应该澄清一下,我正在寻找可以与多核x86系列CPU一起使用的RTOS。


您还应该澄清是否需要 TCP/IP 协议栈。这将极大地影响建议。 - Craig McQueen
“真正”的硬实时似乎是不可能的,因为我们无法预测x86的延迟:https://dev59.com/fm3Xa4cB1Zd3GeqPaQtb - Ciro Santilli OurBigBook.com
12个回答

6

FreeRTOS是一个提供底层内核的操作系统。我曾在一些嵌入式应用中使用过它,它似乎非常稳健。但是,这取决于您的应用程序。

http://www.freertos.org/


1
我不认为有x86端口可用。当然,由于它是开放源代码的,您可以自己编写一个! - kgiannakakis

5

请查看免费、开源和实时操作系统eCos。(支持x86,多核尚不确定)

RTLinux也可用。


3

eCos是免费的(但您可以获得付费支持)。它支持英特尔x86架构。它支持多处理器系统。根据您的时序要求,我在实时Linux系统方面的经验不太好。尽管平均响应时间可能很好,但我见过几天内最差情况可能高达10倍甚至100倍的情况。我想这部分取决于驱动程序的质量,部分取决于调度程序本身。

但我想归结为您的系统是否需要硬实时或软实时,时序约束是什么,需要运行什么类型的应用程序以及您需要多流畅的开发系统。


2
有一些针对Linux内核的硬实时扩展。你可能需要查看其中一些。
RTAI和LXRT是很好的例子。
RTAI可以通过这个链接了解更多信息。

2

OpenSolaris具有实时能力,但如果您决定将其用于实时开发,则需要注意:几乎所有I/O操作都可能导致内核中的优先级反转(低优先级系统工作线程可能会饿死并导致高优先级线程被阻塞,例如在STREAMS代码中)。


2

我也一直在使用FreeRTOS操作系统,它有三种版本:免费的修改版GNU许可证、付费商业许可证和昂贵的安全认证版(SafeRTOS)。

从网站上可以看到x86端口如下:

x86

* Supported processor families: Any x86 compatible running in Real mode only, plus a Win32 simulator
* Supported tools: Open Watcom, Borland, Paradigm, plus Visual Studio for the WIN32 simulator

这个操作系统提供具有队列、信号量和任务优先级设置的抢占式或协同式任务调度。它没有提供像Linux等其他更大型的操作系统实现中所提供的I/O或文件库函数。


1

您的确切需求是什么?也许您可以使用原始的Linux - 它不提供实时保证,但可能足够好。有些人发现它并不像实时供应商所说的那样糟糕。

原始的Linux确实具有不同的调度策略,但很少有人知道。


0

Prex采用BSD许可证。


0

S.Ha.R.K.项目。它适用于x86 CPU,但我不知道它是否处理CPU的所有核心。


0

这不是开源的,但你知道Windows CE是一个硬实时操作系统,并且它确实有x86端口吗?但我不确定它是否支持多核CPU。如果这是一个商业项目,你绝对应该考虑它。

还有MicroC/OS-II,它有一个x86端口,但同上,我不知道它是否支持多核。它适用于非商业应用程序免费使用。


作为一个小趣闻,现在许多街机使用的是Windows CE操作系统。 - Robert Gould

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接