Шрифт:
Десять или двадцать лет назад мы даже не представляли, насколько уязвимыми для незнакомых нам людей сделают нас универсальная сеть и ее цифровая информация. Как говорит Брюс Шнайер в своей превосходной книге «Данные и Голиаф»11: «Неприкосновенность нашей частной жизни поставлена под удар из-за непрерывного наблюдения. Чтобы осознать, как высоки ставки, критически важно понять, как это происходит».
Социальные механизмы, которые защищают нашу частную жизнь и нашу собственность, не поспевают за быстрым развитием технологий. Тридцать лет назад я общался с местным банком и другими финансовыми организациями посредством бумажных писем и изредка заходил лично. Чтобы получить доступ к моим средствам, требовалось потратить много времени, и все действия подробно отмечались в документах, так что, если бы кто-то решил украсть мои деньги, ему пришлось бы непросто. Сейчас я общаюсь с финансовыми организациями в основном через интернет. Мне удобно получать доступ к моим данным, но если я или одна из этих компаний где-то ошибемся, то мошенник на другой стороне планеты сумеет опустошить мой счет, украсть личные данные, испортить мою кредитную историю и вообще устроить все, что пожелает. Причем все это произойдет мгновенно, а шансов на исправление ситуации почти не будет.
Данная книга поможет понять, как эти системы работают и как они меняют нашу жизнь. Но в силу обстоятельств она всего лишь отображает положение дел на текущий момент: будьте уверены, что через десять лет сегодняшние методы и устройства покажутся вам неуклюжими и устаревшими. Технологии развиваются не разовым скачком, а в ходе непрерывного процесса, быстрого, постоянного и ускоряющегося. К счастью, основные понятия о работе цифровых систем останутся неизменными, поэтому если вы поймете их суть один раз, то и в будущем сможете разобраться в них – лучше справиться с трудностями и воспользоваться возможностями, которые связаны с ними.
Часть I
Аппаратное обеспечение
О Господи, как жаль, что эти расчеты выполнены не с помощью пара!
Чарльз Бэббидж, 1821 год [8]Аппаратное обеспечение – это осязаемая, видимая часть компьютерных систем, то есть устройства и оборудование, которые вы можете увидеть и потрогать. История вычислительных устройств интересна, но здесь я коснусь лишь основных эпизодов. Стоит отметить некоторые тенденции, особенно экспоненциальный рост количества схем и аппаратов, которые удавалось уместить в заданном объеме пространства, зачастую по фиксированной цене. По мере того как цифровое оборудование становилось дешевле и мощнее, на смену крайне разнородным механическим системам пришли электронные, гораздо более единообразные.
8
Цитируется в книге Гарри Уилмота Бакстона «Воспоминания о жизни и трудах покойного Чарльза Бэббиджа», 1872 (Harry Wyl-mot Buxton. Memoir of the Life and Labours of the Late Charles Babbage Esq. F.R.S., MIT, 1988). Бэббидж воскликнул это после того, как нашел множество ошибок в астрономических таблицах, где расчеты велись вручную.
Вычислительная техника имеет долгую историю, однако самые ранние устройства предназначались только для решения узких задач – нередко для предсказания астрономических событий и положений. Например, согласно одной (недоказанной) теории, Стоунхендж был астрономической обсерваторией. Антикитерский механизм, датируемый примерно 100 годом до н. э., применялся для астрономических вычислений и отличается чрезвычайно замысловатой конструкцией. Арифметические устройства вроде абака или счет использовались людьми на протяжении тысячелетий, особенно в Азии. В начале 1600-х годов, вскоре после того как Джон Непер описал логарифмы, появилась счетная линейка. Я вычислял на такой, когда еще учился на инженера в 1960-х годах. Но сейчас логарифмические линейки – диковинка. Их заменили калькуляторы и компьютеры, а мои старательно приобретенные навыки стали бесполезными.
Наиболее значимый предок современных компьютеров – жаккардовый ткацкий станок, изобретенный Жозефом Мари Жаккардом во Франции около 1800 года. В этом агрегате применялись прямоугольные карточки с многочисленными рядами отверстий, которые задавали узоры плетения. Соответственно, жаккардовый станок «программировали» на создание разнообразных узоров по инструкциям, которые он получал на перфорированных карточках. Меняя карты, вы получали другие комбинации плетения12. Создание машин, которые уменьшали трудозатраты, привело к социальным потрясениям, поскольку ткачи теряли работу: так, в 1811–1816 годах движение луддитов в Англии яростно выступало против механизации. Современные вычислительные технологии аналогичным образом привели к расколу.
Рис. 1.1. Современное воплощение разностной машины Бэббиджа13
Вычислительные системы в современном понимании зародились в Англии в середине XIX века благодаря трудам Чарльза Бэббиджа. Этот ученый муж интересовался навигацией и астрономией, а в таких дисциплинах для расчета координат требовались таблицы числовых значений. Бэббидж потратил большую часть жизни, пытаясь создать вычислительное устройство, которое позволило бы механизировать утомительные и ненадежные подсчеты вручную, необходимые не только для создания таблиц, но даже для их печати. Его раздражение сквозит в цитате на предыдущей странице. По целому ряду причин, включая конфликты со спонсорами, он так и не преуспел в реализации своих замыслов, но его проекты были разумными. Современные воплощения некоторых машин Бэббиджа, созданные с применением инструментов и материалов его времени, можно увидеть в Музее науки в Лондоне и Музее компьютерной истории в Маунтин-Вью, штат Калифорния14 (см. рис. 1.1).
Чарльз поощрял интерес к математике и своим вычислительным устройствам у молодой Августы Ады Байрон – дочери поэта Джорджа Байрона, впоследствии графини Лавлейс. Она составила подробные описания о том, как использовать аналитическую машину Бэббиджа (наиболее передовое из его спроектированных устройств) для научных вычислений и предположила, что это устройство может даже выполнять нечисловые операции – в частности, сочинять музыку. «Если предположить, например, – писала она, – что основные соотношения высоких звуков в науке гармонии и музыкальной композиции поддаются таким отображениям и изменениям, то машина способна сочинять тщательно продуманные и научные музыкальные произведения любой сложности или протяженности15». Аду Лавлейс часто называют первым в мире программистом, а язык программирования Ada назван в ее честь16.
Герман Холлерит, сотрудник Бюро переписи населения США, в конце XIX века изобрел и построил устройства, которые сводили в таблицы сведения о жителях страны намного быстрее, чем при ручной обработке. Применяя идеи жаккардового ткацкого станка, Холлерит пробивал отверстия в карточках из плотной бумаги, тем самым кодируя данные переписи в формате, подходящем для обработки его машинами. Примечательно, что для получения сводных таблиц переписи 1880 года потребовалось восемь лет, но благодаря перфокартам и счетным машинам Холлерита итоги переписи 1890 года появились всего через год, а не через десять или больше, как прогнозировалось. Герман основал компанию, которая в 1924 году благодаря слияниям и приобретениям превратилась в International Business Machines, известную сегодня как IBM.