¿Cuál es la diferencia entre RTOS y Linux Embebido? [cerrado]


RTOS y Linux Embebido se utilizan para la programación de sistemas embebidos. ¿Linux Embebido es un RTOS ? ¿Puede alguien enumerar la comparación o la diferencia, por favor?

Author: demongolem, 2014-09-16

1 answers

Linux es un sistema operativo de propósito general (GPO); su aplicación a sistemas embebidos generalmente está motivada por la disponibilidad de soporte de dispositivos, sistemas de archivos, conectividad de red y soporte de interfaz de usuario. Todas estas cosas pueden estar disponibles en un RTOS, pero a menudo con un soporte menos amplio, o a un costo adicional o esfuerzo de integración.

Muchos RTOS no son sistemas operativos completos en el sentido de que Linux lo es, ya que forman parte de una biblioteca de enlaces estáticos que solo proporciona programación de tareas, IPC, sincronización y sincronización. interrumpir servicios y poco más - esencialmente solo el núcleo de programación. Dicha biblioteca está vinculada con el código de la aplicación para producir un único ejecutable que el sistema arranca directamente (o a través de un gestor de arranque). La mayoría de los RTO no soportan directamente la carga y descarga de código dinámicamente desde un sistema de archivos como lo haría con Linux - todo está ahí en el arranque y se ejecuta hasta que se apaga.

Críticamente Linux no es capaz en tiempo real. Un RTOS proporciona garantías de programación para garantizar el comportamiento determinista y los eventos e interrupciones de respuesta oportuna. En la mayoría de los casos, esto es a través de un algoritmo de planificación preventiva basado en prioridades, donde la tarea de mayor prioridad lista para ejecutarse siempre se ejecuta, inmediatamente, anticipando cualquier tarea de menor prioridad sin un rendimiento específico o renunciar a la CPU, o completar un segmento de tiempo.

Linux tiene una serie de opciones de programación, incluyendo un programador en tiempo real, pero esto es en el mejor de los casos" suave " en tiempo real - un término que no me gusta desde está mal definido, y esencialmente significa tiempo real, la mayor parte del tiempo, pero a veces no. Si su aplicación no necesita tiempo real "duro", está bien, pero las latencias típicas en Linux en tiempo real estarán en el orden de decenas o cientos de microsegundos, mientras que un núcleo RTOS en tiempo real típico puede lograr latencias de cero a unos pocos microsegundos.

Otro problema con Linux embebido es que necesita recursos de CPU significativos, tal vez > 200MIPS, procesador de 32 bits, idealmente con un MMU, 4Mb de ROM y 16MB de RAM para casi arrancar (lo que puede tomar varios segundos). Un RTOS por otro lado puede ser en milisegundos, ejecutar en menos de 10Kb, en microcontroladores de 8 bits hacia arriba. Esto puede tener un impacto significativo en el costo del sistema para la producción en volumen a pesar de ser ostensiblemente "gratis".

Hay productos RTOS más grandes que exhiben algunas de las características de un GPOS como carga dinámica, sistemas de archivos, redes, GUI (por ejemplo, en QNX), y muchos RTOS proporcionan un POSIX API (generalmente secundaria a su API nativa en tiempo real) por ejemplo VxWorks y otra vez QNX, de modo que una gran cantidad de código desarrollado para Linux y Unix se puede portar con relativa facilidad. Estos productos RTOS más grandes y completos siguen siendo escalables, por lo que no se incluye la funcionalidad que no se requiere. Linux en comparación tiene una escalabilidad mucho más limitada.

 53
Author: Clifford,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-11 07:22:48