Код
#статьи

Глупый мотылёк догорал на свечке: как американцы собрали первый компьютер и придумали баги

США умудрились изобрести компьютер на два года позже Германии, но зато нашли первый баг и поссорили Гарвард с IBM.

tesla / youtube

Первым американским программируемым компьютером считают Mark I, созданный в 1944 году. Его архитектуру придумал гарвардский физик Говард Эйкен, а само устройство спроектировала и собрала IBM.

Иногда Mark I называют первым действующим компьютером в мире, но это не так — немец Конрад Цузе собрал свой Z3 на два года раньше.

Как Mark I поссорил IBM с Гарвардом

Идея создать мощное вычислительное устройство появилась у Эйкена ещё до войны, когда он писал диссертацию о проводимости зарядов в радиолампах. Для неё ему приходилось долго и утомительно решать нелинейные дифференциальные уравнения на логарифмической линейке и арифмометрах.

Про похожее устройство он читал в работах Чарльза Бэббиджа — в XIX веке этот учёный уже изобрёл машину для автоматических вычислений. Эйкен решил усовершенствовать машину Бэббиджа и делать расчёты на ней.

Сначала Эйкен попробовал заинтересовать Гарвардский университет. Идею одобрили, но денег не дали. Производители калькуляторов тоже не захотели вкладываться — не верили, что такую машину кто-то купит.

В итоге через друзей Эйкен познакомился с Томасом Уотсоном — гендиректором IBM, чья компания тогда выпускала электромеханические табуляторы. Он заинтересовался проектом и согласился частично его финансировать. Вторым спонсором стали ВМС США — адмиралов убедили, что в случае войны машина пригодится, чтобы составлять баллистические таблицы для артиллерии.

Конструировать машину Уотсон поручил самым талантливым инженерам IBM. Эйкена назначили руководителем проекта — он разрабатывал архитектуру компьютера.

В IBM умели делать ручные счётные машины, поэтому у них получился скорее большой арифмометр, а не компьютер в современном понимании. В устройстве было 800 километров проводов и 800 тысяч деталей: переключателей, реле и муфт. По всей длине проходил вал, который крутил шестерни.

Часть компьютера Mark I. Фото: Wikimedia Commons

Компьютер назвали Automatic Sequence Controlled Calculator — «автоматический вычислитель, управляемый последовательностями», сокращённо ASCC.

Он работал с десятичными числами и выполнял по 3 операции сложения и вычитания в секунду — в то время это был хороший результат. Умножение занимало 6 секунд, деление — 15.

Устройство не хранило программы в памяти, а считывало их с перфоленты. Для работы с данными использовали регистры. Делать условные переходы компьютер не умел, поэтому сложные программы были длинными и на каждую уходили рулоны перфолент. Чтобы выполнить цикл, начало и конец ленты соединяли между собой.

Пока машину разрабатывали, Эйкен начал спорить с гендиректором IBM — не могли договориться о габаритах. У них получилась 17-метровая машина высотой больше человеческого роста, а Эйкен считал, что это слишком.

Другой проблемой стал корпус. Учёный хотел оставить его открытым, чтобы легко обслуживать компьютер, но для IBM важнее был товарный вид. Победил бизнес, и промышленный дизайнер Бел Геддес разработал корпус из стекла и нержавеющей стали.

Но Эйкен отыгрался на презентации машины в августе 1944 года. В речи перед журналистами он едва упомянул роль IBM в проекте. Гендиректор взбесился и отказался работать с Эйкеном дальше. Изобретатель сменил имя компьютера с ASCC на Mark I.

Машину передали Гарварду, а потом она попала на флот, где заменяла 20 расчётчиков баллистических таблиц. Военные удивились, что Mark I работает так быстро, и дальше идеи Эйкена финансировало Министерство обороны США.

Компьютер обслуживали морские офицеры, которые всегда поддерживали флотский порядок — подвижные детали смазывали, а корпус начищали до блеска.

Работала с машиной гарвардский профессор математики лейтенант Грейс Хоппер, а также выпускники Гарварда прапорщики Роберт Кэмпбелл и Ричард Блох. Потом они стали выдающимися учёными-программистами, а Грейс Хоппер — ещё и адмиралом ВМФ.

В военное время Mark I использовали артиллеристы, а Джон фон Нейман делал расчёты, связанные с созданием и применением ядерного оружия. После войны Эйкен рассчитывал на компьютере нелинейные дифференциальные уравнения.

Коллеги Эйкена удивлялись, почему в Mark I он не использовал радиолампы. Они считали, что Mark I устарел ещё до своего создания. Но учёный знал, что с радиолампами компьютер работал бы намного быстрее, но он не хотел рисковать из-за недостаточно испытанных компонентов.

К 1958 году Mark I окончательно устарел, и его демонтировали. Интересный факт — в 2014-м компьютер восстановили и запустили, и он оказался работоспособным.

Mark II — компьютер с первым багом

В 1945 году Эйкен начал строить для военных более совершенный компьютер — Mark II. Вместо медленных электромеханических счётчиков в нём использовали быстрые электромагнитные реле.

Вместе с Эйкеном над Mark II работала и Грейс Хоппер, будущий адмирал ВМФ. Спустя два года машина была готова.

9 сентября 1947 года Хоппер нашла в компьютере первый «баг» — мотылька, который запутался в проводах и остановил машину.

«В один из летних дней 1945 года в лаборатории было невыносимо жарко. Компьютер вдруг остановился. Когда мы стали разбираться, выяснилось, что сбой вызвал мотылёк — он замкнул контакты одного из тысяч реле. Как раз в этот момент к нам зашёл офицер и спросил, чем мы занимаемся. Мы ответили, что чистим компьютер от насекомых».

Грейс Хоппер

Так появилось слово debugging — отладка, устранение дефектов. После этого программисты стали называть ошибки «багами».

Грейс Хоппер в компьютерном зале в Вашингтоне. Фото: Wikimedia Commons

Mark II стал последним американским электромеханическим компьютером. Позже Эйкен построил Mark III и Mark IV, но в них уже использовали радиолампы. А осенью 1945 года появился ENIAC — с него началась эпоха электронных вычислительных машин.


Научитесь: Старт в DevOps: системное администрирова­ние для начинающих Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована