Meio Bit » Arquivo » Demais assuntos » Não, o sistema operacional da Curiosity não é Linux, mas você provavelmente já o usou.

Não, o sistema operacional da Curiosity não é Linux, mas você provavelmente já o usou.

Qual o sistema operativo da Curiosity?

11 anos e meio atrás

WRT54GL

O fenômeno mais divertido até o momento relacionado com a missão da Curiosity em Marte é o mimimi de fanboys do Linux iludidos, indignados ou revoltados com o fato dos computadores da Missão não rodarem Linux. Houve gente sugerindo até que pudesse ser Android.

A verdade é que o trabalho de controlar uma reentrada (a rigor, entrada) de uma cápsula requer muito mais agilidade do que sistemas operacionais como Linux ou Windows podem prover. Também não dá para conviver com a quantidade de “lixo” que esses sistemas geram. Não há espaço para kernel panic no espaço, e as especificações da Curiosity exigem um máximo de uma tela azul a cada 15 anos.

Um dos poucos RTOS – Real Time Operation System – Sistema Operacional de Tempo Real que atende as especificações é o vxWorks, um sistema de microkernel de código fechado (sorry, freetards) com 27 anos de maturidade, desenvolvido pela Wind River, uma subsidiária da Intel. Roda em mais de 1 bilhão de sistemas embarcados, inclusive nos roteadores AirPort Extreme da Apple e no humilde Linksys WRT54G. Isso mesmo, o espertão que troca o sistema nativo pelo DD-WRT está substituindo o sistema aprovado pela NASA por uma gambiarra.

Desde 1994 quase tudo que a NASA lança, incluindo os 3 robôs anteriores em Marte, roda vxWorks. O sistema também é usado na cápsula Dragon, que como todo mundo viu recentemente, funciona redondinha.

Claro, o Sistema Operacional é só parte do pacote. Há a questão do software. O vídeo da NASA fala de 700 mil linhas de código para a manobra de EDL (Entrada, Descida e Pouso). Quanto isso representa, do total das subrotinas da Curiosity?

Segundo dados fornecidos por um workshop em software de naves espaciais, a Curiosity tem no total 2,5 milhões de linhas de código. No caso, C. Não Objective C, Não Java, Não C++ e por tudo que há de mais sagrado, não Python. O bom e velho C, desenvolvido seguindo as especificações do JPL (cuidado, PDF).

2,5 milhões de linhas parece muito, mas o conjunto de softwares da Apollo 11 tinha 145 mil. O ônibus espacial voava (e caía com estilo, na volta) com 400 mil linhas. O Windows XP tem 45 milhões de linhas, o OS X 10.4 tem 86 milhões e mesmo o Android nada menos que 12 milhões.

Com esses 2,5 milhões de linhas o vxWorks mantém a Curiosity funcionando, com todas as constantes checagens de segurança, diagnósticos e logs, além das tarefas normais. São mais de 160 threads, algumas com capacidade de disparar alarmes e assumir prioridade máxima em frações de pentelhonésimos de segundo, como as que controlam a temperatura dos vários componentes.

A equipe que desenvolveu o software da Curiosity é impressionantemente pequena. Foram apenas 30 programadores, e uma equipe de teste e debug de 10 pessoas. Boa parte do software é baseado em um núcleo de rotinas com 15 anos de idade, usado em outros equipamentos (da NASA, não da Linksys).

E para completar, um exemplo das capacidades da Mars Hand Lens Imager (MAHLI), a câmera com microscópio na ponta do braço manipulador da Curiosity:

areiasnaodemarte

Isso que você está vendo é areia. Da Terra, calma, não acharam esferas de rolamento em Marte. No caso ajudam a calibrar a imagem gerada pela MAHLI, que consegue focar em uma área de 2,2 x 1,7cm, gerando imagens com resolução de 13,9 microns por pixel. Ou seja: Se o solo marciano for cheio de micro-conchinhas, saberemos.

Leia mais sobre: , , , .

relacionados


Comentários