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.
همان وقت روی زمین، «مارگارت همیلتون» نفسش را در سینه حبس کرده بود. او گروهی را هدایت میکرد که پیشگام در توسعه نرمافزار داخل-پرواز بودند، پس میدانست که در این مأموریت جایی برای خطا نیست. اما نوع این اعلامخطر که در آخرین لحظات رخ داد بهسرعت روشن کرد که نرمافزارش دقیقاً طبق برنامه عمل میکرد.
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.
بعد در آزمایشگاه لینکلن دانشگاه امآیتی، «همیلتون» برای اولین سیستمِ دفاع هوایی آمریکا نرمافزاری را برای جستجوی هواپیماهای دشمن نوشت. اما وقتی شنید که مهندس مشهوری به نام «چارلز دارپر» به دنبالِ کمک برای فرستادن انسان به ماه است، بدون درنگ به گروهش ملحق شد.
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.
بعد از این پیشرفت مهم، «مارگارت» متوجه شد که نرمافزار میتواند به فضانوردان هم کمک کند تا در یک محیط غیر همزمان کار کنند. او نمایشگرهای اولویتبندی طراحی کرد که در فعالیتهای از پیش برنامهریزی شدهِ فضانوردان وقفه ایجاد میکرد تا وضعیتهای اضطراری را خبر دهد. فضانوردان بعداً میتوانستد با مرکز کنترل تماس بگیرند تا بهترین مسیر ادامه را انتخاب کنند. و این اولین باری بود که نرمافزار پرواز مستقیماً — و غیر همزمان — با فضانورد ارتباط برقرار میکرد.
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.
و همین حفاظتها بود که منجر به فعال شدن هشدار خطر، درست قبل از فرود روی ماه شد. «باز آلدرین» سریعاً متوجه اشتباهش شد — او تصادفاً کلید راداری بازگشت به قرارگاه را فشرده بود. این رادار وسیله مهمی در سفرِ برگشت آنها به زمین بود، اما از منابع مهمی در پردازش رایانه استفاده میکرد. خوشبختانه، رایانه هدایت آپولو مجهز به راهکاری برای این هم بود. در زمان بار اضافه، نرمافزار برنامهها را دوباره شروع میکرد و تنها به پر اولویتترین کارها اجازه اجرا میداد — که شامل برنامههای لازم برای فرود هم میشد. نمایشگرهای اولویت به فضانوردان امکان این انتخاب را میدادند — که فرود بیایند یا خیر. تنها دقایقی باقی مانده بود، که مرکز عملیات دستور فرود را داد.
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.
فرود آپولو ۱۱ از همکاری فضانوردان، مرکز عملیات، نرمافزار و سختافزار همگی با هم و بهصورت یک سیستم مجتمع به دست میآمد. همکاری «همیلتون» موضوعی اساسی برای کار مهندسین و دانشمندان بود که از رئیسجمهور «جان اف کِندی» در هدف رسیدن به ماه الهام گرفته شده بود. و فعالیتهای نجاتبخش او از آپولو ۱۱ هم فراتر رفته است — هیچوقت خطایی در برنامهنویسی نرمافزار مأموریتهای همراه خدمه آپولو پیدا نشد.
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.
پس از همکاریاش در آپولو، «همیلتون» شرکتی را بنیان گذاشت که از زبان منحصربهفرد عمومی او برای ایجاد تحول در سیستمها و نرمافزار استفاده کند. در ۲۰۰۳، ناسا از دستاوردهای او با بزرگترین جایزه مالی که به یک شخص داده شده تقدیر کرد. و ۴۷ سال پسازآنکه نرمافزار او اولین فضانوردان را به ماه راهنمایی کرد، «همیلتون» مفتخر به دریافتِ مدال ریاست جمهوری آزادی برای تغییر نگرش ما به فناوری شد.