Hennes kod fick människor till månen – och uppfann själva programvaran

Margaret Hamilton skulle egentligen inte uppfinna det moderna begreppet programvara eller landa människor på månen. Det var 1960, inte en tid då kvinnor uppmuntrades att söka sig till högt uppsatta tekniska arbeten. Hamilton, en 24-åring med en grundexamen i matematik, hade fått ett jobb som programmerare vid MIT, och planen var att hon skulle försörja sin man under hans treåriga studie på Harvard Law. Efter det skulle det vara hennes tur – hon ville ta en examen i matematik.

Men Apollo-rymdprogrammet kom. Och Hamilton stannade kvar i labbet för att leda en episk ingenjörskonst som skulle bidra till att förändra framtiden för vad som var mänskligt – och digitalt – möjligt.

Se mer

Som arbetande mamma på 1960-talet var Hamilton ovanlig, men som programmerare av rymdfarkoster var Hamilton rent av radikal. Hamilton tog med sig sin dotter Lauren till labbet på helger och kvällar. Medan 4-åriga Lauren sov på golvet i kontoret med utsikt över Charles River, programmerade hennes mamma och skapade rutiner som till slut skulle läggas till i Apollos kommandomodul.

”Folk brukade säga till mig: ’Hur kan du lämna din dotter? Hur kan du göra det här?” Hamilton minns. Men hon älskade den mystiska nyheten i sitt arbete. Hon gillade kamratskapet – drinkarna efter jobbet på MIT:s fakultetsklubb, nördskämten, som att säga att hon ”kommer att grenar vänster minus” i korridoren. Utomstående hade ingen aning. Men på labbet, säger hon, ”var jag en av killarna”.

Då, liksom nu, dominerade ”killarna” teknik och ingenjörskonst. Liksom kvinnliga kodare i dagens mångfaldsutmanade teknikbransch var Hamilton en utbrytare. Det kanske förvånar dagens mjukvarutillverkare att en av grundarna av deras pojkklubb faktiskt var en mamma – och det borde få dem att fundera på varför ojämlikheten mellan könen under Mad Men-eran består än i dag.

”När jag började med det var det ingen som visste vad det var vi höll på med. Det var som vilda västern. – Margaret Hamilton

När Hamiltons karriär kom igång stod programvaruvärlden på gränsen till ett gigantiskt språng, tack vare Apolloprogrammet som lanserades av John F. Kennedy 1961. Vid MIT Instrumentation Lab där Hamilton arbetade uppfann hon och hennes kollegor centrala idéer inom datorprogrammering när de skrev koden till världens första bärbara dator. Hon blev expert på systemprogrammering och vann viktiga tekniska argument. ”När jag började med det visste ingen vad det var vi höll på med. Det var som vilda västern. Det fanns ingen kurs i det. De lärde inte ut det”, säger Hamilton.

Detta var ett decennium före Microsoft och nästan 50 år innan Marc Andreessen skulle konstatera att programvara faktiskt ”äter upp världen”. Världen tänkte inte alls så mycket på mjukvara under de tidiga Apollo-dagarna. I det ursprungliga dokumentet med de tekniska kraven för Apollo-uppdraget nämndes inte ens ordet programvara, skriver David Mindell, professor i flygteknik vid MIT, i sin bok Digital Apollo. ”Mjukvara fanns inte med i schemat och inte heller i budgeten.” Inte till en början i alla fall.

mhh-apollo
Margaret Hamilton inuti en modell av Apollos kommandomodul.

MIT

Margaret-Hamilton
Hamilton står bredvid listor över källkoden till Apollo Guidance Computer (AGC).

NASA

mhh-and-an-fsq-7.ppt
Hamilton tillsammans med en av sina tidigare kollegor den 19 april 1962. Hamilton utvecklade programvara för den första AN/FSQ-7-datorn vid Lincoln Labs. Hamiltons programvara var ett övervakningsprogram för radarregistrering som användes för att upptäcka potentiella fientliga flygplan.

Med vänlig hälsning Margaret Hamilton

mhh-lauren-2
Hamilton och hennes dotter Lauren.

Courtesy Margaret Hamilton

Presentation1
Hamilton, längst till vänster, sitter tillsammans med några av sina medarbetare i Scama-rummet på MIT, samtidigt som hon stödde Apollo 8-uppdraget.

Med vänlighet Margaret Hamilton

raytheon-lab
En Raytheon-arbetare väver koppartrådar genom magnetiska ringar.

Jack Poundstone/Raytheon

raytheon-lab1
”Little Old Ladies” från Raytheon.

Jack Poundstone/Raytheon

raytheon-koppar
Närbild av Raytheons koppartrådar.

Jack Poundstone/Raytheon

Men allteftersom Apolloprojektet utvecklades började programvarans centrala roll för att genomföra uppdraget att bli tydlig. År 1965 blev Hamilton ansvarig för flygprogramvaran ombord på Apollo-datorerna. Det var en spännande tid och USA var beroende av det arbete hon utförde. Men ibland höll trycket Hamilton vaken på nätterna. En gång, efter en sen fest, skyndade hon sig tillbaka till datorlabbet för att rätta till en kod som hon plötsligt hade insett var felaktig. ”Jag föreställde mig alltid rubriker i tidningarna, och de skulle peka tillbaka till hur det hände, och det skulle peka tillbaka till mig.”

I mitten av 1968 arbetade mer än 400 personer med Apollos mjukvara, eftersom mjukvara var hur USA skulle vinna kapplöpningen till månen. Det visade sig naturligtvis att programvara skulle hjälpa världen att göra så mycket mer. Samtidigt som Hamilton och hennes kollegor programmerade Apollos rymdfarkoster kläckte de också det som skulle komma att bli en industri på 400 miljarder dollar.

För Hamilton innebar programmeringen att hon skulle stansa hål i staplar av hålkort, som skulle bearbetas över natten i omgångar på en gigantisk Honeywell stordator som simulerade Apollos landningsfarkosters arbete. ”Vi var tvungna att simulera allting innan det flög”, minns Hamilton. När koden var solid skickades den till en närliggande Raytheon-anläggning där en grupp kvinnor, erfarna sömmerskor som inom Apolloprogrammet var kända som ”Little Old Ladies”, trådde koppartrådar genom magnetiska ringar (en tråd som går genom en kärna var en 1; en tråd som går runt kärnan var en 0). Glöm RAM eller diskettstationer; på Apollo var minnet bokstavligen fast kopplat och nästan oförstörbart.

Apollo-flygningar hade två nästan identiska maskiner: en som användes i månmodulen – den Eagle som landade på månen – och en som användes i kommandomodulen som förde astronauterna till och från jorden. Dessa 70 pund tunga Apollo-datorer var bärbara datorer som inte liknade någon annan. De utformades av MIT-ingenjörer som Hal Laning och Hamiltons chef Dick Batton och var en av de första viktiga datorerna som använde integrerade kretsar i stället för transistorer. Som Mindell berättar var den det första datoriserade navigationssystemet ombord som utformades för att kunna användas av människor men med ”fly-by-wire”-autopilotteknik – en föregångare till de datoriserade navigationssystem som nu är standard på jetplan.

Systemet lagrade mer än 12 000 ”ord” i sitt permanenta minne – de koppar ”rep” som Raytheon-arbetarna trådade in – och hade 1 024 ord i sitt tillfälliga, raderbara minne. ”Det var första gången som en viktig dator fanns i en rymdfarkost och fick ett stort ansvar för uppdraget”, säger Don Eyles, som arbetade med koden för månmodulen när han arbetade på MIT:s IL. ”Vi visade att det kunde göras. Vi gjorde det med vad som idag verkar vara en otroligt liten mängd minne och mycket långsam beräkningshastighet.” Utan den hade Neil Armstrong inte tagit sig till månen. Och utan den programvara som Hamilton, Eyles och MIT:s ingenjörsteam skrev skulle datorn ha varit en blindgångare.

Detta stod klart den 20 juli 1969, bara några minuter innan Apollo 11 landade på Sea of Tranquility. På grund av vad Apollos mjukvaruingenjör Don Eyles har kallat ett ”dokumentationsfel” började Apollodatorn spotta ut oroväckande felmeddelanden under denna kritiska fas av uppdraget. Men här var det de tekniska argument som Hamilton och andra vann som räddade dagen. Felmeddelandena dök upp på grund av att datorn överväldigades och fick i uppgift att göra en rad onödiga beräkningar när den i själva verket mest behövdes för att landa modulen på månens yta. I Houston visste ingenjörerna att tack vare Apollos unika asynkrona bearbetning skulle datorn fokusera på uppgiften – att landa Eagle på Sea of Tranquility. När programvaran insåg att den inte hade tillräckligt med utrymme för att utföra alla de funktioner den skulle utföra, gick den igenom sin felupptäcktsprocess och fokuserade på den högst prioriterade uppgiften, säger Hamilton.

”Det skulle aldrig hända”

En dag lekte Lauren med MIT:s kommandomodulssimulatorns display- och tangentbordsenhet, som fick smeknamnet DSKY (dis-key). När hon lekte med tangentbordet dök ett felmeddelande upp. Lauren hade kraschat simulatorn genom att på något sätt starta ett program som kallas P01 medan simulatorn var mitt i flygningen. Det fanns ingen anledning till att en astronaut någonsin skulle göra detta, men Hamilton ville ändå lägga till kod för att förhindra kraschen. Den idén avvisades av NASA. ”Vi hade fått höra många gånger att astronauter inte skulle göra några misstag”, säger hon. ”De var utbildade för att vara perfekta.” Så i stället skapade Hamilton en programanteckning – ett tillägg till programmets dokumentation som skulle vara tillgänglig för NASA:s ingenjörer och astronauterna: ”Välj inte P01 under flygning”, stod det. Hamilton ville lägga till felkontrollkod till Apollo-systemet som skulle förhindra att detta skulle ställa till det för systemen. Men det verkade överdrivet för hennes högre chefer. ”Alla sa: ’Det skulle aldrig hända'”, minns Hamilton.

Men det hände. Runt jul 1968 – fem dagar efter den historiska flygningen med Apollo 8, som förde astronauter till månen för den första bemannade omloppsbanan någonsin – valde astronauten Jim Lovell oavsiktligt P01 under flygningen. Hamilton befann sig i konferensrummet på andra våningen i instrumenteringslaboratoriet när samtalet kom från Houston. Lanseringen av P01-programmet hade utplånat alla navigeringsdata som Lovell hade samlat in. Det var ett problem. Utan dessa data skulle Apollo-datorn inte kunna räkna ut hur astronauterna skulle ta sig hem. Hamilton och MIT:s kodare måste komma på en lösning, och den måste vara perfekt. Efter att ha tillbringat nio timmar med att gå igenom den 8-tums tjocka programlista som låg på bordet framför dem hade de en plan. Houston skulle ladda upp nya navigeringsdata. Allt skulle bli bra. Tack vare Hamilton – och Lauren – kom Apollo-astronauterna hem.

Också tack vare Hamilton och det arbete hon ledde förändrades föreställningarna om vad mänskligheten kunde göra och vara, inte bara bortom stratosfären utan också här på jorden. Mjukvaruteknik, ett koncept som Hamilton var pionjär inom, har funnit sin väg från månlandningen till nästan varje mänsklig verksamhet. På 1970-talet hade Hamilton lämnat NASA och Apolloprogrammet. Hon fortsatte att grunda och leda flera mjukvaruföretag. I dag ligger hennes företag, Hamilton Technologies, bara några kvarter från MIT, där hennes karriär började – ett centrum för kodrevolutionen som fortfarande tittar mot stjärnorna.

Du kanske också gillar:

Lämna en kommentar