De la Terre à l’espace avec Linux et SpaceX

De la Terre à l'espace avec Linux et SpaceX

Le 30 mai dernier, le Crew Dragon de SpaceX, le premier vaisseau spatial privé et le premier vol spatial habité des Etats-Unis depuis neuf ans, a réussi à mettre en orbite les astronautes Bob Behnken et Doug Hurley de la NASA. Ils ont été emmenés par le Falcon 9 réutilisable de SpaceX, alimenté par du carburant pour fusée et Linux.

Comme les super-ordinateurs, les appareils de l’Internet des objets (IoT) et de nombreux appareils critiques, le Falcon 9 vole avec Linux. Les ingénieurs logiciels de SpaceX ont expliqué il y a plusieurs années comment fonctionne la programmation de Falcon 9.

Les développeurs déclaraient à l’époque : « l’équipe de Flight Software est composée d’environ 35 personnes. Nous écrivons tout le code pour les applications Falcon 9, Grasshopper [la fusée d’essai du Falcon 9] et Dragon ; et nous faisons le travail de base de la plateforme, également sur ces véhicules ; nous écrivons également des logiciels de simulation ; nous testons le code de vol ; nous écrivons les logiciels de communication et d’analyse, déployés dans nos stations au sol. Nous travaillons également au contrôle des missions pour soutenir les missions actives ».

publicité

Processeurs x86 ordinaires à double cœur

Le système d’exploitation embarqué du Falcon 9 est un Linux dépouillé fonctionnant sur trois processeurs x86 ordinaires à double cœur. Le logiciel de vol lui-même fonctionne séparément sur chaque processeur et est écrit en C/C++.

Ordinaires ? Oui, ordinaires. Vous voyez, les processeurs des vaisseaux spatiaux sont loin d’être les plus récents et les plus performants. Ils sont développés pour les vaisseaux spatiaux, ce qui prend des années – voire des décennies – pour passer de la planche à dessin au lancement. Par exemple, la station spatiale internationale (ISS) fonctionne avec des processeurs Intel 80386SX à 20 MHz de 1988. Nous ne savons pas, cependant, quelles sont les puces utilisées par le Falcon 9. Il y a de fortes chances pour que leur conception soit plus ancienne d’au moins dix ans de plus que ce que vous achèteriez en magasin maintenant.

Bien sûr, si ces anciennes puces fonctionnent pour le démultiplexeur de commande et de contrôle de la station (C & C MDM), elles ne sont pas très utiles pour autre chose. Pour leur travail quotidien, les astronautes utilisent HP ZBook 15s sous Debian Linux, Scientific Linux et Windows 10. Les systèmes Linux font office de terminaux distants pour C & C MDM, tandis que les systèmes Windows sont utilisés pour le courrier électronique, le Web et les loisirs.

Triple redondance

En général, les puces qui vont dans l’espace ne sont pas des puces ordinaires. Les processeurs qui restent dans l’espace doivent être durcis aux radiations. Sinon, ils ont tendance à tomber en panne à cause des effets des rayonnements ionisants et des rayons cosmiques. Ces processeurs personnalisés sont soumis à des années de travail de conception, puis à d’autres années de tests avant d’être certifiés pour les vols spatiaux. Par exemple, la NASA prévoit que son processeur polyvalent de prochaine génération, un ARM A53, variante que vous connaissez peut-être du Raspberry Pi 3, sera prêt à fonctionner en 2021. Comme le premier étage du Falcon 9 se pose tout seul, ses puces n’ont pas besoin d’être durcies par les radiations.

Pourquoi trois processeurs ? C’est parce que, comme expliqué sur StackExchange Space Exploration, SpaceX utilise un système “Actor-Judge” pour assurer la sécurité par la redondance. Dans ce système, chaque fois qu’une décision est prise, elle est comparée aux résultats des autres noyaux. En cas de désaccord, la décision est rejetée et le processus est relancé. Ce n’est que lorsque tous les processeurs donnent la même réponse qu’une commande est envoyée aux microcontrôleurs PowerPC.

Ces contrôleurs, qui dirigent les moteurs de la fusée et les ailerons de la grille, reçoivent trois commandes de chacun des processeurs x86. Si les trois chaînes de commande sont identiques, le microcontrôleur exécute la commande, mais si l’une des trois est mauvaise, le contrôleur suit la dernière instruction correcte. Si les choses tournent complètement mal, le Falcon 9 ignore les commandes de la puce qui a mal fonctionné.

Le but de cette triple redondance est de lui donner la tolérance aux pannes dont il a besoin sans avoir à payer pour des puces coûteuses spécifiques à l’espace. Les avions modernes, comme les nouveaux Airbus, utilisent une approche similaire dans leurs systèmes de vol électrique.

Logiciel de vol écrit en C++

Avant même de voir un vol, SpaceX teste ses logiciels et son matériel de vol sur une table. Là, ils peuvent effectuer des simulations de vol, avec des pannes catastrophiques, sans perdre une fusée.

Le vaisseau spatial Dragon fonctionne également sous Linux avec un logiciel de vol écrit en C++. L’interface de l’écran tactile du vaisseau est rendue en utilisant Chromium et JavaScript. En cas de problème avec l’interface, les astronautes disposent de boutons physiques pour contrôler le vaisseau spatial.

Source : ZDNet.com

Leave a Reply

Your email address will not be published. Required fields are marked *