Category: космос

Category was added automatically. Read all entries about "космос".

Ии-го-го!

Version Control, NASA style

Любезный ./ рассказал о том, как работать с кодом, написанным до того, как всем нам случился git.

Группа энтузиастов, включая участника того полета, Майкла Стюрата, решила запустить на эмуляторе бортового компьютера (поправка: это настоящий железный компьютер) программу, которая управляла кораблем Аполло-10 (это тот, что совершил облет Луны за два месяца до того, как там сделал первый большой шаг Нил Армстронг).

Проблема в том, что исходники потерялись. Но Стюарт нашел 1,735 страниц распечатки ассемблерного кода. Не того, который работал в космосе в мае 1969 года, а что-то в процессе предполетной отладки. Кроме этого, была таблица чек-сумм разных версий кода, включая «релиз». А также переписка, в которой инженеры НАСА обсуждали, какие исправления следует внести.

Последовательно вставляя в отцифрованный код эти изменения, Стюарту удалось добиться правильной чек-суммы. Компиляция, которая сегодня происходит на обычном лэптопе за секунды, полвека назад занимала 25 минут на мэйнфрейме Хоннивелл.