Le rover martien Curiosity de la NASA le 5 août 2015. Image : NASA/JPL-Caltech/MSSS
Les mises à jour de logiciels peuvent s’avérer délicates. Imaginez maintenant que vous mettiez à jour une technologie ancienne sur un appareil situé à des millions de kilomètres dans l’espace. Telle est l’ampleur du défi auquel les professionnels de l’informatique de la NASA font face.
Il y a plus de dix ans, le rover Curiosity de la NASA s’est posé sur Mars. À peu près au même moment, si vous utilisiez Windows, vous utilisiez Windows 7. En années informatiques, une décennie est une très longue période. Aujourd’hui, il y a de fortes chances que vous utilisiez Windows 11. Quel est donc le système d’exploitation utilisé par Curiosity ? La réponse est qu’il utilise toujours VxWorks de Wind River.
VxWorks est un système d’exploitation embarqué temps réel très répandu. Sur Curiosity, il fonctionne avec un microprocesseur PowerPC RAD750 de 200 MHz, qui est la version résistante aux radiations de la vénérable puce PowerPC 750. Ces puces ont été utilisées pour la dernière fois dans des ordinateurs terrestres tels que les modèles iMac G3 d’Apple de 1999.
Permettre à l’explorateur martien de rouler plus vite et de minimiser l’usure de ses roues
Pourquoi la NASA a-t-elle utilisé des puces aussi anciennes et lentes ? La réponse est qu’il était plus facile de les utiliser dans du matériel conçu pour résister aux rayons cosmiques. Les puces sont dotées de deux gigaoctets de mémoire flash, de 256 mégaoctets de mémoire vive et de 256 kilooctets de mémoire morte programmable effaçable (EPROM).
Comme la plupart des gens, vous avez probablement mis à jour votre PC au moins trois fois depuis 2012. Mais c’est un luxe que la NASA n’a pas. Après tout, il n’y a pas de réparateurs de PC dans l’espace.
C’est pourquoi il a fallu des années pour installer sur Curiosity une mise à jour logicielle révolutionnaire. De quoi permettre à l’explorateur martien de rouler plus vite et de minimiser l’usure de ses roues.
La mise à jour comporte environ 180 changements
La mise à jour, qui comporte environ 180 changements, a nécessité une brève interruption des opérations scientifiques et d’imagerie de Curiosity entre le 3 et le 7 avril. Ce correctif est de petite taille : un peu moins de 22 Mo. Néanmoins, il s’agit d’un remplacement complet de l’ancien système d’exploitation et la mise à jour a été téléchargée en 51 fichiers.
Le téléchargement du correctif a été lent. À sa vitesse maximale, Curiosity peut télécharger à 256 Kbps. Pour situer le contexte, vous n’avez probablement pas vu de vitesses aussi lentes depuis la dernière fois que vous avez utilisé un modem. En l’occurrence, le téléchargement a duré 10 jours. L’installation proprement dite a pris quatre jours en avril.
Ensuite, une fois que tout a été vérifié, Curiosity était enfin prêt à utiliser son nouveau système d’exploitation. Son ancien système d’exploitation avait été stocké en mémoire, de sorte que si quelque chose avait mal tourné, il n’aurait pas fallu des jours pour le redémarrer.
« Réfléchir en conduisant »
Ce déploiement est une réussite importante. Le correctif est prévu depuis 2016, date de la dernière révision du logiciel de Curiosity. Kathya Zamora-Garcia, responsable du projet Curiosity au Jet Propulsion Laboratory (JPL), a expliqué l’ampleur de la mise à jour : « Le logiciel de vol est essentiel à notre mission, c’est donc une grande affaire pour notre équipe. »
Le correctif apporte toute une série d’améliorations, allant d’ajustements mineurs dans la communication à un code informatique plus efficace.
La plus grande différence entre l’ancienne version du logiciel et la nouvelle est que cette mise à jour permet à Curiosity de « réfléchir en conduisant » plus efficacement, ce qui est similaire à son homologue plus jeune, Perseverance. La version améliorée de Curiosity peut désormais traiter les images plus rapidement, ce qui lui permet de passer plus de temps en mouvement.
Expérience de conduite plus rationnelle
Jonathan Denison, du JPL, chef de l’équipe des opérations techniques de Curiosity, a expliqué que même si le rover n’atteindra pas la vitesse de Perseverance, il y a un avantage en termes de performances : « Le fait de passer moins de temps au ralenti entre les segments d’entraînement signifie également que nous consommons moins d’énergie chaque jour ». Il a ajouté que le rover, âgé de près de 11 ans, continue d’adopter des stratégies innovantes afin de maximiser l’énergie disponible pour les activités scientifiques.
La mise à jour aborde également la question de l’usure des roues, apparue pour la première fois en 2013. Le nouveau logiciel introduit deux commandes de mobilité qui minimisent la quantité de direction nécessaire, accélérant la progression du rover et réduisant l’usure de ses roues.
Cette avancée permet aux opérateurs humains de Curiosity de bénéficier d’une expérience de conduite plus rationnelle. Il s’agit d’un changement important, car Curiosity devait auparavant s’arrêter pendant de longues minutes entre les segments de conduite. Denison a expliqué ce que signifie cette expérience rationalisée : « Curiosity ne pourra pas conduire aussi rapidement que Persévérance, mais au lieu de s’arrêter pendant une minute entière après un segment de conduite, nous ne nous arrêterons que pendant un instant.
Bien sûr, la plus grande nouvelle est que le correctif a réussi. Personne n’a envie de dépanner un écran bleu de la mort à 143 millions de kilomètres de la Terre. Denison a exprimé son soulagement et sa satisfaction quant au succès de la mise à jour logicielle, admettant que « l’idée d’appuyer sur le bouton d’installation pour installer le correctif n’a pas été facile » : « L’idée d’appuyer sur le bouton d’installation était un peu effrayante. Malgré tous nos tests, nous ne savons jamais exactement ce qui va se passer tant que le logiciel n’est pas installé ».
Source : « ZDNet.com »
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/fr_FR/all.js#appId=243265768935&xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));
Cliquez ici pour lire l’article depuis sa source.