We don’t allow questions seeking recommendations for software libraries, tutorials, tools, books, or other off-site resources. You can edit the question so it can be answered with facts and citations.
Closed 9 years ago.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(12)
Linux 内核有硬实时扩展。 您可能想检查其中一些。
RTAI 和 LXRT 就是很好的例子
RTAI
There are hard real-time extensions to the Linux kernel. You might want to check some of those out.
Good examples are RTAI and LXRT
RTAI
我也一直在使用 FreeRTOS 操作系统,该操作系统可以在修改后的 GNU 许可证下免费使用,付费商业许可证版本或昂贵的安全认证版本 (SafeRTOS)
从网站上有一个 x86 端口,如下
x86
此操作系统提供抢占式或协作式任务调度,包括任务的队列、信号量和优先级设置。 它不提供其他大型操作系统实现(如 Linux)附带的 I/O 或文件库函数。
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)
From the web-site there is an x86 port as follows
x86
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 - 它不提供实时保证,但可能已经足够好了。 有些人发现情况并不像实时供应商试图描述的那么糟糕。
Vanilla Linux 也有不同的调度策略,但没有很多人知道这一点。
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 DOES have different scheduling policies as well, but not a lot of people know that.
Prex 受 BSD 许可。
Prex is under BSD License.
有一个 S.Ha.RK 项目。 它适用于 x86 CPU,但我不知道它是否可以处理 CPU 的所有核心。
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.
嗯,这不是开源,但是您知道 Windows CE 是一个硬实时操作系统并且它确实有 x86 端口吗? 但不知道是否可以支持多核CPU。 如果是商业项目,你绝对应该考虑一下。
还有 MicroC/OS-II,它具有 x86 端口,但是如上所述,不知道是否支持多核。 对于非商业应用程序是免费的。
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.
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.
正如其他人已经提到的,Linux 有实时扩展。 请访问 xenomai.org。
我不太确定多处理器问题。 您到底想在多处理器上做什么?
There are real-time extensions to Linux, as already mentioned by someone else. Have a look at xenomai.org.
I'm not so sure about the multiprocessor issue. What exactly do you want to do on your multiple processors?
BeRTOS 看起来很有趣。 但对于 x86,它支持“仅模拟器”。 但不知道为什么。
BeRTOS looks quite interesting. But for x86 it supports "emulator only". Not sure why though.
FreeRTOS,它提供底层内核。 我在一些嵌入式应用程序中使用过它,它看起来很强大。 但是,这实际上取决于您的应用程序。
http://www.freertos.org/
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.
http://www.freertos.org/
查看 eCos 免费、开源和实时操作系统。 (支持 x86,不确定多核)
RTLinux 也可用
Check out eCos free, open source and real-time operating system. (Supports x86, not sure about multi-core)
RTLinux is also available
eCos 是免费的(但您可以获得付费支持)。 它支持Intel x86架构。 它支持多处理器系统。 根据您的计时要求,我对实时 Linux 系统没有太多经验。 虽然平均响应时间可能不错,但我见过最坏的情况在几天内可能会增加 10 倍甚至 100 倍的情况。 我想这部分取决于驱动程序的质量,部分取决于调度程序本身。
但我想这可以归结为您的系统是否需要硬实时或软实时、时序限制是什么、您需要运行什么样的应用程序。 以及您需要如何简化的开发系统。
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.
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.
OpenSolaris 具有实时功能,但是如果您决定将其用于实时开发,则应该小心:几乎所有 I/O 都可能导致内核中的优先级反转(低优先级系统工作线程可能会饥饿并导致高优先级)要阻塞的线程,例如在 STREAMS 代码中)。
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).