Встроенный 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 может обнаруживать блокировки/блокировки и отправлять автоматические ответы/перезагрузки, чтобы поддерживать высокую доступность системы.