2 pièce(s) jointe(s)
Les ordinateurs du cargo spatial développé par SpaceX tournent sur Linux
Le vaisseau cargo spatial Crew Dragon de SpaceX s'est amarré avec succès sur l'ISS,
ses ordinateurs tournent sur Linux et les commandes sont gérées par écrans tactiles
Samedi, le lancement de la fusée fabriquée par SpaceX, première société privée à se voir confier par la Nasa une mission aussi prestigieuse et risquée, était extrêmement attendu. Il s’agit du premier vol spatial privé et habité. Bob Behnken et Doug Hurley, deux astronautes américains ont rejoint l'ISS, la Station spatiale internationale ce dimanche, près de 20 heures après le décollage réussi depuis le centre spatial Kennedy en Floride.
Grâce à des images diffusées en direct, il a été possible de suivre l'évolution du vol. Après s'être séparé et de son premier, et de son second étage, le vaisseau cargo spatial était sur la bonne orbite pour atteindre la Station spatiale internationale. Il a fallu que les deux hommes patientent quelques heures de plus après l’amarrage réussi pour rejoindre les trois occupants actuels de l’ISS, deux Russes et un Américain.
Ce lancement peut être considéré comme étant historique pour les États-Unis. En effet, l'accident de la navette spatiale Columbia en 2003, qui entraîne la mort de son équipage, remet en cause l'utilisation de la navette spatiale américaine. En 2004 l'agence spatiale américaine, la NASA, décide d'arrêter les vols de celle-ci en 2010. Elle se voit donc obligée de développer des moyens de transport pour reprendre les missions assumées jusque-là par la navette : le ravitaillement de la station spatiale en consommables (nourriture, eau, oxygène, carburant), le transport de pièces détachées pour les structures internes ou externes de la station, l'envoi d'expériences scientifiques à installer à l'intérieur et à l'extérieur de la station, le retour de pièces détachées et de résultats d'expériences sur Terre ainsi que la relève des équipages.
L'objectif est de ne pas être dépendant des autres puissances spatiales qui desservent déjà la station spatiale : vaisseaux Soyouz et Progress russes, HTV japonais et ATV européen. Pour remplacer la navette spatiale la NASA va lancer deux programmes. COTS a pour objectif de développer les moyens de transporter le fret. Pour la relève des équipages, la NASA compte sur le vaisseau Orion développé dans le cadre du programme Constellation mais compte tenu du retard pris par ce programme elle décide de lancer le programme CCDev destiné à développer des moyens de transport en attendant que Orion soit au point
En somme, cela fait près d’une décennie que les États-Unis n'avaient pas envoyé eux-mêmes des hommes dans l'espace après l'abandon des programmes Columbia en 2003 et Atlantis en 2011.
D’ailleurs, lors d’un entretien, Doug Hurley a tenu à féliciter SpaceX, déclarant au passage que : « ce fut un honneur de faire partie de cet effort de neuf ans depuis la dernière fois qu'un véhicule américain s'est amarré à la station spatiale internationale ».
« Aujourd'hui, une nouvelle ère de vols spatiaux humains commence alors que nous avons de nouveau lancé des astronautes américains sur des fusées américaines depuis le sol américain en route vers la Station spatiale internationale, notre laboratoire national en orbite autour de la Terre », a déclaré Jim Bridenstine, administrateur de la NASA. « Je remercie et félicite Bob Behnken, Doug Hurley et les équipes de SpaceX et de la NASA pour cette réalisation importante pour les États-Unis. Le lancement de ce système spatial commercial conçu pour les humains est une démonstration phénoménale de l'excellence américaine et est une étape importante sur notre chemin pour étendre l'exploration humaine à la Lune et à Mars. »
Des ordinateurs qui tournent sur Linux
Les ordinateurs de bord des engins spatiaux sont chargés de contrôler la plateforme, les charges utiles ou les autres appareils embarqués. Leur logiciel spécifique à la mission permet la communication avec le sol ou d'autres ordinateurs de bord. Traditionnellement, les logiciels embarqués ont été écrits à proximité du matériel en langage assembleur, Ada, C ou C++, avec ou sans système d'exploitation en temps réel (RTOS – Real Time Operating System).
Au fur et à mesure que les capacités matérielles informatiques des engins spatiaux augmentent, les logiciels des engins spatiaux deviennent plus grands et plus complexes, gérant plus de tâches, du traitement des données utiles à l'atterrissage d'un étage d'un lanceur sur une barge océanique. Les engins spatiaux continueront à inclure de très petits systèmes embarqués qui peuvent être développés sans systèmes d'exploitation, mais certains systèmes auront également de grandes bases logicielles, nécessitant des processus de développement de logiciels efficients et la réutilisation des modules logiciels existants.
SpaceX, fondée par Elon Musk en 2002, exploite la famille de lanceurs Falcon et le vaisseau cargo spatial Dragon. Un document publié sur l’IEEE Aerospace and Electronic Systems Magazine en octobre 2017 donne un peu plus de détails sur les composants informatiques :
Il indique que « Dragon se compose de trois unités informatiques, chacune dotée de deux processeurs indépendants. Au total, le vaisseau cargo spatial Dragon a au moins 54 processeurs standards, et le lanceur Falcon 9 en a au moins 30 ».
Le document nous apprend aussi que « SpaceX a également sélectionné Linux et C++ pour pouvoir puiser dans la vaste communauté de développeurs de ces environnements - il y a beaucoup plus de développeurs Linux et C ++ que, par exemple, VxWorks et Adadevelopers. SpaceX prévoit également qu'une plus grande disponibilité du matériel entraîne une plus grande familiarité avec le système, réduisant ainsi les bogues ; les développeurs de logiciels de vol ont plusieurs ordinateurs de vol sur leurs bureaux .»
Plus loin, nous pouvons lire :
« SpaceX a commencé son développement de logiciel de vol avec une combinaison de VxWorks pour l'ordinateur principal et Linux pour exécuter les passerelles de communication, mais a continué à utiliser un Linux hautement personnalisé partout après s'être familiarisé avec la progression en temps réel des correctifs de l’ordonnanceur Linux et du noyau. Les raisons du choix de Linux incluaient la disponibilité du code source et donc la programmabilité, sa stabilité au niveau de l'entreprise, la disponibilité des correctifs logiciels en temps réel et sa large communauté d'utilisateurs.
« SpaceX utilise Linux sur leurs ordinateurs de vol principaux pour le vaisseau cargo spatial Dragon et le le lanceur Falcon 9, ainsi que pour leurs véhicules d'essai, tels que Grasshopper. Leur version de Linux est basée sur le noyau 3.2 avec des correctifs en temps réel. Seules les fonctionnalités nécessaires à l'implémentation de SpaceX ont été transportées à partir du noyau d'origine - seulement environ 10 à 15% du code d'origine. SpaceX a également apporté ses propres modifications spécifiques à la mission au noyau, et des pilotes personnalisés ont également été ajoutés. Le noyau a été soigneusement évalué, en particulier en se concentrant sur les performances de l’ordonnanceur
« Les développeurs de logiciels de vol SpaceX utilisent de nombreux outils GNU standard tels que gcc, gdb, ftrace, netfilter et iptables. SpaceX inclut une collecte complète de métriques sur leur logiciel, y compris, mais sans s'y limiter, les performances, l'utilisation du réseau et la charge du processeur. Ces informations sont collectées et stockées avec la télémétrie des engins spatiaux et les versions logicielles en cours d'utilisation; cela permet la reproduction de toute situation rencontrée, particulièrement utile lors de l'analyse des échecs. Les données de mesure sont automatiquement analysées pour déclencher des alarmes si le comportement du logiciel est inhabituel. Les processus de développement de logiciels, tels que l'application des normes de codage, sont automatisés dans la mesure du possible ».
Des commandes sur des écrans tactiles
Près de deux heures après que les astronautes de la NASA, Bob Behnken et Doug Hurley, sont devenus les premiers astronautes lancés dans l'espace sur une fusée privée, ils sont également devenus les premiers à piloter un vaisseau spatial en utilisant uniquement des commandes à écran tactile.
Le vaisseau cargo spatial Crew Dragon de SpaceX évite le célèbre labyrinthe de commandes et interrupteurs manuels trouvés sur les modules de commande des navettes spatiales à la retraite comme Space Shuttle ou Apollo. Au lieu de cela, les pilotes de Crew Dragon n'ont que trois grands écrans tactiles devant eux et quelques boutons en dessous.
Behnken et Hurley ont pu tester cette interface lors d’un bref essai de routine avant le lancement et l'ont d'ailleurs présentée.
Sources : NASA, document sur les ordinateurs embarqués sur le vaisseau cargo spatial, SpaceX
Voir aussi :
:fleche: SpaceX et l'armée américaine auraient signé un accord pour tester le haut débit Starlink pour l'usage militaire
:fleche: Elon Musk : la version bêta privée de Starlink commencera dans environ trois mois et la version bêta publique dans six mois, alors que SpaceX a demandé l'approbation des orbites encore plus basses
:fleche: SpaceX lance avec succès le dernier lot de 60 satellites en orbite, la constellation compte désormais 420 satellites
:fleche: Le ransomware DoppelPaymer a été utilisé par des hackers pour voler les données appartenant à Tesla, SpaceX, Boeing, ainsi qu'à d'autres sociétés clientes de l'américain Visser Precision
1 pièce(s) jointe(s)
SpaceX : en savoir plus sur les équipes d'ingénieurs logiciel, leurs différentes missions de développement
SpaceX : en savoir plus sur les équipes d'ingénieurs logiciels, leurs différentes missions de développement,
les certifications logicielles et autres
Samedi, le lancement de la fusée fabriquée par SpaceX, première société privée à se voir confier par la Nasa une mission aussi prestigieuse et risquée, était extrêmement attendu. Il s’agit du premier vol spatial privé et habité. Bob Behnken et Doug Hurley, deux astronautes américains ont rejoint l'ISS, la Station spatiale internationale ce dimanche, près de 20 heures après le décollage réussi depuis le centre spatial Kennedy en Floride.
Dans un premier temps, nous avons parlé des ordinateurs qui tournent sur Linux et des commandes gérées par écrans tactiles. Et si nous nous intéressions aux équipes de développement logiciel ?
Les ingénieurs logiciels de SpaceX avaient procédé à une FAQ il y a sept ans où ils ont donné au public plus d’information sur ce qu’ils faisaient. Ils ont par exemple indiqué qu’ils sont répartis en quatre équipes :
- L’équipe Flight Software : Au moment de l’échange, elle était constituée de 35 ingénieurs. Ce sont eux qui sont chargés d’écrire tout le code pour les applications Falcon 9, Grasshopper et Dragon. Ils s’occupent également du cœur de la plateforme. Ils écrivent aussi le code des logiciels de simulation, des tests de vol, du logiciel de communication et d'analyse qui est déployé dans les stations SpaceX et au sol. Cette équipe travaille également dans le contrôle de mission pour soutenir les missions actives.
- L’équipe Enterprise Information Systems : Cette équipe construit les systèmes logiciels internes qui font fonctionner SpaceX. Elle porte de nombreuses casquettesx, mais le produit phare qu’elle développe et commercialise est une application Web interne que presque toutes les personnes de l'entreprise utilisent. Les ingénieurs expliquent que « cela inclut les personnes qui créent les bons de commande et remplissent l’inventaire de pièces, les ingénieurs qui créent des conceptions et des bons de travail avec ces pièces, les techniciens au sol qui pointent et voient quel sera le travail d'aujourd'hui selon ces conceptions... et littéralement tout le reste ».
Bien qu’ils reconnaissent qu’il existe des produits disponibles dans le commerce qui font cela, ils sont persuadés que leur outil convient beaucoup mieux à SpaceX : « SpaceX se transforme d'une entreprise de recherche et d'ingénierie en une entreprise de fabrication - ce qui est essentiel à notre succès - et notre équipe est à l'avant-garde pour y arriver. Nous tirons parti de C# / MVC4 / EF / SQL; JavaScript / Knockout / Handlebars / LESS / etc et une API REST super sexy ».
- L’équipe Ground Software : Au moment de l’échange, elle était constituée de 9 ingénieurs. Elle code principalement en LabVIEW. Elle développe les interfaces graphiques utilisées dans le contrôle de mission et de lancement, pour que les ingénieurs et les opérateurs surveillent la télémétrie des véhicules et commandent les fusées, les navettes spatiales et les équipements de soutien des pads. « Nous poussons des données à large bande passante autour d'un système hautement distribué et mettons en œuvre des interfaces utilisateur complexes avec des exigences strictes pour garantir que les opérateurs peuvent contrôler et évaluer les engins spatiaux en temps opportun ».
- L’équipe Avionics Test ; L'équipe travaille avec les concepteurs de matériel avionique pour écrire des logiciels pour les tests. « Nous détectons des problèmes avec le hardware tôt ; quand il est temps pour l'intégration et les tests avec le logiciel de vol, il vaut mieux que ce soit une unité fonctionnelle ». L'objectif principal de cette équipe est d'écrire un logiciel très complet et robuste pour pouvoir automatiser la recherche de problèmes avec le matériel à haut volume. Le logiciel s'exécute généralement pendant les tests dans un environnement mécanique.
Certifications logicielles
La plupart des logiciels importants dans les infrastructures critiques passent par différentes certifications. Par exemple, vous ne pouvez pas exécuter de logiciel aléatoire sur un avion. Même le code du système de divertissement doit satisfaire à diverses certifications. L'une de ces certifications est la norme DO-178B (Software considerations in airborne systems and equipment certification) qui fixe les conditions de sécurité applicables aux logiciels critiques de l'avionique dans l'aviation commerciale et l'aviation générale.
La partie certification et correction est facilitée par l'utilisation d'outils de vérification logicielle. Un tel outil est Astrée. Il s'agit d'un analyseur de code statique qui vérifie les erreurs d'exécution et les bogues liés à la concurrence dans les projets C. Cela nous amène également à la réponse pour laquelle beaucoup de code critique est écrit en C. C'est parce qu'il existe de nombreux analyseurs statiques et outils de vérification de logiciels pour C.
SpaceX a également utilisé Chromium et JavaScript pour l'interface de vol de Dragon 2. Un ingénieur qui a participé à l’échange suppose que cela a été autorisé, car pour chaque entrée critique sur l'écran, il y avait également un bouton physique sous l'écran. Donc, en cas de dysfonctionnement de l'écran, les astronautes pourraient potentiellement utiliser les boutons physiques. Vous pouvez vois les boutons physiques sur cette vidéo, ils sont situés en dessous des écrans tactiles.
Concernant l'utilisation de Chrome et JS, un autre a commenté en ces termes : « De plus, seule l'application d'affichage graphique réelle utilise Chromium / JS. Le reste du système est entièrement en C++. Le code d'affichage a une couverture de test de 100%, jusqu'à la validation de la sortie graphique (par exemple, si vous avez une barre de progression et que vous la définissez sur X%, les tests vérifient qu'elle est réellement dessinée correctement) ».
Les astronautes expliquent comment le système fonctionne et ce qu'ils font en cas de dysfonctionnement de l'interface utilisateur dans cette vidéo.
Les infrastructures
Les infrastructures pour les missions critiques se servent également de système d'exploitation temps réel (en anglais RTOS pour real-time operating system). Ces systèmes d'exploitation ont des garanties spéciales qui pourraient ne pas être fournies par les systèmes d'exploitation ordinaires. Par exemple, une réponse d'interruption plus rapide et une meilleure protection de la mémoire. Un RTOS fournit des garanties en temps réel qui sont essentielles pour de tels logiciels.
Comme exemple nous pouvons citer VxWorks, système d'exploitation temps réel multitâche, généralement utilisé dans les systèmes embarqués. Ce système d'exploitation propriétaire, développé par la firme Wind River (acquise par Intel en 2009), a été employé par la NASA pour les missions spatiales du programme Discovery, Mars Pathfinder, Stardust, Messenger, Dawn, les rovers martiens (Spirit, Opportunity et Curiosity) et la sonde Mars Reconnaissance Orbiter. Il a également été utilisé par l'Agence spatiale européenne sur le satellite PROBA-1 mais aussi par SpaceX sur le Dragon.
Bien entendu, avoir autant de certifications ne signifie pas que les bogues ne peuvent pas apparaître. Apparemment, les rovers mars 2003 ont rencontré un bogue dans leur pilote de mémoire flash, mais il a été résolu en envoyant une mise à jour depuis la Terre.
Source : billet sur SpaceX
Et vous ?
:fleche: Qu'en pensez-vous ?
Voir aussi :
:fleche: SpaceX et l'armée américaine auraient signé un accord pour tester le haut débit Starlink pour l'usage militaire
:fleche: Elon Musk : la version bêta privée de Starlink commencera dans environ trois mois et la version bêta publique dans six mois, alors que SpaceX a demandé l'approbation des orbites encore plus basses
:fleche: SpaceX lance avec succès le dernier lot de 60 satellites en orbite, la constellation compte désormais 420 satellites
:fleche: Le ransomware DoppelPaymer a été utilisé par des hackers pour voler les données appartenant à Tesla, SpaceX, Boeing, ainsi qu'à d'autres sociétés clientes de l'américain Visser Precision