Ay’a gitmeyi sağlayan kod: BURN BABY BURN!

0
5283
apollo11 01 moon
apollo11 01 moon

Ay’a yeniden insan gönderme amacıyla geliştirilen Space Launch System (SLS) roketinin QM-2 testi kısa bir süre önce gerçekleştirilmişti. Astronotlara Ay’a kadar ev görevi görecek Orion uzay kapsülü de 2014 sonunda başarıyla test edilmişti.

Günümüzde binlerce mühendisin emek gösterdiği milyarlarca dolarlık bütçeler ele alındığında, 1969’da gerçekleştirilen ilk insanlı Ay görevi olan Apollo 11’in ne kadar farklı bir yere sahip olduğunu daha iyi anlıyoruz. En son örnek, kılavuz bilgisayarında kullanılan kodlar.

Apollo 11 kumanda ve Ay modüllerinin kodları 2003’ten bu yana internetteydi. NASA’da eski bir çalışan olan Chris Garry ise 47 yıl önceki tarihi görevde kullanılan kılavuz bilgisayarı kodlarını geçtiğimiz hafta GitHub’a yükledi.

Kodlara bakıldığında, NASA’nın nazik dille döktürdüğü esprili satırlar dikkat çekiyor. Kaynak kodlarından bir tanesinin adı ise BURN_BABY_BURN-MASTER-IGNITION-ROUTINE.s.

apollo11_04

Kodların kısa hikayesi

Apollo 11’de kullanılan teknolojinin modern günümüzdeki bir USB belleği bile doldurmayacağını biliyor muydunuz?

Son derece basit bir teknoloji ile üç astronotu Dünya’nın uydusuna gönderen uzay aracının yazılımı da, dönemin en basit yazılım anlayışıyla hazırlandı.

MIT Instrumentation Laboratory, Apollo 11 programı için 1960’ların ortasında uçuş yazılımı geliştirmek istediğinde, gerekli teknoloji henüz mevcut değildi. Mühendisle bu nedenle Assembly programlama dilinin kendi versiyonunu üretti.

İnsanlar değil, bilgisayarlar tarafından kolayca anlaşılması için kullanılan Assembly, günümüzde anlaşılması oldukça zor bir programlama dili. MIT, Apollo Kılavuz Bilgisayarı (AGC) için Assembly ile binlerce satırlık kod hazırlamıştı.

Dönemin yazılım mühendisi ekibinin direktörü Margaret Hamilton’ın, yazılımın kodunu içeren dosyaların yanında çektirdiği fotoğraf, ortaya konan çalışmanın kısa özeti niteliğinde.

apollo11_01m

‘Hello there’

BURN_BABY_BURN’ün yanı sıra, AGC astronotlara birçok konuda yardımcı olacak birçok kaynak kodu içeriyor. Aşağıdaki örnek, kullanıcıyı nazik bir dille selamlarken komutlar hakkında bilgiler sunuyor:

apollo11_03

PINBALL_GAME_BUTTONS_AND_LIGHTS.s adını taşıyan kaynak kodu ise klavye ve görüntü sistemi için bilgiler sunuyor. Dosyada ilgi çeken bir kısımda, Shakespeare’den alıntı bile var:

apollo11_01pinball

LUNAR_LANDING_GUIDANCE_EQUATIONS.s adındaki dosyada ise programcının ‘umuyorum’ notu düştüğünü görüyoruz.

apollo11_02

Aynı dosyanın altında, astronota ‘lütfen aptal şeyi ayarla’ ifadesini kullanan bir komut da var. Kumanda ve Ay modulünün kodlarını deşifre eden Ron Burkey’e göre bu ifade, LR (iniş radarının) konumlanmasıyla ilgili.

apollo11_01

NASA’nın kendi yorumuyla hazırladığı AGC kodları, Reddit’teki bir okuyucunun ortaya çıkardığı üzere önceden belirlenmiş isim ve sıfatları belli operasyon komutları olarak kullanıyor. Örneğin 37 nolu sıfat ‘programı çalıştırmak’, 33 nolu isim ise ‘ateşleme vakti’ olarak kullanılmış.

Vallahi bravo.