Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию
Шрифт:
Шеннон понял, что электрические схемы могут выполнять эти логические операции, используя различные комбинации двухпозиционных переключателей (с режимами «включено»/«выключено»). Для выполнения операции «и», например, нужно два переключателя расположить последовательно, так что для того, чтобы пошел ток, оба должны быть в положении «включено». Чтобы выполнить операцию «или», переключатели должны быть расположены параллельно, так, чтобы электрический ток тек, если один из них находится в положении «включено». Чуть более универсальные переключатели, называемые логическими затворами или вентилями, могли бы ускорить процесс. Другими словами, можно было сконструировать схему, содержащую много реле и логических затворов, которые могли бы выполнять шаг за шагом последовательность логических задач.
(Реле — это просто переключатель, который может открываться и закрываться с помощью электричества, например с помощью электромагнита. Те реле, которые механически — щелчком — открываются, а закрываются с помощью электричества, иногда называются электромеханическими, потому что они имеют подвижные части. Электронные лампы и транзисторы также можно использовать в качестве
Когда осенью Шеннон вернулся в МТИ и рассказал о своих идеях Бушу, тот был восхищен ими и предложил ему включить их в дипломную работу. Шеннон так и поступил, назвал ее «Символический анализ релейных и переключательных схем» и показал, как может быть выполнена каждая из многочисленных операций булевой алгебры. В конце он резюмировал: «Выполнять сложные математические операции с помощью релейных цепей вполне возможно» [79] . Это стало базовой концепцией, лежащей в основе всех цифровых компьютеров.
79
Claude Shannon, A Symbolic Analysis of Relay and Switching Circuits, Transactions of the American Institute of Electrical Engineers, декабрь 1938 г. Для объяснения этого фрагмента см. Daniel Hillis, The Pattern on the Stone (1998), 2-10.
Идеи Шеннона заинтересовали Тьюринга, потому что они оказались тесно связаны с его только что опубликованной концепцией универсальной машины, которая могла использовать простые команды, выраженные в двоичном коде, для решения не только математических, но и логических задач. Кроме того, поскольку логика работает по тем же законам, что и человеческий мозг, машина, выполняющая логические задачи, теоретически могла бы имитировать ход мысли людей.
В Bell Labs в то же время работал математик Джордж Роберт Стибиц, в чьи обязанности входило разбираться со все более сложными расчетами, требовавшимися инженерам-телефонистам. Единственными инструментами в его распоряжении были механические настольные арифмометры, и он решил придумать что-то получше, основываясь на шенноновских идеях о возможностях электронных схем решать математические и логические задачи. Однажды поздним ноябрьским вечером он пошел на склад и взял несколько старых электромагнитных реле и электрических ламп. На столе своей кухни с помощью этих деталей, железной коробочки из-под табака и нескольких переключателей он собрал простую логическую схему, которая могла суммировать бинарные числа. Загоревшаяся лампа представляла собой 1, а потухшая — 0. Его жена окрестила схему K-Model — в честь кухонного стола. На следующий день он взял схему в офис и попытался убедить своих коллег, что, будь у него достаточно реле, он мог бы сделать вычислительную машину.
Одной из важных задач Bell Labs было найти способ усиливать передаваемые на большие расстояния телефонные сигналы и при этом отфильтровывать постоянный фон. У инженеров были формулы, в которые входили амплитуды и фазы сигнала, и в решения этих уравнений иногда входили комплексные числа (включающие мнимую часть, пропорциональную квадратному корню из —1). Руководитель Стибица спросил его, сможет ли машина оперировать комплексными числами. Когда он ответил, что это возможно, руководитель одобрил идею и дал ему в помощь группу для строительства такой машины. Машину назвали калькулятором комплексных чисел, и ее создание было завершено в 1939 году. В ней было более четырехсот реле, каждое из которых могло включаться и выключаться двадцать раз в секунду. Это сделало ее потрясающе быстродействующей по сравнению с механическими калькуляторами и мучительно медлительной по сравнению со схемами, собранными полностью из электронных ламп, которые как раз в то время изобрели. Компьютер Стибица не был программируемым, но он показал, что схемы на реле могут обращаться с бинарной математикой, обрабатывать информацию и выполнять логические операции [80] .
80
Paul Ceruzzi, Reckoners: The Prehistory of the Digital Computer (1983),79. Cм. также Computer History Museum, George Stibitz,computerhistory.org/revolution/birth-of-the-computer/4/85.
Говард Айкен
А в это же время в 1937-м аспирант из Гарварда по имени Говард Айкен пытался сделать утомительные расчеты для своей диссертации по физике, используя арифмометр. Когда он стал уговаривать университет построить более сложный компьютер для ускорения работы, декан его факультета вспомнил, что на чердаке научного центра Гарвардского университета валялись какие-то медные колесики, оставшиеся от устройства вековой давности, похожие на то, о чем говорил Айкен. Когда Айкен обследовал чердак, он нашел одну из шести демонстрационных моделей разностной машины Чарльза Бэббиджа, которую
в нескольких экземплярах изготовил сын Бэббиджа Генри. Айкен пришел в восторг от идей Бэббиджа и перенес набор медных колесиков в свой кабинет. «У нас было два колесика Бэббиджа, — вспоминал он, — это были колеса, которые я позже вмонтировал в корпус своего компьютера» [81] .81
Интервью Говарда Айкена, взятое Генри Троппандом и И. Бернардом Коэном, Smithsonian Institution, февраль 1973 г.
Той осенью, как раз когда Стибиц готовил свою демонстрационную кухонную модель, Айкен написал двадцатидвухстраничную служебную записку своим гарвардским руководителям и специалистам из IBM, пытаясь их уговорить профинансировать современную версию цифровой машины Бэббиджа. Его записка начиналась словами: «Желание сэкономить время и умственные усилия при арифметических вычислениях, а также устранить ошибки, к которым склонен человек, вероятно, так же старо, как сама наука арифметика» [82] .
82
Howard Aiken, Proposed Automatic Calculating Machine, IEEE Spectrum, август 1964 г.; Cassie Ferguson, Howard Aiken: Makin a Computer Wonder, Harvard Gazette, 9 апреля, 1998 г.
Айкен вырос в штате Индиана, и детство у него было трудное. Как-то раз, когда ему было двенадцать лет, ему пришлось кочергой защищать мать от пьяного отца, который потом бросил семью. Поэтому юный Говард был вынужден уйти из школы в девятом классе — нужно было зарабатывать. Сначала он устроился телефонным мастером, затем нашел ночную работу в местной энергетической компании, а днем посещал технический колледж. Он своими руками добился успеха, но у него испортился характер. С подчиненными он вел себя как надсмотрщик, позволяющий себе не сдерживаться. Про него говорили, что он похож на надвигающуюся грозу [83] .
83
I. Bernard Cohen, Howard Aiken: Portrait of a Computer Pioneer (1999), 9.
В Гарварде мнения по поводу создания предлагаемой Айкеном вычислительной машины разошлись. В вопросе о предоставлении ему постоянной должности профессора также не было единства, поскольку его деятельность, казалось, больше относилась к области технологии, чем науки. (У некоторой части преподавательского сообщества Гарварда считалось оскорбительным называть кого-то практиком, а не ученым.) Но Айкена поддержал президент университета — Джеймс Брайант Конант, которому, как председателю Национального исследовательского комитета обороны США, хотелось продемонстрировать, что Гарвард участвует и в научных, и в промышленных, и в военных разработках. Сотрудники физического факультета, однако, были большими пуристами, чем президент. Декан факультета в декабре 1939 года написал Конанту, что машину «можно создать, если найдутся деньги, но это не более важная задача, чем многие другие», а факультетский комитет заявил относительно Айкена: «Ему нужно дать понять, что подобная деятельность не увеличит его шансы на соискание профессорского звания». В конце концов Конант одержал верх и дал указание Айкену заниматься машиной [84] .
84
Kurt Beyer, Grace Hopper and the Invention of the Information Age (2009), 75.
В апреле 1941 года, когда по чертежам Айкена в лаборатории IBM в Эндикотте (штат Нью-Йорк) был создан компьютер Mark I, Айкен покинул Гарвард и отправился служить в ВМС США. Два года он преподавал в Военно-морской военной минной школе в штате Вирджиния в звании капитан-лейтенанта. Один коллега описал его как «вооруженного до зубов формулами длиной с комнату и теориями» гарвардского ученого, который напоролся «на ораву южан-тупиц», ни один из которых «не имел понятия об исчислении» [85] . Большую часть времени он проводил в раздумьях о машине Mark I и иногда надевал парадную военную форму и отправлялся в Эндикотт [86] .
85
Cohen, Howard Aiken, 115.
86
Cohen, Howard Aiken, 98 и далее.
Служба дала ему одно важное преимущество: в начале 1944 года, когда IBM собиралась отправить готовый Mark I в Гарвард, Айкен смог убедить командование ВМС принять машину на свой баланс и назначить его ответственным за нее. Это помогло ему обойти академическую бюрократию Гарварда, которая все еще упрямо не хотела предоставлять ему постоянную ставку профессора. Гарвардская расчетная лаборатория стала на время военным объектом, и все сотрудники Айкена были военнослужащими ВМС, носившими на работе форму. Он называл их своим «экипажем», они называли его «командиром».