有没有开源的实时操作系统?我听说过实时Linux,但大多数实现似乎真的是一种专有的实时操作系统(需要付费),它作为Linux进程运行 - 就像Ardence的RTX实时系统在Windows上的工作方式。
编辑:我应该澄清一下,我正在寻找可以与多核x86系列CPU一起使用的RTOS。
有没有开源的实时操作系统?我听说过实时Linux,但大多数实现似乎真的是一种专有的实时操作系统(需要付费),它作为Linux进程运行 - 就像Ardence的RTX实时系统在Windows上的工作方式。
编辑:我应该澄清一下,我正在寻找可以与多核x86系列CPU一起使用的RTOS。
FreeRTOS是一个提供底层内核的操作系统。我曾在一些嵌入式应用中使用过它,它似乎非常稳健。但是,这取决于您的应用程序。
eCos是免费的(但您可以获得付费支持)。它支持英特尔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或文件库函数。
您的确切需求是什么?也许您可以使用原始的Linux - 它不提供实时保证,但可能足够好。有些人发现它并不像实时供应商所说的那样糟糕。
原始的Linux确实具有不同的调度策略,但很少有人知道。
这不是开源的,但你知道Windows CE是一个硬实时操作系统,并且它确实有x86端口吗?但我不确定它是否支持多核CPU。如果这是一个商业项目,你绝对应该考虑它。
还有MicroC/OS-II,它有一个x86端口,但同上,我不知道它是否支持多核。它适用于非商业应用程序免费使用。