2010-04-20 8 views
10

Una forma de mirarlo - Linux embebido comienza con escritorio Linux & zanjas de las partes no necesarias para sistemas empotrados (es esto realmente cierto?), Mientras que eCos está diseñado desde el principio para sistemas embebidos.Linux incorporado o eCos?

Supongamos ahora un procesador ARM, probablemente ARM 7: ¿el rendimiento hace la diferencia? En realidad, estamos hablando de un sistema de carga muy bajo, máximo de 500 transacciones por día.

¿Alguna ventaja de una sobre la otra (o FreeRTOS, etc.)? Estabilidad, madurez, rendimiento, herramientas de desarrollo, ¿algo más?

Todo lo que puedo pensar es que si soy cierto que nunca voy a transferir a otro o/s, entonces si voy con Linux incorporado, no necesito una capa de abstracción de o/s para permitir yo para hacer pruebas unitarias en el host (caja de Linux de escritorio).

¿Alguna opinión o comentario? Gracias.

+3

Si está utilizando un ARM7, posiblemente no tenga una MMU. Por lo tanto, necesitará ucLinux, que es Linux, menos el soporte de memoria virtual. –

+0

Votación para cerrar como demasiado amplia. Relacionado: http://stackoverflow.com/questions/25871579/what-is-the-difference-between-rtos-and-embedded-linux –

Respuesta

9

Cada dispositivo que he puesto en Linux comenzó desde el principio y no era una versión reducida de alguna distribución.

eCos y Linux tienen diferentes objetivos. Linux pretende ser un sistema de tipo Unix con todas las funciones y, en consecuencia, no está tan preocupado por los requisitos mínimos del sistema. eCos es un sistema operativo en tiempo real diseñado para sistemas que a menudo tienen recursos limitados. Hay mucha superposición entre los dos sistemas operativos y en muchas situaciones ambos funcionarán igual de bien.

En mi experiencia, si el sistema dispone de los recursos y sus necesidades no son triviales, el desarrollo será más rápido con Linux. Es más fácil encontrar desarrolladores competentes de Linux que desarrolladores de RTOS, las herramientas son más económicas, los procesos están protegidos entre sí, usted tiende a tener una mejor visibilidad del sistema en ejecución, etc.

Una alternativa (mejor, en mi humilde opinión) a los eCos es RTEMS (http://www.rtems.com). Ha estado por más tiempo y la última vez que revisé, admití más arquitecturas que eCos. También tiene un PC BSP y funciona bajo qemu para emulación.

4

Linux incorporado == Linux en el 99% de todos los casos. Simplemente configura el kernel de manera diferente.

La mayor diferencia en el rendimiento es que con eCos puede, dependiendo de su implementación/configuración, tener un tiempo de respuesta esperado, mientras que con Linux está a merced del controlador de interrupción.

Linux tiene una base de fans mucho más grande que eCos así más ayuda para el desarrollo, y es compatible con una amplia gama de CPUs. Además, dependiendo de qué controladores desee, puede compilar y ejecutar su programa en una PC con Linux.

Linux puede detectar bloqueos/interbloqueos y enviar respuestas/reinicios automáticos para mantener la alta disponibilidad del sistema.

9

No hay un beneficio real al poner Linux en una IMO ARM7; ARM7 no tiene MMU y la protección de la memoria es la razón principal para usar un sistema operativo como Linux. uClinux se ejecutará en objetivos sin una MMU, pero habrá perdido uno de los motivos más convincentes para usar Linux, y aún necesitará los enormes recursos de memoria (un flash de 4M, 16M de RAM sería un mínimo razonable).

Muchos dispositivos ARM7 no tienen buses de memoria externa para la fijación de que la cantidad de memoria, y en el flash chip y RAM suelen oscilar forma 32K a 1M en función del dispositivo.

Linux no es intrínsecamente "en tiempo real".Para la capacidad en tiempo real, a menudo se combina con un kernel en tiempo real, donde Linux se ejecuta esencialmente como la tarea inactiva, o en los objetivos con la capacidad de una máquina virtual separada. Por lo tanto, si se requiere una respuesta determinista y rápida a eventos externos, necesitará un RTOS como eCOS.

eCOS es excelente ya que tiene un gran ecosistema de funciones complementarias y soporte para dispositivos que compite con la mayoría de las ofertas comerciales. Sin embargo, es probable que algo como FreeRTOS sea más fácil de "abrir", pero no brinde más que un programador de hilos y mecanismos de comunicación entre procesos. Cosas como un sistema de archivos o TCP/IP deben ser adquiridas por terceros (aunque existen soluciones igualmente pequeñas y gratuitas adecuadas para sistemas integrados para eso también).

Si utiliza un Kernel simple como FreeRTOS o uC/OS-III, no habrá perdido demasiado tiempo, por lo que la inversión no es un inhibidor para usar algo diferente la próxima vez. Linux, por otro lado, puede desanimarlo a utilizar algo más pequeño y más específico la próxima vez, y los proyectos posteriores de gira pueden costar mucho más de lo que necesitan solo para respaldar su sistema operativo de su elección.