Ένα περίεργο hacking έγινε από την NASA στο διαστημόπλοιό Voyager 1 που έχει ένα πανάρχαιο υπολογιστή, καθώς ήταν ο μόνος τρόπος για να σταματήσει να στέλνει ασυναρτησίες στην Γη.
Το διαστημόπλοιο Voyager 1 και το δίδυμό του, το Voyager 2 (το οποίο επίσης παραμένει σε λειτουργία) εκτοξεύτηκαν πριν από σχεδόν 50 χρόνια, το 1977, για να περιηγηθούν και να εξερευνήσουν το ηλιακό μας σύστημα. Οι κατασκευαστές τους πιθανά δεν φανταζόντουσαν τι προβλήματα θα βγάλουν οι υπολογιστές τους μετά από μισό αιώνα ζωής.
Τα διαστημόπλοια τροφοδοτούνται με ρεύμα από ένα μικρό πυρηνικό σταθμό που έχει οξείδιο του Πλουτωνίου-238, το αποδίδει θερμότητα σε μία διμεταλλική θερμοηλεκτρική συσκευή που μετέτρεπει την θερμότητα σε ηλεκτρική ενέργεια για το διαστημόπλοιο.
Η αρχική ισχύς στο Voyager ήταν περίπου 470 W στα 30 VDC και το 1997 είχε πέσει σε περίπου 335 W. Καθώς η ισχύς συνεχίζει να μειώνεται, τα φορτία ισχύος στο διαστημόπλοιο πρέπει επίσης να μειωθούν και να πραγματοποιούνται όλο και πιο περιορισμένες πράξεις στους υπολογιστές.
Η αλήθεια είναι ότι και τα δύο διαστημόπλοια ξεπέρασαν κατά πολύ τις αρχικές τους αποστολές για επίσκεψη στον Δία και τον Κρόνο αντίστοιχα, καθώς το 2012 εισήλθαν στο εκτός του ηλιακού μας συστήματος διάστημα. Και οι επιστήμονες ούτε μπορούσαν να φανταστούν την απίστευτη ανάπτυξη της τεχνολογίας στους ηλεκτρονικούς υπολογιστές, τόσο πολύ που για τα vintage μηχανήματα των δύο Voyager να δυσκολεύονται σήμερα να βρουν τεχνικούς να τα επισκευάσουν.
Το πρόβλημα
Αλλά ας πάμε την ιστορία από την αρχή. Στις 14 Νοεμβρίου 2023, το διαστημόπλοιο της NASA, Voyager 1, άρχισε να στέλνει ασυναρτησίες πίσω στη Γη. Για πέντε μήνες, το διαστημικό σκάφος μετέδιδε άχρηστα δεδομένα, που έμοιαζαν με ήχο τηλεφωνικής κλήσης.
Τον Μάρτιο, οι μηχανικοί ανακάλυψαν την αιτία της επικοινωνίας: ένα κομμάτι δεδομένων είχε “κολλήσει μόνιμα” σε ένα από τα τσιπ που αποτελούν μέρος της ενσωματωμένης μνήμης του Voyager.
Το τσιπ μνήμης περιείχε γραμμές κώδικα που χρησιμοποιούσε το Υποσύστημα Δεδομένων Πτήσης (Flight Data Subsystem = FDS ), που είναι ένας από τους τρεις υπολογιστές του διαστημοπλοίου και αυτός που είναι υπεύθυνος για τη συλλογή και τη συσκευασία δεδομένων, πριν τα στείλει πίσω στη Γη.
Μικρή Μνήμη
Αλλά ακόμα και να ανακαλύψει κάποιος την βλάβη σε ένα τόσο παλιό σύστημα είναι μία πρόκληση. Δεκαετίες αφότου η τεχνολογία βγήκε από τη μόδα, το FDS εξακολουθεί να χρησιμοποιεί γλώσσα assembly και words των 16-bit .
Για να διαγνώσουν το πρόβλημα, οι μηχανικοί της NASA προσπάθησαν πρώτα να ενεργοποιήσουν και να απενεργοποιήσουν διαφορετικά όργανα. Όταν αυτό αποδείχθηκε ανεπιτυχές, ξεκίνησαν μια ανάγνωση της μνήμης του FDS.
Έτσι οι μηχανικοί βρήκαν σε ένα τσιπ ένα κολλημένο κομμάτι δεδομένων, σταθερό στην ίδια δυαδική τιμή. Έγινε σαφές ότι το τσιπ είχε ανεπανόρθωτη τοπική βλάβη, επομένως η ομάδα έπρεπε να εντοπίσει και να μετακινήσει τον επηρεαζόμενο κώδικα.
Ωστόσο, καμία τοποθεσία δεν ήταν αρκετά μεγάλη για να χωρέσει τα επιπλέον 256 bit, καθώς οι τρεις υπολογιστές του Voyager έχουν ο καθένας μόλις 69,63 kilobyte μνήμης.
Αλήθεια ξέρετε πόση μνήμη έχει το μηχάνημα σας με το οποίο βλέπετε τώρα αυτήν την σελίδα;
Για να ξεκινήσει η επίλυση του προβλήματος, η ομάδα αναζήτησε γωνίες της μνήμης του Voyager για να τοποθετήσει το τμήμα του κώδικα που θα επέτρεπε την αποστολή των δεδομένων, τα οποία περιλαμβάνουν πληροφορίες σχετικά με την κατάσταση των επιστημονικών οργάνων και του ίδιου του διαστημικού σκάφους.
Ένας τρόπος με τον οποίο οι μηχανικοί απελευθέρωσαν επιπλέον χώρο ήταν με τον εντοπισμό διαδικασιών που δεν χρησιμοποιούνται πλέον. Για παράδειγμα, το Voyager είχε προγραμματιστεί με διάφορους τρόπους αποστολής δεδομένων, δηλαδή τον ρυθμό με τον οποίο τα δεδομένα αποστέλλονται πίσω στη Γη, επειδή το διαστημόπλοιο μπορούσε να μεταδώσει δεδομένα πολύ πιο γρήγορα όταν ήταν πιο κοντά στη Γη.
Στον Δία, το διαστημόπλοιο μετέδωσε δεδομένα με ταχύτητα 115,2 kilobits ανά δευτερόλεπτο. Τώρα, αυτός ο ρυθμός έχει επιβραδυνθεί στα 40 bit ανά δευτερόλεπτο και έτσι οι ταχύτερες λειτουργίες μπορούν να αντικατασταθούν.
Ωστόσο, οι μηχανικοί έπρεπε να είναι προσεκτικοί για να διασφαλίσουν ότι δεν θα διαγράψουν τον κώδικα που χρησιμοποιείται από πολλαπλές λειτουργίες δεδομένων.
Έστειλαν εντολή μέσω του Deep Space Network στις 18 Απριλίου για να μεταφέρουν το επηρεασμένο τμήμα κώδικα σε άλλο μέρος της μνήμης του διαστημικού σκάφους, ελπίζοντας να διορθώσουν το σφάλμα στο αρχαϊκό σύστημα του υπολογιστή.
Περίπου 22,5 ώρες αργότερα, το σήμα ραδιοφώνου έφτασε στο Voyager και την επόμενη μέρα ήταν σαφές ότι η εντολή είχε λειτουργήσει. Το Voyager άρχισε να επιστρέφει ξανά χρήσιμα δεδομένα στις 20 Απριλίου.
Οι μηχανικοί της NASA κατάφεραν να διαγνώσουν και να επισκευάσουν το Voyager 1 από 24 δισεκατομμύρια χιλιόμετρα μακριά, και όλα αυτά ενώ εργάζονταν εντός των περιορισμών μίας vintage τεχνολογίας.
Η ομάδα πλέον εργάζεται για να μετακινήσει τον υπόλοιπο κώδικα που επηρεάζεται και να βρουν χώρο στη μνήμη. Θα πρέπει να πάρουν κάποιες βασικές αποφάσεις σχετικά με το τι θα αντικαταστήσουν και τι θα κρατήσουν.
Κατασκευάστηκε για να διαρκέσει
Η αιτία των κολλημένων δεδομένων είναι ένα μυστήριο, αλλά είναι πιθανό το τσιπ είτε να έχει φθαρεί με τα χρόνια ή να χτυπήθηκε από ένα εξαιρετικά ενεργητικό σωματίδιο από μια κοσμική ακτίνα.
Έχοντας εισέλθει στο εκτός ηλιακού συστήματος διάστημα, το Voyager είναι λουσμένο στις κοσμικές ακτίνες. Ευτυχώς, το διαστημόπλοιο κατασκευάστηκε για να αντέξει, με τα ηλεκτρονικά του εξαρτήματα να προστατεύονται από τη μεγάλη ποσότητα ακτινοβολίας που υπάρχει στον Δία. Και αυτό το προστατεύει τώρα και στο βαθύ διάστημα.
Όταν κατασκευάστηκε το Voyager για το 12χρονο ταξίδι στον Ουρανό και τον Ποσειδώνα ήταν ένας φαινομενικά αδύνατος στόχος για μια εκτόξευση του 1977. Η μακροζωία του Voyager είναι μια απόδειξη της μηχανικής του, η οποία ανταπεξήλθε σε πολλά απρόβλεπτα.
Η αποστολή περιλάμβανε επίσης αρκετές πρωτιές, για παράδειγμα, ως το πρώτο διαστημόπλοιο με υπολογιστές ικανούς να κρατούν δεδομένα προσωρινά χρησιμοποιώντας μνήμη CMOS.
Είναι σημαντικό για την εποχή, ότι ήταν επίσης η πρώτη αποστολή με επαναπρογραμματιζόμενο υπολογιστή. Το θεωρούμε δεδομένο τώρα, αλλά πριν από το Voyager, δεν ήταν δυνατή η προσαρμογή του λογισμικού κατά την πτήση. Αυτή η ικανότητα αποδείχθηκε απαραίτητη όταν η αποστολή επεκτάθηκε, καθώς προέκυπταν νέα προβλήματα.
Στο μέλλον, η ομάδα του Voyager αναμένει να αντιμετωπίσει πρόσθετα προβλήματα στο γερασμένο διαστημόπλοιο.