Сравнение встроенных операционных систем?

Я принимал участие во встраиваемых операционных системах того или иного вида, и, как правило, мне приходилось работать с любой устаревшей системой. Теперь у меня есть шанс начать с нуля новый встроенный проект.

Основные ограничения в системе:

  • Требуется веб-интерфейс.
  • Входные данные должны обрабатываться в режиме реального времени (поэтому необходима настоящая ОСРВ).
  • Объем доступной памяти составляет 32 МБ ОЗУ и FLASH.

Ранее использовались следующие операционные системы: VxWorks, ThreadX, uCos, pSOS и Windows CE.

У кого-нибудь есть сравнение или специальное исследование относительно выбора операционной системы?

Есть ли другие операционные системы, которые мы должны рассмотреть? (Мы предлагали eCos и RT-Linux).

Редактировать - Спасибо за все ответы на сегодняшний день. Жаль, что я не могу отметить все как "принятые".

11 ответов

Решение

Все зависит от того, сколько времени было выделено вашей команде, чтобы освоить "новую" ОСРВ.
Есть ли причины, по которым вы не хотите использовать то, с чем у людей уже есть опыт?

У меня большой опыт работы с vxWorks, и мне это нравится, но не обращайте внимания на мое мнение, поскольку я работаю в WindRiver.

Преимущество uC/OS II в том, что они полностью документированы (как на самом деле объясняется в исходном коде) в книге Лаброса. Не знаю о веб-поддержке, хотя.

Я знаю, что pSos больше не доступен.

Вы также можете взглянуть на этот список RTOS

Я думаю, что было бы разумно тщательно оценить, что вы подразумеваете под "RTOS". Я годами работал в крупной компании, которая создает высокопроизводительные встраиваемые системы, и они называют их "в режиме реального времени", хотя это не то, чем они являются на самом деле. Они имеют низкую задержку и имеют детерминированные планировщики, и в 9 раз из 10 это то, что действительно нужно людям, когда они говорят RTOS.

Реальное время реального времени требует аппаратной поддержки и, скорее всего, не то, что вы на самом деле имеете в виду Если все, что вам нужно, это низкая задержка и детерминированное планирование (опять же, я думаю, это то, что люди имеют в виду 90% времени, когда говорят "в реальном времени"), тогда любой дистрибутив Linux будет работать для вас просто отлично. Возможно, вы даже можете обойтись с Windows (хотя я не уверен, как вы управляете планировщиком Windows...).

Опять же, просто будьте осторожны, что вы подразумеваете под "в реальном времени".

Я работал с QNX много лет назад, и мне нечего сказать об этом. Даже в то время QNX 4 (который по сравнению с микроядром Neutrino явно коренастый) идеально подходил для ситуаций с нехваткой памяти (хотя 32 МБ - это пустяки по сравнению с 1-2 МБ, с которыми нам приходилось играть), и хотя я не делал этого явно играть с любыми сетевыми вещами, я знаю, что Apache был доступен.

Я приобрел некоторые средства разработки у http://netburner.com/. С ними было очень легко работать, и они были хорошо документированы. Это RTOS под управлением uCLinux. С компанией приятно работать.

Это может быть мудрым решением выбрать ОС, с которой сталкивается ваша команда. Однако я хотел бы продвигать два хороших варианта с открытым исходным кодом:

Оба имеют множество функций и драйверов для самых разных архитектур. Вы не упомянули, какую архитектуру вы будете использовать. Они предоставляют слои POSIX, что хорошо, если вы хотите оставаться максимально портативным.

Кроме того, лицензия для eCos и RTEMS является GPL, но за исключением того, что исполняемый файл, созданный путем связывания с ядром, не распространяется на GPL.

Сообщества очень активны, и есть компании, которые предоставляют коммерческую поддержку и развитие.

Мы были очень довольны системой Keil RTX... легкой и быстрой и отвечающей всем нашим строгим ограничениям в реальном времени. Он также имеет несколько хороших функций отладки, встроенных для мониторинга переполнения стека и т. Д.

Мягкий может также означать, что вы можете терпеть некоторые икоты время от времени.

Каковы требования к надежности? Мой опыт работы с операционными системами более общего назначения, такими как Linux, во встраиваемых системах заключается в том, что они, как правило, испытывают случайные сбои из-за своих умных оптимизаций в среднем случае, которые пытаются избежать голодания и аналогичных для отдельных задач.

Публикация для согласования с Беном Коллинзом - вам действительно нужно определить, есть ли у вас мягкое требование в реальном времени (в первую очередь для взаимодействия с человеком) или жесткое требование в реальном времени (для взаимодействия с устройствами, чувствительными к времени).

Вот последнее исследование. Последнее было сделано более 8 лет назад, так что это наиболее актуально. Таблицы могут быть использованы для добавления дополнительных вариантов RTOS. Вы заметите, что это сравнение ориентировано на более легкие машины, но в равной степени применимо к более тяжелым машинам, если виртуальная память не требуется.

http://www.embedded.com/design/operating-systems/4425751/Comparing-microcontroller-real-time-operating-systems

VxWorks хорош:

  1. хорошая документация;
  2. дружественный развивающий инструмент;
  3. низкая задержка;
  4. детерминированное планирование.

Однако я сомневаюсь, что WindRiver сконцентрирует свое основное внимание на Linux, а WindRiver Linux выйдет на рынок WindRiver VxWorks. Меньше рынка, меньше требований инженеров.

Я был очень доволен Windows CE, хотя он "тяжелее".

Другие вопросы по тегам