В около 4 часа следобед на 20 юли 1969
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.
След това в лабораторията Линкълн на университета Хамилтън разработила софтуер за първата американска система за въздушна отбрана, която търсела вражески самолети. Но когато чула, че извстният инженер Чарлс Дрейпър търсел помощ, за да изпрати човек на Луната, тя веднага се присъединила към екипа му.
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.
НАСА се обърнала към Дрейпър и групата му от над 400 инженери за да създадът първият компактен дигитален бордови компютър, компютърът Аполо Гайдънс (AGC). Изплозвайки информация от астронавти, това устройство щяло да отговаря за насочването, навигацията и контрола на космическата совалка. По времето, когато ненадеждни компютри запълвали цяла стая, AGC трябвало да работи без никакви грешки и да се побере в място голямо един кубичен фут.
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.
Дрейпър разделил лабораторията на два екипа: един за проектиране на хардуера и един за разработване на софтуера. Хамилтън водела екипа, който направил бордовия полетен софтуер за командния и за лунния модули. Тази работа, за която тя създала термина "софтуерно инженерство," носела огромни рискове. Човешки животи зависели от нея, за това всяка програма трябвало да е перфектна. Софтуерът на Маргарет трябвало бързо да забелязва непредвидени грешки и да се справи с тях в реално време.
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.
Тези защити са провокирали алармите точно преди лунното кацане. Бъз Oлдрин бързо осъзнал грешката си - той без да иска натиснал копчето за радъра за скачване. Този радър щял да бъде ключов за полета им към къщи, но в този случай използвал важни изчислителни ресурси. За щастие навигационният компютър на Аполо бил добре пригоден да се справи с това. Заради претоварването, рестартиращите софтуера програми позволили само задачите с най-висок приоритет да бъдат извършени. Това включвало програмите необходими за кацане. Приоритетните дисплеи дали на астронавтите възможността да избират дали да кацнат или не. Имайки само минути на разположение, ЦУП издал заповедта.
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.
Кацането на Аполо 11 се осъществило, защото астронавтите, ЦУП, софтуерът и хардуерът работели заедно като интегрирана система от системи. Приносът на Хамилтън бил ключов за работата на инженерите и учените, които били вдъхновени от целта на президента Джон Кенеди да достигне Луната. Нейната животоспасяваща работа се разпространила далеч отвъд Аполо 11 - никога не намерили грешки в софтуера на някоя от пилотираните мисии на Аполо.
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.
След работата ѝ по Аполо, Хамълтън основала компания, която използва уникален универсален системен език, за да прави системни и софтуерни открития. През 2003 НАСА признава нейните постижения с най-голямата финансова награда, която някога е давана на един човек. И 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.