Встроенный Linux или eCos?

Один из способов взглянуть на это - встроенная Linux начинается с настольного Linux и откачивает части, не нужные для встроенных систем (это действительно так?), тогда как eCos разработан с нуля для встроенных систем.

Теперь предположим, что ARM-процессор, возможно, ARM 7 - делает ли производительность отличной? Фактически, мы говорим о системе с очень низкой нагрузкой, максимум 500 транзакций в день.

Любые преимущества одного над другим (или FreeRTOS и т.д.)? Стабильность, зрелость, производительность, инструменты разработки, что-нибудь еще?

Все, что я могу придумать, это то, что если я определенный, что я никогда не буду переносить на другой o/s, то если я пойду со встроенной Linux, мне не понадобится o/s абстракции, чтобы я мог выполнять модульное тестирование на хосте (настольный Linux-ящик).

Любые мысли или комментарии? Спасибо.

Ответ 1

Каждое устройство, с которого я поставил Linux, начиналось с нуля и не было урезанной версией некоторого дистрибутива.

eCos и Linux имеют разные цели. Linux предназначен как полнофункциональная Unix-подобная система и, следовательно, не настолько обеспокоена минимальными системными требованиями. eCos - это операционная система реального времени, предназначенная для систем, которые часто ограничены ресурсами. Существует много перекрытий между двумя ОС, и во многих ситуациях обе будут работать одинаково хорошо.

По моему опыту, если ваша система имеет ресурсы, а ваши требования нетривиальны, разработка будет быстрее работать с Linux. Легче найти компетентных разработчиков Linux, чем разработчиков RTOS, инструменты дешевле, процессы защищены друг от друга, вы, как правило, лучше просматриваете запущенную систему и т.д.

Альтернативой eCos (лучше, IMHO) является RTEMS (http://www.rtems.com). Это было дольше, и последний раз, когда я проверял, поддерживал больше архитектур, чем eCos. Он также имеет ПК BSP и работает под qemu для эмуляции.

Ответ 2

Нет никакой реальной пользы при установке Linux на ARM7 IMO; ARM7 не имеет MMU, и защита памяти является основной причиной использования ОС, такой как Linux. uClinux будет работать на объектах без MMU, но вы потеряли одну из самых убедительных причин для использования Linux и по-прежнему нуждаетесь в огромных ресурсах памяти (A 4M flash, 16M RAM - разумный минимум).

Многие устройства ARM7 не имеют внешних шин памяти для подключения большого объема памяти, а на микросхеме и RAM обычно варьируются от 32K до 1M в зависимости от устройства.

Linux не является внутренне "реальным". Для возможностей реального времени он часто сочетается с ядром реального времени, где Linux по существу работает как задача бездействия, или по целям с возможностью как отдельной виртуальной машины. Поэтому, если требуется детерминированный и быстрый ответ на внешние события, вам понадобится RTOS, например eCOS.

eCOS отлично справляется с тем, что у него есть большая экосистема дополнительных функций и поддержка устройств, которая конкурирует с большинством коммерческих предложений. Однако что-то вроде FreeRTOS, скорее всего, будет легче "воспитывать", но обеспечить не более, чем планировщик потоков и механизмы взаимодействия между процессами. Такие вещи, как файловая система или TCP/IP, должны быть получены от сторонних производителей (хотя для этого также требуются одинаково маленькие и бесплатные решения, подходящие для встроенных систем).

Если вы используете простое ядро, такое как FreeRTOS или uC/OS-III, вы не будете тратить слишком много времени, поэтому инвестиции не будут ингибитором использования чего-то еще в следующий раз. Linux, с другой стороны, может помешать вам использовать что-то меньшее и более узкое таргетирование в следующий раз, а последующие проекты тура могут стоить значительно дороже, чем нужно для поддержки вашей ОС по выбору.

Ответ 3

Встраиваемый Linux == Linux в 99% случаев. Вы просто настраиваете ядро ​​по-разному.

Большая разница в производительности заключается в том, что с помощью eCos вы можете, в зависимости от вашей реализации/конфигурации, иметь ожидаемое время отклика, а в Linux вы находитесь во власти контроллера прерываний.

Linux обладает гораздо большей базой поклонников, чем eCos, тем самым, больше помогает в разработке и поддерживает широкий спектр процессоров. Кроме того, в зависимости от того, какие драйверы вы хотите, вы можете скомпилировать и запустить свою программу на ПК под управлением Linux.

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