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.

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.

¿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)












Otro Nivel
Hola. Muy interesante el artículo. Sólo un detalle, que sea empotrado no implica que sea en tiempo real, por ejemplo muchos routers, lavadores, neveras... no tienen las restricciones de tiempo real.
Muy buena observación aunque sí que muchos de ellos sí que funcionan a tiempo real.
Gracias!
depende de la aplicación, tiempo real es mandatorio cuando la aplicación es de misión crítica, fuera de eso es puro lujo ;)
Otro dato: las computadoras de escritorio pueden funcionar como sistemas empotrados con tiempo real usando kernel linux, rtai o xenomai con los mismos resultados que el software propietario
Claro que el sistema propietario te garantiza el funcionamiento (o al menos te indemnizan si falla) y en este caso el "WITHOUT ANY WARRANTY" del preambulo de la GNU/GPL es demasiado.
Si se puede garantizar el tiempo real duro con linux, es cosa de dedicarle esfuerzo. Aquí las cosas no son gratis, pero si más económicas.
Eso es una tontería. Muchos sistemas empotrados llevan Linux sólo que la garantía la da quien ofrece le producto con linux no la comunidad en si misma. El motivo para no usar Linux aquí es técnico.
Cuando diseñas un operativo (o middleware), y quieres certificarlo, hay autoridades que certifican que lo implementado cumple con restricciones tales como planificabilidad o interrupciones.
Pues sera que el NYSE y otras bolsas americanas no se han leido la GPL porque usan linux RealTime... para tener predictable latencies.
VxWorks también se usa en los robots KUKA. La interfaz de usuario emplea Windows.
ñoños todos, no entiendo nada
Aqui una pagina de tu nivel intelectual y para menores de 18 http://www.cuantocabron.com/
LOL
Jajajaja +10!!!!
mi mac es marciana XD (el PPC 750 es conocido en el mundo de la mac como el G3)
Muy buen detalle el del planificador expropiativo. Arreglar la entrada por facebook que llevo una hora y no hay manera de logarme xD
por lo que veo. es mas importante que el hardware soporte grandes cantidades de radiacion. mas alla del sistema base que utilize (mientras utilize un sistema real time,estable,compilado para powerpc y corra con un procesador de 110 a 200mhz que la placa base RAD750 incorpora) que por cierto segun la wikipedia saldria 200.000 dolares (presupuesto 2002)
Tambien podemos encontrar Vxworks en telescopios como el Gran Telescopio de Canarias (GTC) y las cámaras que se desarrollan para estos telescopios, OSIRIS por ejemplo.
Otro dato: #43 #8 #9 #15 yo aniadiria: el hardware es limitado no solo por temas de consumo de energía. La fiabilidad de un sistema es directamente proporcional a su complejidad. La razón fundamental de que el hardware sea tan antiguo tiene que ver Con el tamaño de los transistores. Las nuevas geometrias de los modernos transistores que permiten tanta densidad y velocidad son vulnerables a las partículas energéticas de ambientes extremos ( e.g. Radiación) . De hecho el 90 por ciento de los errores en esos ambientes son errores transitorios en memoria debidos a radiación . Por cierto que dichos errores son mas difíciles de detectar que los errores permanentes tipo latch que experimento la pathfinder y con los que un reinicio basta. Estos errores temporales se conocen como single event Effects y existen multitud de ellos pudiendo generar corrupción de datos, shutdowns etc ..... La mecánica de este fenómeno es la siguiente: se necesita un carga eléctrica C para cambiar el valor de un transistor ( 0 a 1, o 1 a 0 binario por ejemplo); es lo que se conoce como carga critica. Si una partícula radioactiva ( ej, protón, neutrón .... Ion pesado ) de energía E tiene mas carga que C se producirá un fAllo. Este fallo potencialmente puede provocar un error que potencialmente puede provocar un failure que puede provocar a su vez una catástrofe. En el articulo no lo menciona pero la parte fundamental es la memoria y apostaría a que esta triplicada con un sistema de votación por mayoría (tmr) o bien el microprocesador entero esta duplicado.
Muy buen aporte :)
Muy intersante explicación. Y la traducción de "embbebed OS", a "sistemas empotrados" en impecable español es muy acertada :)
Buena redacción. Excelente explicación
Saludos desde Venezuela
He leido VxWorks, el sistema operativo del Curiosity con mucho interes y me ha parecido interesente ademas de facil de leer. No dejeis de cuidar esta web es bueno.