3 mar 2009

Tiempo Real Estricto con GNU/Linux y Xenomai

Xenomai es una solución utilizada para dotar al kernel de Linux de soporte para tiempo real estricto (hard real time), ya que éste no es capaz de proporcionar, por si solo, las capacidades necesarias para garantizar restricciones temporales estrictas (lo que no implica alta velocidad).
Según la definición que se hace en su propia pagina web, Xenomai es "un entorno de desarrollo en tiempo real que coopera con el núcleo Linux para proporcionar un respaldo omnipresente, independiente de la interfaz y muy cercano al tiempo real a aplicaciones de espacio de usuario, integrado completamente en el entorno GNU/Linux. Xenomai proporciona su propia API y capas de emulación («pieles» o «skins») para poder migrar desde otros RTOS más fácilmente. Ejemplos de estos son: pSOS+, VxWorks, VRTX, uiTRON, RTAI, POSIX."
Personalmente, lo de "omnipresente" me parece una mala traducción del termino anglosajón "pervasive" cuya traducción es también dominante o penetrante, aunque ninguna de ellas expresa correctamente el concepto.

De una forma mas llana, podemos decir que Xenomai proporciona estructuras de datos, funciones y tipos de datos que nos permiten desarrollar aplicaciones con restricciones de tiempo real estricto, que se integran perfectamente con un entorno GNU/Linux, y que además proporciona varias interfaces que hace más sencilla la adaptación de aplicaciones ya desarrolladas en otros sistemas operativos de tiempo real.

La instalación de Xenomai consta de dos partes:
  1. Parche para el kernel de Linux.
  2. Soporte y aplicaciones de espacio de usuario.
El parche para el kernel se trata de ADEOS (Adaptative Domain Enviroment for Operating Systems) que comparte las interrupciones y eventos generados por el sistema, de forma que colabora con el kernel para ofrecer las capacidades de tiempo real. De ésta forma, los servicios normales de Linux son considerados tareas de baja prioridad respecto a las tareas con restricciones de tiempo real, y éstas últimas no adolecen de latencias no deseadas.

En próximas entradas nos adentraremos en la instalación y uso de Xenomai.

No hay comentarios: