Στις 20 Ιουλίου 1969, στις 4 μ.μ, η ανθρωπότητα ήταν μόλις λίγα λεπτά μακριά από την προσγείωση στην Σελήνη. Αλλά πριν οι αστροναύτες αρχίσουν την τελική τους κατάβαση, άρχισε να χτυπά ο συναγερμός. Κάτι υπερφόρτωνε τον υπολογιστή και απειλούσε να διακόψει την προσγείωση.
At roughly 4pm on July 20, 1969, mankind was just minutes away from landing on the surface of the moon. But before the astronauts began their final descent, an emergency alarm lit up. Something was overloading the computer, and threatened to abort the landing.
Πίσω στη Γη, η Μάργκαρετ Χάμιλτον κρατούσε την ανάσα της. Ήταν υπεύθυνη στο τμήμα σχεδιασμού του πρωτοποριακού λογισμικού της πτήσης και έτσι ήξερε ότι η αποστολή αυτή δεν είχε περιθώρια για λάθη. Αλλά η φύση αυτού του σφάλματος της τελευταίας στιγμής θα αποδείκνυε σύντομα ότι το λογισμικό της δούλευε ακριβώς όπως είχε προγραμματιστεί.
Back on Earth, Margaret Hamilton held her breath. She'd led the team developing the pioneering in-flight software, so she knew this mission had no room for error. But the nature of this last-second emergency would soon prove her software was working exactly as planned.
Γεννημένη 33 χρόνια πριν στο Παολί της Ιντιάνα, η Χάμιλτον ήταν από πάντα φιλοπερίεργη. Στο κολέγιο σπούδασε μαθηματικά και φιλοσοφία, πριν την ανάληψη ερευνητικής θέσης στο Ινστιτούτο Τεχνολογίας της Μασαχουσέτης, ώστε να πληρώσει για το μεταπτυχιακό. Εκεί ήρθε σε επαφή με τον πρώτο της υπολογιστή ενώ κατασκεύαζε λογισμικό για την υποστήριξη της έρευνας στο νέο πεδίο της θεωρίας του χάους.
Born 33 years earlier in Paoli, Indiana, Hamilton had always been inquisitive. In college, she studied mathematics and philosophy, before taking a research position at the Massachusetts Institute of Technology to pay for grad school. Here, she encountered her first computer while developing software to support research into the new field of chaos theory.
Στη συνέχεια, στο εργαστήριο Λίνκολν του MIT, η Χάμιλτον ανέπτυξε λογισμικό για το πρώτο σύστημα αεροπορικής άμυνας της Αμερικής για την αναζήτηση εχθρικών αεροσκαφών. Αλλά όταν άκουσε ότι ο διάσημος μηχανικός Τσαρλς Ντρέιπερ αναζητούσε βοήθεια για να στείλει τον άνθρωπο στη Σελήνη, αμέσως προσχώρησε στην ομάδα του.
Next at MIT's Lincoln Laboratory, Hamilton developed software for America’s first air defense system to search for enemy aircraft. But when she heard that renowned engineer Charles Draper was looking for help sending mankind to the moon, she immediately joined his team.
Η NASA κατέφυγε στον Ντρέιπερ και την ομάδα του με πάνω από 400 μηχανικούς για να εφεύρει τον πρώτο μικρό ψηφιακό υπολογιστή πτήσης, τον Υπολογιστή Καθοδήγησης «Apollo». Χρησιμοποιώντας δεδομένα από αστροναύτες, αυτή η συσκευή θα ήταν υπεύθυνη για την καθοδήγηση, την πλοήγηση και τον έλεγχο του διαστημικού σκάφους. Σε μια εποχή που αναξιόπιστοι υπολογιστές είχαν το μέγεθος δωματίων, ο ΥΚΑ έπρεπε να λειτουργεί χωρίς λάθη και να χωράει σε ένα κυβικό πόδι.
NASA looked to Draper and his group of over 400 engineers to invent the first compact digital flight computer, the Apollo Guidance Computer. Using input from astronauts, this device would be responsible for guiding, navigating and controlling the spacecraft. At a time when unreliable computers filled entire rooms, the AGC needed to operate without any errors, and fit in one cubic foot of space.
Ο Ντρέιπερ χώρισε το εργαστήριο σε δύο ομάδες, μία για τον σχεδιασμό της συσκευής και μία για την ανάπτυξη λογισμικού. Η Χάμιλτον διηύθυνε την ομάδα που ανέπτυξε το λογισμικό πτήσης, για τους Διοικητικούς Θαλάμους αλλά και για τις σεληνακάτους. Η δουλειά αυτή, για την οποία επινόησε τον όρο «software engineering», εμπεριείχε απίστευτα μεγάλα ρίσκα. Ανθρώπινες ζωές βρίσκονταν σε κίνδυνο, έτσι το πρόγραμμα έπρεπε να είναι τέλειο. Το λογισμικό της Μάργκαρετ έπρεπε να ανιχνεύει γρήγορα απροσδόκητα σφάλματα και να τα διορθώνει σε πραγματικό χρόνο.
Draper divided the lab into two teams, one for designing hardware and one for developing software. Hamilton led the team that built the on-board flight software for both the Command and Lunar Modules. This work, for which she coined the term “software engineering," was incredibly high stakes. Human lives were on the line, so every program had to be perfect. Margaret’s software needed to quickly detect unexpected errors and recover from them in real time.
Αλλά αυτό το είδος συμβατού προγράμματος ήταν δύσκολο να υλοποιηθεί, δεδομένου ότι το υπάρχον λογισμικό επεξεργαζόταν μόνο εντολές με προκαθορισμένη σειρά. Για να λύσει αυτό το πρόβλημα, η Μάργκαρετ σχεδίασε το πρόγραμμα ώστε να είναι «ασύγχρονο», δηλαδή οι πιο σημαντικές διεργασίες θα διέκοπταν τις λιγότερο σημαντικές. Η ομάδα της ανέθεσε σε κάθε διεργασία έναν μοναδικό αριθμό προτεραιότητας, για να εξασφαλιστεί ότι κάθε διεργασία εκτελούταν με τη σωστή σειρά και στο σωστό χρόνο - ανεξάρτητα από τυχόν εκπλήξεις.
But this kind of adaptable program was difficult to build, since early software could only process jobs in a predetermined order. To solve this problem, Margaret designed her program to be “asynchronous,” meaning the software's more important jobs would interrupt less important ones. Her team assigned every task a unique priority to ensure that each job occurred in the correct order and at the right time— regardless of any surprises.
Μετά από αυτή την ανακάλυψη, η Μάργκαρετ συνειδητοποίησε ότι το λογισμικό της θα μπορούσε να βοηθήσει τους αστροναύτες να εργαστούν και σε ένα ασύγχρονο περιβάλλον. Σχεδίασε Θύρες Προτεραιότητας, που θα διέκοπταν τα τακτικά καθήκοντα του αστροναύτη, για να προειδοποιούν για επείγοντα συμβάντα. Ο αστροναύτης θα επικοινωνούσε μετά με τη Μονάδα Ελέγχου, για να καθοριστεί η καλύτερη δυνατή πορεία. Αυτό σήμανε την πρώτη φορά που λογισμικό πτήσης επικοινωνούσε άμεσα -- και ασύγχρονα -- με έναν πιλότο.
After this breakthrough, Margaret realized her software could help the astronauts work in an asynchronous environment as well. She designed Priority Displays that would interrupt astronaut’s regularly scheduled tasks to warn them of emergencies. The astronaut could then communicate with Mission Control to determine the best path forward. This marked the first time flight software communicated directly— and asynchronously— with a pilot.
Ήταν αυτοί οι μηχανισμοί ασφαλείας που πυροδότησαν τους συναγερμούς λίγο πριν την προσσελήνωση. Ο Μπαζ Άλντριν συνειδητοποίησε γρήγορα το λάθος του -- είχε ακούσια αναποδογυρίσει τον διακόπτη του ραντάρ για την επιστροφή. Αυτό το ραντάρ θα ήταν απαραίτητο στο ταξίδι τους πίσω στην Γη, αλλά εδώ κατανάλωνε υπολογιστικούς πόρους ζωτικής σημασίας. Ευτυχώς, ο Υπολογιστής Κατεύθυνσης «Apollo» ήταν ικανός να το διαχειριστεί. Κατά τη διάρκεια της υπερφόρτωσης, τα προγράμματα επανεκκίνησης λογισμικού επέτρεψαν μόνο την επεξεργασία εργασιών υψηλής προτεραιότητας -- όπως των αναγκαίων για την προσγείωση προγραμμάτων. Οι Θύρες Προτεραιότητας έδωσαν στους αστροναύτες μια επιλογή -- να προσσεληνωθούν ή όχι. Μέσα σε λίγα λεπτά, η Μονάδα Ελέγχου έδωσε την εντολή.
It was these fail safes that triggered the alarms just before the lunar landing. Buzz Aldrin quickly realized his mistake— he’d inadvertently flipped the rendezvous radar switch. This radar would be essential on their journey home, but here it was using up vital computational resources. Fortunately, the Apollo Guidance Computer was well equipped to manage this. During the overload, the software restart programs allowed only the highest priority jobs to be processed— including the programs necessary for landing. The Priority Displays gave the astronauts a choice— to land or not to land. With minutes to spare, Mission Control gave the order.
Η προσγείωση του Apollo 11 οφειλόταν στο ότι οι αστροναύτες, η Μονάδα Ελέγχου, το λογισμικό και ο εξοπλισμός συνεργάστηκαν ως ολοκληρωμένο σύστημα. Η συμβολή της Χάμιλτον ήταν αναγκαία για το έργο μηχανικών και επιστημόνων, οι οποίοι είχαν εμπνευστεί από τον στόχο του Πρόεδρου Τζον Φ. Κέννεντυ να φτάσει στη Σελήνη. Αλλά η συνεισφορά της ήταν σωτήρια πέρα από το Apollo 11- δεν βρέθηκαν ποτέ σφάλματα στο λογισμικό επανδρωμένων αποστολών του Apollo.
The Apollo 11 landing was about the astronauts, Mission Control, software and hardware all working together as an integrated system of systems. Hamilton’s contributions were essential to the work of engineers and scientists inspired by President John F. Kennedy’s goal to reach the Moon. And her life-saving work went far beyond Apollo 11— no bugs were ever found in the in-flight software for any crewed Apollo missions.
Μετά την εργασία της στο Apollo, η Χάμιλτον ίδρυσε μια εταιρεία που χρησιμοποιεί τη μοναδική γλώσσα των καθολικών συστημάτων για να φτιάξει πατέντες για συστήματα και λογισμικό. Το 2003, η NASA τίμησε τα επιτεύγματά της με το μεγαλύτερο χρηματικό βραβείο που δόθηκε ποτέ σε ιδιώτη. Και 47 χρόνια αφού το λογισμικό της πρώτο καθοδήγησε αστροναύτες στη Σελήνη, απονεμήθηκε στη Χάμιλτον το Προεδρικό Μετάλλιο της Ελευθερίας, επειδή άλλαξε τον τρόπο που σκεφτόμαστε για την τεχνολογία.
After her work on Apollo, Hamilton founded a company that uses its unique universal systems language to create breakthroughs for systems and software. In 2003, NASA honored her achievements with the largest financial award they’d ever given to an individual. And 47 years after her software first guided astronauts to the moon, Hamilton was awarded the Presidential Medal of Freedom for changing the way we think about technology.