المعلوماتية > برمجيات

الكود البرمجي الذي أوصل أميركا الى القمر.. أصبح متاحاً

استمع على ساوندكلاود 🎧

عندما طُلِب من المبرمجين في معهد ماساتشوستس للتكنولوجيا MIT تطويرَ برمجياتِ الرحلة الفضائية أبولو 11 في منتصف الستينيات، لم تكن توجد لديهم التقنيات المناسبة لذلك، فكان عليهم بداية اختراع هذه التقنيات.

بدايةً أتوا بطريقةٍ جديدة لتخزين برامج الحاسب من خلال نوعٍ جديدٍ من ذواكر ROM تدعى Rope Memory، كما أوجدوا نسخةً جديدةً من لغة التجميع البرمجية Assembly. تُعتبر هذه اللغة غامضةً حتى بالنسبة للمبرمجين الحاليين -حيث أنها صعبة القراءة- ومصممةٌ لتكون سهلة القراءة للحاسب وليس للبشر. من أجل حاسبِ توجيهِ أبولو AGC، كتب مبرمجو MIT الآلاف من الأسطر البرمجية باستخدام هذه اللغة.

في الصورة التالية، تظهر مارغريت هاميلتون (هنا )، مديرة هندسة البرمجيات في ذلك المشروع، تقف بجانب كومة الأوراق التي تمثل البرمجيات التي تمت كتابتها.

إن الكود متاحٌ للعامة منذ فترة، حيث تمّ نشرُه عام 2003 من قبل الباحث التقني Ron Burkey، فقد قام بنسخهِ من الصور الممسوحة ضوئياً والتي نشرها معهد MIT، حيث قام بكتابتها سطراً سطراً.

يقول Burkey "لقد تم تصوير الصور من قِبَل طيارٍ يُدعى Gary Neff في كولورادو، وقام معهد MIT بنشرها (على شكل صور)، ولكن للأسف أدت العملية إلى بعض التشوهات في الكود المكتوب، حيث أصبح غيرَ مقروءٍ في بعضِ الأجزاء". وهنا جاء دور Burkey حيث قام ببناء الأجزاء غير الواضحة باستخدام خبرته الهندسية.

ويتابع قائلاً، أنّه عاد وحصل على بعض الصور الأصلية وتحقّقَ من الكود الذي قام بترميمه فوجده صحيحاً بنسبة 100%. وبالتالي وبعد كل هذه الجهود أصبح الكود متاحاً للباحثين أو حتى المبرمجيين العاديين الهواة.

وبالرغم من نجاح مشروع Burkey، ولكن بقي الكود غامضاً لبعض المبرمجين، وذلك حتى يوم 7 يوليو/تموز 2016 عندما قام Chris Garry المتدربُ السابق في وكالة ناسا برفعه على موقع(GitHub (هنا) كاملاً مع تعليقاته وشرحه. وخلال ساعات بدأ المبرمجون بفحصِ وتحليلِ البرنامج، والبحثِ ضمنه وخاصةً ضمن التعليقات والشرح التي كتبها المبرمجون الأصليون؛ ويحتوي الكود على شرحٍ باللغة الإنكليزية لكلّ الأسطر البرمجية، كما أن بعض التعليقات تحوي على نُكاتٍ معينة ومراجعَ من الستينيات.

على سبيل المثال تمّت تسمية أحد الملفات المصدرية BURN_BABY_BURN--MASTER_IGNITION_ROUTINE وفي التعليقات تقرأ عن أغنيةٍ انتشرت في الستينيات بعنوان "اشتعلي عزيزتي" بالتالي تم تسمية الملف الخاص بالإقلاع بهذا الاسم:

وتستطيعُ قراءة التعليقات كلها ضمن 900 سطر برمجي، وسترى كمية المرح والمزاح الذي كتبه المبرمجون، كما في الصورة:

أما في الملف المسمى LUNAR_LANDING_GUIDANCE_EQUATIONS.s (على ما يبدو المقطع الخاص بهبوط المركبة على سطح القمر) فتستطيع قراءة سطرين من آمال وتمنيات أحد المبرمجين بهبوط المركبة بنجاح.

كما في هذا المقطع أيضاً

يضيفُ Burkey "كلّ الكود السابق هو لتحديد موقع الهوائي لرادار الهبوط، وتنبيهِ رائد الفضاء من موضعه."

وفي الملف المسمى PINBALL_GAME_BUTTONS_AND_LIGHTS.s والذي يعبر عن "برنامج لوحة المفاتيح والشاشة المتبادلة بين المركبة والحاسب المُشَغل"، تسطيع قراءة اقتباسٍ غريب لشكسبير.

والآن وبعد أن أصبح الكود متاحاً على موقع GitHub، بدأ المبرمجون باقتراح تعديلاتٍ على الملفات المنشورة، فمثلاً طرح أحدهم قضية "أنّ أحد الأشخاص يواجه مشكلةً في تحريك خزانات التبريد" وقد اقترح حلاً للمشكلة بتطويرٍ بسيطٍ على جزءٍ من الكود الموجود، كما يمكننا مشاهدة العديد من التعليقات المازحة.

رابط الكود. (هنا)

---------------------------------------------------------------------------

المصادر:

هنا