是否有任何开源实时操作系统?我听说过实时 Linux,但大多数实现似乎真的是一个专有的 RTOS(你必须付费),它将 Linux 作为一个进程运行——与 Ardence 的 RTX 实时系统在 Windows 上工作的方式非常相似。
编辑:我应该澄清一下,我正在寻找与多核 x86 系列 CPU 一起使用的 RTOS。
是否有任何开源实时操作系统?我听说过实时 Linux,但大多数实现似乎真的是一个专有的 RTOS(你必须付费),它将 Linux 作为一个进程运行——与 Ardence 的 RTX 实时系统在 Windows 上工作的方式非常相似。
编辑:我应该澄清一下,我正在寻找与多核 x86 系列 CPU 一起使用的 RTOS。
FreeRTOS,它提供了底层内核。我在一些嵌入式应用程序中使用过它,它看起来很强大。但是,这实际上取决于您的应用程序。
eCos 是免费的(但您可以获得付费支持)。它支持 Intel x86 架构。它支持多处理器系统。根据您的时间要求,我对实时 Linux 系统的体验并不好。虽然平均响应时间可能不错,但我见过几天内最坏的情况可能是 10 倍甚至 100 倍。我想这部分取决于驱动程序的质量,部分取决于调度程序本身。
但我想这归结为您的系统需要硬实时还是软实时,时间限制是什么,您需要运行什么样的应用程序。以及您需要的简化开发系统。
OpenSolaris 具有实时功能,但是如果您决定将其用于实时开发,则应注意:几乎所有 I/O 都可能导致内核中的优先级反转(低优先级系统工作线程可能会饿死并导致高优先级要阻塞的线程,例如在 STREAMS 代码中)。
我也一直在使用 FreeRTOS 操作系统,它可以根据修改后的 GNU 许可证、付费商业许可证版本或昂贵的安全认证版本 (SafeRTOS) 免费提供
从网站上有一个 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 或文件库函数。
您的具体要求是什么?也许您可以使用 vanilla Linux——它不提供实时保证,但可能已经足够好了。有些人发现它并不像实时供应商试图做出的那样糟糕。
Vanilla Linux 也有不同的调度策略,但很少有人知道这一点。
BeRTOS 看起来很有趣。但对于 x86,它支持“仅模拟器”。不知道为什么。
Prex在 BSD 许可下。
有S.Ha.RK项目。它适用于 x86 CPU,但我不知道它是否可以处理 CPU 的所有内核。
好吧,这不是开源的,但是您知道 Windows CE 是一个硬实时操作系统并且它确实有一个 x86 端口吗?但是我不知道它是否可以支持多核 CPU。如果它是一个商业项目,你绝对应该考虑它。
还有MicroC/OS-II,它有一个 x86 端口,但和上面一样,我不知道它是否支持多核。它对非商业应用是免费的。
正如其他人已经提到的,Linux 有实时扩展。看看 xenomai.org。
我不太确定多处理器问题。你到底想在你的多个处理器上做什么?