spazio e scienza

Apollo 11: accessibile a tutti il codice di volo della missione che portò l’Uomo sulla Luna

codice di volo Apollo 11

Codice di volo Apollo 11 – Il programma Apollo fu un programma spaziale americano che portò allo sbarco dei primi uomini sulla Luna. Concepito durante la presidenza di Dwight Eisenhower e condotto dalla NASA, Apollo iniziò veramente dopo che il presidente John Kennedy dichiarò, durante una sessione congiunta al Congresso avvenuta il 25 maggio 1961, obiettivo nazionale il far “atterrare un uomo sulla Luna” entro la fine del decennio.

Questo obiettivo fu raggiunto durante la missione Apollo 11 quando, il 20 luglio 1969, gli astronauti Neil Armstrong e Buzz Aldrin sbarcarono sulla Luna, mentre Michael Collins rimase in orbita lunare. Apollo 11 fu seguita da ulteriori sei missioni, l’ultima nel dicembre 1972, che portarono un totale di dodici uomini a camminare sul nostro “satellite naturale”. Al 2016 questi sono stati gli unici uomini a mettere piede su un altro corpo celeste.

https://youtu.be/3-n4PfF3Cfg

Il programma Apollo ha contribuito notevolmente anche allo sviluppo dell’informatica: i software di navigazione richiesero nuovi linguaggi di programmazione e algoritmi. Inoltre, nell’ambito del progetto fu avviato l’uso di circuiti integrati: durante lo sviluppo dell’Apollo Guidance Computer il MIT ne ha utilizzato circa il 60% della disponibilità mondiale.

codice di volo Apollo 11

Apollo Guidance Computer


La composizione dell’Apollo Guidance Computer

L’Apollo Guidance Computer (AGC) era il computer di bordo del Programma Apollo della NASA utilizzato, oltre che nel Modulo di Comando, anche all’interno del LEM, Lunar Excursion Module, per le manovre di allunaggio e di decollo dal suolo lunare.

L’AGC fu progettato al MIT Instrumentation Laboratory sotto la guida di Charles Stark Draper, con progetto dell’hardware condotto da Eldon C. Hall. I primi sviluppi architetturali furono di J.H. Laning Jr., Albert Hopkins, Ramon Alonso e Hugh Blair-Smith. L’hardware per il volo fu costruito dalla Raytheon.

Era basato su una unità di calcolo da 2 MHz di velocità di clock, di 2 Kwords di memoria RAM e di una trentina abbondante di Kwords di memoria ROM. Quest’ultima conteneva, principalmente, dati e programmi.

L’AGC era multitasking, essendo in grado di eseguire fino a 8 programmi contemporaneamente.

codice di volo Apollo 11

Interfaccia Apollo Guidance Computer

Fu il primo computer ad utilizzare circuiti integrati: nella sua prima versione utilizzava 4.100 chip di porte logiche NOR. Nella seconda versione, che utilizzava due porte logiche NOR all’interno di ogni integrato, il numero complessivo di chip fu ridotto a 2.800.

Tutti questi integrati erano tra loro interconnessi con un sistema wire-wrapping, ovvero a filo, che garantiva un collegamento migliore rispetto alle saldature su circuito stampato.

Le RAM e le ROM dell’AGC non erano basate su circuiti integrati, ma erano memorie a nuclei di ferrite: per ogni bit di informazione era necessario magnetizzare (o smagnetizzare) un piccolo anello calamitato, posto all’intersezione delle righe e delle colonne della matrice stessa di memoria; le righe e le colonne della matrice, erano costituite da sottilissimi cavi elettrici per la memorizzazione / cancellazione dell’informazione, che consentivano inoltre di leggere l’informazione memorizzata. [fonte: Wikipedia]


Il codice di volo Apollo 11: un pezzo di “archeologia” informatica

Oggi, dopo quasi 60 anni dallo sviluppo, il codice che controllava il software di volo della missione Apollo 11 è stato caricato sul famoso sito per programmatori GitHub. Il codice creato dal MIT e divenuto open source, è ora consultabile da specialisti del settore e non.

Era stato reso disponibile per la prima volta nel 2003 grazie alla trascrizione del ricercatore Ron Burkey del documento reso pubblico dal MIT. Adesso Chris Garry, un ex dipendente della Nasa, ha raccolto le migliaia di pagine di codice e integrato le parti meno leggibili, per poi diffonderle su una delle più note piattaforme online per i programmatori. Il codice è scritto in un linguaggio di programmazione ‘Assembly‘. Funzionava su computer infinitamente meno potenti di qualsiasi smartphone di oggi.

E’ un pezzo di storia – ha commentato Alessandro Mei, del dipartimento di Informatica della Sapienza di Roma – nonchè un reperto di archeologia informatica che possiamo definire di artigianato, possibile grazie alla maestria di quelle persone“.

Apollo Guidance Computer (1)

Tra le citazioni “quella che preferisco è I HOPE, HOPE, HOPE – ha aggiunto Mei – credo proprio fosse uno dei passaggi che il programmatore temeva potesse dare problemi. Commenti come questi – ha spiegato – si trovano ovunque, sia nei lavori dei miei studenti che in software come Android, e rappresentano da un lato la parte creativa dei programmatori, dall’altro sono anche un modo per lasciare un loro segno, una sorta di firma personale“.

Apollo Guidance Computer (2)

Tra i messaggi nascosti più buffi trovati al suo interno – brevi linee di chiosa ai comandi – c’è un BURN_BABY_BURN–MASTER_IGNITION_ROUTINE, ispirato a una frase recitata da un popolare conduttore radio degli anni ’60 quando lanciava i dischi del momento. E ancora, scorrendo le righe di codice, spuntano numerose easter eggs, saluti, riferimenti a giochi elettronici, messaggi per i colleghi e persino una citazione dall’Enrico VI di William Shakespeare e un rimando, alla riga 666, a un numero “mysterioso”.