Недавно наткнулся на шикарный видеоролик про компьютер который сажал Apollo 11 на Луну — и это тот случай, когда инженерное решение выглядит почти магией, пока не разберёшься в деталях. Постоянная память этого компьютера — Apollo Guidance Computer — была буквально сплетена вручную: медная проволока, пропущенная через магнитные ферритовые кольца. Никаких «чипов» в нашем понимании. Зато такая память была практически неуязвима к космическому излучению и магнитным полям — тем самым факторам, которые и сегодня могут «перевернуть бит» в обычной RAM. Надёжность была важнее скорости, и это решение полностью себя оправдало. При этом AGC умел делать то, что многие современные системы делают плохо: работать под перегрузкой. У него был полноценный приоритетный планировщик задач. Когда во время посадки система оказалась перегружена, компьютер выполнил мягкую перезагрузку за доли секунды: очистил очередь задач и мгновенно восстановил только критические процессы — навигацию и управление двигателем — ровно с того же места. Посадка при этом не прервалась ни на мгновение. Отдельный восторг — софт. Для сложных операций с векторами и матрицами инженеры MIT написали собственный интерпретатор (по сути, предок современных скриптовых языков), который работал поверх ассемблера в условиях всего 72 КБ памяти. Эту часть разработки возглавляла Margaret Hamilton, и именно тогда родился сам термин software engineering — потому что писать такой код «по-дилетантски» было просто невозможно. Для меня это один из самых сильных примеров того, что настоящее инженерное мастерство проявляется не при изобилии ресурсов, а при их жёстком дефиците. В условиях отсутствия технологий, к которым мы привыкли сегодня, и при огромном количестве ограничений, люди смогли создать систему, надёжность которой до сих пор вызывает уважение. Не самый мощный компьютер в истории — но, возможно, один из самых умных. https://www.youtube.com/watch?v=i1VJ03SWe5M