Ответ 1
FreeRTOS, он предоставляет базовое ядро. Я использовал его в некоторых встроенных приложениях, и он кажется надежным. Но это действительно зависит от вашего приложения.
Есть ли там операционные системы реального времени с открытым исходным кодом? Я слышал о Linux в режиме реального времени, но большинство реализаций действительно представляют собой проприетарную ОСРВ (за которую вам нужно заплатить), которые запускают Linux как процесс - точно так же, как система реального времени Ardence RTX работает для Windows.
EDIT: я должен уточнить, что я ищу RTOS для работы с многоядерными процессорами семейства x86.
FreeRTOS, он предоставляет базовое ядро. Я использовал его в некоторых встроенных приложениях, и он кажется надежным. Но это действительно зависит от вашего приложения.
Откажитесь от eCos свободной, с открытым исходным кодом и в режиме реального времени. (Поддерживает x86, не уверен в многоядерности)
RTLinux также доступен
eCos является бесплатным (но вы можете получить платную поддержку). Он поддерживает архитектуру Intel x86. Он поддерживает многопроцессорные системы. В зависимости от ваших требований к времени я не слишком хорошо разбираюсь в системах Linux реального времени. Хотя время отклика может быть хорошим в среднем, я видел случаи, когда худший случай в течение нескольких дней может быть в 10 или даже в 100 раз больше. Я полагаю, это отчасти зависит от качества драйверов, частично от самого планировщика.
Но я думаю, это сводится к тому, требует ли ваша система жесткого или мягкого реального времени, каковы ограничения по времени, какое приложение нужно запускать. И как вам нужна оптимизированная система разработки.
В ядре Linux есть жесткие расширения в реальном времени. Вы можете проверить некоторые из них.
Хорошими примерами являются RTAI и LXRT
OpenSolaris имеет возможности в режиме реального времени, однако вы должны следить за тем, хотите ли вы использовать его для разработки в режиме реального времени: почти все операции ввода-вывода могут вызвать инверсии приоритетов в ядре (низкоприоритетные рабочие потоки системы могут голодать и вызывают блокирование потоков с высоким приоритетом, например, в коде 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.
Каковы ваши точные требования? Возможно, вы можете использовать vanilla Linux - он не обеспечивает гарантии в реальном времени, но может быть достаточно хорош. Некоторые люди считают, что это не так плохо, как производители в реальном времени пытаются разобраться.
Vanilla Linux У них также разные политики планирования, но не многие знают об этом.
Prex находится под лицензией BSD.
Существует S.Ha.R.K. Проект. Он работает с процессорами x86, но я не знаю, обрабатывает ли он все ядра процессора.
Ну, это не Open Source, но знаете ли вы, что Windows CE - это жесткая операционная система реального времени и что у нее есть порт x86? Однако я не знаю, может ли он поддерживать многоядерные процессоры. Если это коммерческий проект, вы определенно должны его рассмотреть.
Существует также MicroC/OS-II, который имеет порт x86, но, как указано выше, я не знаю, поддерживает ли он несколько ядер, Он бесплатный для некоммерческих приложений.
В Linux есть расширения для реального времени, как уже упоминалось кем-то другим. Посмотрите на xenomai.org.
Я не уверен в многопроцессорной проблеме. Что именно вы хотите делать на нескольких процессорах?
BeRTOS выглядит довольно интересно. Но для x86 он поддерживает только "эмулятор". Не уверен, почему.