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

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

10 голосов
/ 20 апреля 2010

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

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

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

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

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

Ответы [ 3 ]

9 голосов
/ 20 апреля 2010

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

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

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

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

9 голосов
/ 23 апреля 2010

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

Многие устройства ARM7 не имеют шин внешней памяти для подключения такого большого объема памяти, а объем встроенной флэш-памяти и ОЗУ обычно составляет от 32 КБ до 1 МБ, в зависимости от устройства.

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

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

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

4 голосов
/ 20 апреля 2010

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

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

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

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

...