Twitter

14 agosto 2012

VxWorks, el sistema operativo del Curiosity

VxWorks, el sistema operativo del Curiosity:
La llegada de la Curiosity a Marte copó gran parte de la atención mediática en el día de ayer y, la verdad, es que asistimos a un momento histórico en el campo de la exploración espacial que, seguramente, nos ofrezca un buen número de datos sobre el Planeta Rojo. Este rover de exploración está controlado por un sistema embebido que gira alrededor de un procesador RAD750 (una versión del PowerPC 750 resistente a la radiación) a 200 MHz al que acompañan, entre otras cosas, 256 MB de RAM y 2 GB de almacenamiento flash pero, bajo mi punto de vista, uno de los detalles técnicos más interesantes de la Curiosity es su sistema operativo puesto que es un punto que tienen en común el helicóptero de combate Apache Longbow, el Telescopio Espacial James Webb, la nave Dragon de SpaceX o el robot ASIMO: el sistema operativo VxWorks.
vxworks
Antes de entrar en materia puede ser interesante pararnos un momento a hablar de los sistemas embebidos o sistemas empotrados que aunque tengan un nombre tan singular, en el fondo, no dejan de ser computadoras aunque algo más especiales que un PC convencional. Un sistema empotrado es una computadora diseñada para la ejecución de tareas muy específicas y, por tanto, tanto su software como su hardware se han diseñado de manera expresa para responder a un conjunto de funcionalidades muy concreto (sin embargo un PC es un dispositivo de propósito general que cubre un espectro amplio de requisitos y necesidades funcionales). Al igual que cualquier computador, los sistemas embebidos constan de microprocesadores, memoria, almacenamiento y periféricos (comunicaciones, salida de vídeo, dispositivos de entrada/salida, etc) aunque todo está optimizado para la computación a tiempo real y, por tanto, en muchas aplicaciones es fundamental una buena gestión de las interrupciones, es decir, eventos que interrumpen la ejecución de procesos “normales” para que se ejecuten tareas de respuesta a dicha interrupción.
Precisamente, la gestión de las interrupciones es una de las características fundamentales del sistema operativo VxWorks que, a día de hoy, está presente en Marte gracias a la Curiosity y, anteriormente, gracias a la Mars Reconnaissance Orbiter. Este sistema operativo a tiempo real está basado en Unix y es desarrollado por la compañía Wind River Systems desde hace casi 30 años (la primera versión data de 1985) y, desde entonces, se ha mantenido vivo y en continua mejora (la versión 6.9 se lanzó el año pasado).

VxWorks incluye un kernel multitarea con un planificador expropiativo (preemptive scheduler) en el que se da una respuesta rápida a las interrupciones y permite que determinados procesos puedan tomar el control de la CPU si éstos se activan (mediante la conjunción de ciertas condiciones de contorno), permite la comunicación entre procesos, incluye un sistema de archivos y ofrece a los usuarios un interfaz de consola. VxWorks requiere menos potencia de procesamiento que Unix y, claro está, es algo que encaja perfectamente con el tipo de hardware que se suele utilizar en sistemas de alta tolerancia a fallos (donde los componentes electrónicos que se utilizan son de contrastada fiabilidad y, por tanto, suelen primar algunos “componentes clásicos” en versiones destinadas a funcionar en condiciones extremas).
Si a estos factores le sumamos su flexibilidad (admite un amplio abanico de arquitecturas como la x86, MIPS, PowerPC, SH-4, ARM, StrongARM y xScale) y la cantidad de entornos de desarrollo disponibles (prácticamente adaptados a todo tipo de necesidad y entorno de aplicación y basados en Eclipse), han hecho que este sistema operativo esté presente en un amplio abanico de proyectos y sistemas donde la fiabilidad y la seguridad son los requisitos que más destacan.
VxWorks2
¿Y dónde podemos encontrar al VxWorks? Además de estar presente en Marte controlando la Curiosity y la Mars Reconnaissance Orbiter o volando a bordo de un helicóptero Apache, VxWorks está presente el sistema iDrive de BMW, en el avión de transporte A400M de Airbus Military, en algunos robots industriales (además del ASIMO de Honda), dispositivos como el AirPort Extreme de Apple, algunos teléfonos por satélite, grandes equipos de comunicaciones (switches, routers y firewalls que se usan en el core de en grandes redes de datos), en el sistema de radar del F-18 o incluso algunos modelos de fotocopiadoras, una enorme variedad de sistemas que nos muestra la versatilidad de este sistema operativo.

VxWorks es un potente sistema operativo que, seguramente, siga estando presente en vehículos destinados a la exploración espacial, aviones y dispositivos de red.
Imagen: Paperblog (consola)



No hay comentarios:

Publicar un comentario