Inicio Instrumentación Linux en tiempo real: el alumbramiento de una nueva era de diseño...

Linux en tiempo real: el alumbramiento de una nueva era de diseño embebido.

 

Artículo cedido por National Instruments 

Poco después de su creación, el sistema operativo Linux se convirtió en habitual en el diseño de sistemas embebidos, ya que un sistema operativo de código abierto resultaba muy atractivo por estar soportado por la comunidad y ser gratuito y accesible. La adopción de Linux en el diseño de sistemas embebidos es lo único que se puede esperar, ya que Linux es muy personalizable, ofrece soporte para una amplia gama de arquitecturas de procesador (por ejemplo, ARM, x86, etc) y cuenta con una comunidad de fácil acceso que es rica en aplicaciones y código. La reciente investigación del mercado embebido indica claramente que Linux reclama actualmente más del 50 % de los sistemas operativos integrados en uso, aunque no hay cuentas de distribución individuales para más del 20% del mercado. 

A pesar de los beneficios que Linux ofrece a los diseñadores embebidos, no ha sido adecuado históricamente para aquellos que buscan cumplir con los requisitos de las aplicaciones en tiempo real y alto rendimiento. Desde el principio, los desarrolladores de software embebido intentaron diversas técnicas para mejorar el rendimiento de Linux para su uso en tiempo real. Aunque los diseñadores embebidos han propuesto numerosas soluciones, no existía un enfoque coherente y ampliamente aceptado para el rendimiento en tiempo real con Linux. Con el paso de los años, una técnica que ha ganado en particular el enfoque y la atención es el método híbrido de utilización de la tecnología “hypervisor” para combinar Linux con un sistema operativo dedicado en tiempo real (RTOS) para su uso en aplicaciones embebidas con requisitos de tiempo real. 

El mercado embebido es testigo de unas pocas soluciones basadas en hypervisor, las cuales hacen posible que los usuarios ejecuten Linux junto con un RTOS más dedicado. Los ejemplos incluyen Green Hills INTEGRITY Multivisor y CODEZERO Embedded Hypervisor de B Labs. Por desgracia, estas soluciones parecen perder la referencia, al no captar la esencia de por qué los diseñadores embebidos tratan de utilizar Linux. Más bien, las soluciones disponibles de hypervisor incrementan la complejidad del sistema en detrimento de la usabilidad y demandan una mayor especialización de los equipos de diseño embebido. 

Sólo recientemente ha surgido una alternativa convincente para los diseñadores de sistemas embebidos. A medida que el uso de Linux continúa madurando en los mercados embebidos, los desarrolladores han progresado en la adición de características que mejoran el determinismo del propio kernel de Linux. Gracias a la reciente llegada del conjunto de parches de PREEMPT_RT, la comunidad Linux unificó su método para lograr el rendimiento en tiempo real con Linux. Lo que es particularmente relevante acerca de esta solución es que un solo sistema operativo en tiempo real basado Linux permite a los desarrolladores obtener las ventajas del rendimiento en tiempo real con la accesibilidad, usabilidad y soporte de una comunidad que están disponibles en sistemas operativos de propósito general. 

Un RTOS de Linux creado con el conjunto de parches de PREEMPT_ RT incluye jitter al mismo nivel que otros RTOS dedicados, como el VxWorks de WindRiver o el Interval de Zero. Del mismo modo, con respecto a la utilizac i ó n d e l a CPU como una función de la velocidad del bucle, un PREEMPT_RT RTOS basado en Linux ofrece un rendimiento equivalente o mejorado sobre otros RTOS dedicados. En gran parte, esta mejora del rendimiento a nivel de aplicación, medido por una ganancia inferior en el uso de la CPU a velocidades más altas del bucle, es un resultado de la disponibilidad de la programación de un sistema RTOS basado en Linux. A diferencia de la mayoría de los RTOS dedicados, un RTOS basado en Linux puede ofrecer tanto un programador en tiempo real para las tareas críticas, como un programador mucho más eficiente y completo para todas las tareas que no son en tiempo real. 

El consenso creciente es que PREEMPT_RT permite un RTOS basado en Linux q u e ofrece un rendimiento similar al de otros RTOS existentes. Lograr este nivel de rendimiento es excelente, tanto para los usuarios de Linux que buscan hacer frente a aplicaciones de prestaciones más elevadas y en tiempo real, como para aquellos que actualmente dependen de RTOS dedicados que buscan beneficiarse de la estabilidad, facilidad de uso y soporte de la comunidad que ofrece Linux. La gran comunidad de IP y herramientas junto con la importante base de usuarios con experiencia permite a los diseñadores una mayor autonomía para incrementar la funcionalidad de su solución a un coste menor de desarrollo. Muchas de las mejoras en todo el sistema operativo pueden ser rápidamente aprovechadas, por ejemplo, el stack de red maduro y estable proporcionado por Linux soporta verdaderos NICs (Network Interface Cards) de doble DHCP y ofrece soporte para protocolos de comunicación como IPv6 y SNMP. 

El conjunto de parches PREEMPT_RT ofrece unos vectores clave de diferenciación fundamentales para los diseñadores de sistemas embebidos. Extiende la flexibilidad que Linux proporciona para diversas arquitecturas de hardware y el diseño de un solo sistema operativo hace que la asignación de recursos sea mucho más simple. 

Como resultado, los usuarios se benefician de una mayor facilidad de uso, una capacidad de programación más intuitiva y una mejor capacidad de configuración y gestión del sistema. Más allá de flexibilidad del hardware, un RTOS de Linux permite a los equipos de diseño embebido añadir y formar a los desarrolladores de software más fácilmente dada la ubicuidad de Linux y el relativamente amplio suministro de usuarios y recursos de Linux. Gracias al acceso a un RTOS basado en Linux más accesible y familiar, los equipos de diseño embebido pueden hacer frente de manera más eficiente a los desafíos del diseño embebido con un conjunto consolidado de cadenas de herramientas de software. 

Como PREEMPT_RT continúa creciendo como lo hace el método estándar para obtener la funcionalidad en tiempo real con Linux, el mercado está empezando a reconocer un número cada vez mayor de soluciones basadas en COTS (Custom Off-The-Shelf), que ofrecen RTOS basado en Linux. Un ejemplo es el nuevo controlador cRIO-9068 de National Instruments, que cuenta con un RTOS basado en Linux abierto y con buen mantenimiento con un factor de forma compacto y robusto. El controlador cRIO-9068 soporta el desarrollo de aplicaciones mediante el software de diseño de sistemas LabVIEW de NI y las herramientas C/C++ que permiten a los usuarios reutilizar eficazmente el código C/C++ y aprovechar la comunidad de Linux al mismo tiempo que se benefician de la interfaz de desarrollo intuitivo proporcionada por LabVIEW. 

El diseño embebido es ahora más accesible para los equipos de diseño de software con experiencia 

limitada en hardware debido a las soluciones COTS basadas en RTOS de Linux. Para los equipos de diseño más maduros, estas soluciones ofrecen un camino mucho más eficiente hacia el mercado; ya que, los recursos del equipo se pueden ser invertir en las tareas específicas de la aplicación en lugar de hacerlo en tareas rutinarias, tales como el diseño y la disposición de los conectores de los periféricos de un procesador o escribir middleware para integrar los componentes de los periféricos. 

Además, para los equipos deseosos de contar con componentes de software de código abierto, un RTOS de Linux empaquetado en una solución COTS por un vendedor dispuesto a mantener y actualizar el sistema operativo proporciona la suficiente confianza y responsabilidad para garantizar la inversión. Los primeros usuarios ya son testigos de estas ventajas. 

“El sistema operativo de tiempo real basado en Linux del NI cRIO- 9068 cambia las reglas del juego”, dijo Wolfram Koerver, director ejecutivo del SEA Datentechnik GmbH. “Gracias al NI cRIO-9068, podemos añadir funciones y tecnologías importantes a nuestra plataforma de registro de datos que no podíamos hacer antes. 

Los esfuerzos de desarrollo para la implementación de las funciones y características requeridas se redujeron al menos un 80% en comparación con las soluciones basadas en VxWorks”. 

En tanto que la oferta de RTOS de Linux llegue a ser más común en las soluciones basadas en COTS, los usuarios deberían buscar arquitecturas de hardware subyacentes que ofrezcan la mayor flexibilidad. A modo de ejemplo, el controlador cRIO-9068 cuenta con la arquitectura RIO (Reconfigurable I/O) de NI LabVIEW, que permite a los usuarios hacer frente a un conjunto muy diverso de necesidades. La versatilidad que ofrece la arquitectura LabVIEW RIO se debe a un procesador que trabaja en conjunto con una FPGA con acceso a E/S. 

Los usuarios pueden llevar rápidamente soluciones altamente diferenciadas al mercado con hardware flexible COTS que ofrece un RTOS basado en Linux. Esta nueva tecnología comercial permite a los usuarios reutilizar el código y se benefician del incremento de prestaciones, como muestra LocalGrid™ Technologies. 

“Dentro de las 24 horas después de haber recibido un controlador cRIO-9068, ejecutamos nuestra aplicación de software de LabVIEW ya existente sin ningún problema”, dijo Bob Leigh, presidente y CEO de LocalGrid Technologies. “Estamos impresionados por la facilidad de transición de software entre los sistemas CompactRIO y por la increíble mejora de rendimiento del nuevo controlador diseñado por software.” 

A medida que la línea principal del kernel de Linux continúa mejorando las características, tales como el aislamiento de los núcleos y la gestión de memoria, PREEMPT_RT servirá como una solución cada vez más atractiva para los diseñadores de sistemas embebidos. 

Apelando a los desarrolladores tradicionales de Linux y de RTOS, un RTOS basado en Linux ofrece una oportunidad significativa – sobre todo cuando se hace disponible en una plataforma COTS resistente, robusta y flexible. Gracias a este enfoque, los diseñadores pueden centrarse en atender a cuestiones tales como la integración o la seguridad de los sistemas, mientras que el mantenimiento y las actualizaciones del sistema operativo dependen de los proveedores, lo cual permite optimizar aún más su diseño. 

Las soluciones COTS que ofrecen los RTOS de Linux harán posible que los diseñadores puedan mantenerse por delante de las presiones del mercado, lanzando diseños innovadores al mercado más rápido que nunca, marcando una nueva era del diseño embebido.