Are there any open source real time operating systems out there? I've heard of real-time Linux, but most implementations seem to really be a proprietary RTOS (that you have to pay for) that run Linux as a process -- much the same way Ardence's RTX real-time system works for Windows.
那里有没有开源的实时操作系统?我听说过实时Linux,但大多数实现似乎都是一个专有的RTOS(你需要付费),它将Linux作为一个过程运行 - 就像Ardence的RTX实时系统适用于Windows一样。
EDIT: I should clarify that I'm looking for RTOS to work with multi-core x86-family CPUs.
编辑:我应该澄清一下,我正在寻找RTOS来使用多核x86系列CPU。
12 个解决方案
#1
6
FreeRTOS, it provides the underlying kernel. I've used it in some embedded apps and it seems robust. But, it really depends on your application.
FreeRTOS,它提供底层内核。我在一些嵌入式应用程序中使用它,它看起来很健壮。但是,这实际上取决于您的应用程序。
#2
#3
3
eCos is free (but you can get paid support). It supports Intel x86 architecture. It supports multi-processor systems. Depending on your timing requirements, I've had not too good experience with real-time Linux systems. Although response time may be good in average, I've seen cases where the worst case over a few days may be 10 or even 100 times as much. I guess this partly depends on the quality of the drivers, partly on the scheduler itself.
eCos是免费的(但您可以获得付费支持)。它支持Intel x86架构。它支持多处理器系统。根据您的时间要求,我对实时Linux系统的经验不太好。虽然平均响应时间可能很好,但我看到几天内最坏情况可能是10或甚至100倍的情况。我想这部分取决于驱动程序的质量,部分取决于调度程序本身。
But I guess it boils down to whether your system demands hard or soft real-time, what the timing constraints are, what kind of application you need to run. And how streamlined development system you require.
但我想这可以归结为您的系统是实时要求硬还是软,时序约束是什么,需要运行什么样的应用程序。以及如何简化您需要的开发系统。
#4
2
There are hard real-time extensions to the Linux kernel. You might want to check some of those out.
Linux内核有硬实时扩展。您可能想要检查其中的一些。
Good examples are RTAI and LXRT
很好的例子是RTAI和LXRT
#5
2
OpenSolaris has real-time capabilities, however you should watch out if you decide to use it for real-time development: pretty much all I/O can cause priority inversions in the kernel (low-priority system worker threads can starve and cause high priority threads to be blocked, e.g. in STREAMS code).
OpenSolaris具有实时功能,但是您应该注意是否决定将其用于实时开发:几乎所有I / O都会导致内核中的优先级反转(低优先级系统工作线程可能会饿死并导致高优先级要阻塞的线程,例如在STREAMS代码中)。
#6
2
I have also been using the FreeRTOS operating system that is available either for free under a modified GNU licence, a paid commercial licence version or an expensive safety certified version (SafeRTOS)
我也一直在使用FreeRTOS操作系统,该系统可以通过修改后的GNU许可证,付费商业许可证版本或昂贵的安全认证版本(SafeRTOS)免费获得。
From the web-site there is an x86 port as follows
从网站上有一个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
This OS provides the pre-emptive or co-operative task scheduling with queues, semaphores and priority setting for the tasks. It does not provide the sort of I/O or file library functions that come with other larger OS implementations like Linux.
此操作系统为任务提供队列,信号量和优先级设置的先发制人或合作任务调度。它不提供与Linux等其他更大的OS实现一起提供的I / O或文件库函数。
#7
1
What are your exact requirements? Perhaps you can use vanilla Linux - it doesn't provide real-time guarantees but might be good enough. Some people find that it's not as bad as the real-time vendors try to make out.
你有什么要求?也许你可以使用vanilla Linux - 它不提供实时保证,但可能足够好。有些人发现它并不像实时供应商那样糟糕。
Vanilla Linux DOES have different scheduling policies as well, but not a lot of people know that.
Vanilla Linux DOES也有不同的调度策略,但很多人都不知道。
#9
0
There is the S.Ha.R.K. Project. It works with x86 CPUs but I don't know if it handles all cores of a CPU.
有S.Ha.R.K.项目。它适用于x86 CPU,但我不知道它是否处理CPU的所有核心。
#10
0
Well this is not Open Source, but did you know that Windows CE is a hard real time operating system and that it does have a x86 port? I don't know however if it can support multi core CPUs. If it is a commercial project, you definitely should consider it.
嗯,这不是开源,但你知道Windows CE是一个硬实时操作系统,它有一个x86端口吗?但我不知道它是否可以支持多核CPU。如果它是一个商业项目,你绝对应该考虑它。
There is also MicroC/OS-II, which has a x86 port, but as above, I don't know if it supports multi cores. It is free for non-commercial applications.
还有MicroC / OS-II,它有一个x86端口,但如上所述,我不知道它是否支持多核。它可以免费用于非商业用途。
#11
0
There are real-time extensions to Linux, as already mentioned by someone else. Have a look at xenomai.org.
正如其他人已经提到的那样,Linux有实时扩展。看看xenomai.org。
I'm not so sure about the multiprocessor issue. What exactly do you want to do on your multiple processors?
我不太确定多处理器问题。你想在多处理器上做什么?
#12
0
BeRTOS looks quite interesting. But for x86 it supports "emulator only". Not sure why though.
BeRTOS看起来很有趣。但对于x86,它支持“仅模拟器”。虽然不知道为什么。
#1
6
FreeRTOS, it provides the underlying kernel. I've used it in some embedded apps and it seems robust. But, it really depends on your application.
FreeRTOS,它提供底层内核。我在一些嵌入式应用程序中使用它,它看起来很健壮。但是,这实际上取决于您的应用程序。
#2
5
Check out eCos free, open source and real-time operating system. (Supports x86, not sure about multi-core)
查看eCos免费,开源和实时操作系统。 (支持x86,不确定多核)
RTLinux is also available
RTLinux也可用
#3
3
eCos is free (but you can get paid support). It supports Intel x86 architecture. It supports multi-processor systems. Depending on your timing requirements, I've had not too good experience with real-time Linux systems. Although response time may be good in average, I've seen cases where the worst case over a few days may be 10 or even 100 times as much. I guess this partly depends on the quality of the drivers, partly on the scheduler itself.
eCos是免费的(但您可以获得付费支持)。它支持Intel x86架构。它支持多处理器系统。根据您的时间要求,我对实时Linux系统的经验不太好。虽然平均响应时间可能很好,但我看到几天内最坏情况可能是10或甚至100倍的情况。我想这部分取决于驱动程序的质量,部分取决于调度程序本身。
But I guess it boils down to whether your system demands hard or soft real-time, what the timing constraints are, what kind of application you need to run. And how streamlined development system you require.
但我想这可以归结为您的系统是实时要求硬还是软,时序约束是什么,需要运行什么样的应用程序。以及如何简化您需要的开发系统。
#4
2
There are hard real-time extensions to the Linux kernel. You might want to check some of those out.
Linux内核有硬实时扩展。您可能想要检查其中的一些。
Good examples are RTAI and LXRT
很好的例子是RTAI和LXRT
#5
2
OpenSolaris has real-time capabilities, however you should watch out if you decide to use it for real-time development: pretty much all I/O can cause priority inversions in the kernel (low-priority system worker threads can starve and cause high priority threads to be blocked, e.g. in STREAMS code).
OpenSolaris具有实时功能,但是您应该注意是否决定将其用于实时开发:几乎所有I / O都会导致内核中的优先级反转(低优先级系统工作线程可能会饿死并导致高优先级要阻塞的线程,例如在STREAMS代码中)。
#6
2
I have also been using the FreeRTOS operating system that is available either for free under a modified GNU licence, a paid commercial licence version or an expensive safety certified version (SafeRTOS)
我也一直在使用FreeRTOS操作系统,该系统可以通过修改后的GNU许可证,付费商业许可证版本或昂贵的安全认证版本(SafeRTOS)免费获得。
From the web-site there is an x86 port as follows
从网站上有一个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
This OS provides the pre-emptive or co-operative task scheduling with queues, semaphores and priority setting for the tasks. It does not provide the sort of I/O or file library functions that come with other larger OS implementations like Linux.
此操作系统为任务提供队列,信号量和优先级设置的先发制人或合作任务调度。它不提供与Linux等其他更大的OS实现一起提供的I / O或文件库函数。
#7
1
What are your exact requirements? Perhaps you can use vanilla Linux - it doesn't provide real-time guarantees but might be good enough. Some people find that it's not as bad as the real-time vendors try to make out.
你有什么要求?也许你可以使用vanilla Linux - 它不提供实时保证,但可能足够好。有些人发现它并不像实时供应商那样糟糕。
Vanilla Linux DOES have different scheduling policies as well, but not a lot of people know that.
Vanilla Linux DOES也有不同的调度策略,但很多人都不知道。
#8
#9
0
There is the S.Ha.R.K. Project. It works with x86 CPUs but I don't know if it handles all cores of a CPU.
有S.Ha.R.K.项目。它适用于x86 CPU,但我不知道它是否处理CPU的所有核心。
#10
0
Well this is not Open Source, but did you know that Windows CE is a hard real time operating system and that it does have a x86 port? I don't know however if it can support multi core CPUs. If it is a commercial project, you definitely should consider it.
嗯,这不是开源,但你知道Windows CE是一个硬实时操作系统,它有一个x86端口吗?但我不知道它是否可以支持多核CPU。如果它是一个商业项目,你绝对应该考虑它。
There is also MicroC/OS-II, which has a x86 port, but as above, I don't know if it supports multi cores. It is free for non-commercial applications.
还有MicroC / OS-II,它有一个x86端口,但如上所述,我不知道它是否支持多核。它可以免费用于非商业用途。
#11
0
There are real-time extensions to Linux, as already mentioned by someone else. Have a look at xenomai.org.
正如其他人已经提到的那样,Linux有实时扩展。看看xenomai.org。
I'm not so sure about the multiprocessor issue. What exactly do you want to do on your multiple processors?
我不太确定多处理器问题。你想在多处理器上做什么?
#12
0
BeRTOS looks quite interesting. But for x86 it supports "emulator only". Not sure why though.
BeRTOS看起来很有趣。但对于x86,它支持“仅模拟器”。虽然不知道为什么。