К концу этой книги вы должны обрести четкое представление о том, как работают компьютеры и коммуникационные системы, как они влияют на вас и как вы можете найти баланс между использованием полезных сервисов и защитой вашей конфиденциальности.
Все сводится к горстке фундаментальных концепций, «универсалий», которые мы гораздо более подробно обсудим далее.
Во-первых, универсальное цифровое представление информации. Большую часть XX века документы, фотографии, музыку и фильмы хранили с помощью сложных и хорошо продуманных механических систем, но сейчас их заменили единым универсальным методом. Информация теперь представляется в цифровом виде – в числовых значениях, а не в таких специализированных форматах, как цветные красители, внедренные в пластиковую пленку, или комбинации магнитных частиц на виниловой ленте. Бумажные письма и карты уступили место цифровым, а бумажные документы заменяются базами данных в интернете. Аналоговые форматы во всем их разнообразии вытеснил единый низкоуровневый способ представления – цифровая информация, где все выражается просто числами.
Вторая концепция – универсальный цифровой процессор. Вся эта цифровая информация обрабатывается стандартными устройствами одного типа, цифровыми вычислительными машинами. Компьютеры, которые оперируют универсальными цифровыми представлениями, пришли на смену сложным механическим устройствам, работавшим с аналоговыми форматами отображения информации. Как мы увидим далее, все компьютеры равны в том, что они способны обсчитывать, но отличаются в скорости обработки и в том, какие объемы данных могут хранить. Любой смартфон – это крайне замысловатый компьютер с такой же вычислительной мощностью, как и у ноутбука. Все больше и больше задач, с которыми раньше справлялись только переносные и настольные компьютеры, теперь выполняются на телефонах, и этот процесс унификации ускоряется.
Третье понятие – универсальная цифровая сеть. Интернет соединяет между собой цифровые вычислительные машины, которые обрабатывают цифровое представление данных. Он подключает компьютеры и телефоны к почте, веб-поиску, социальным сетям, магазинам, банкам, новостным и развлекательным каналам и всему остальному. Большинство людей на земле имеют доступ к этой сети. Вы можете обмениваться электронными письмами с любым человеком независимо от того, где он находится или каким способом проверяет почту. Со своего телефона, ноутбука или планшета вы можете искать информацию, сравнивать цены в разных магазинах и совершать покупки. Социальные сети позволяют вам поддерживать связь с друзьями и семьей – опять же через телефон или компьютер. Вы можете смотреть бессчетные развлекательные каналы, зачастую даже бесплатно. Системы в вашем доме отслеживают и контролируют «умные» устройства, которые понимают ваши голосовые команды или вопросы. И существует всемирная инфраструктура, которая обеспечивает совместную работу всех этих служб.
Четвертая концепция – цифровые данные, которые постоянно собирают и анализируют в колоссальных объемах. В свободном доступе находятся карты, аэроснимки и подробные фотографии улиц. Поисковые системы неустанно сканируют интернет и эффективно находят ответы на запросы. В цифровой форме доступны миллионы книг. Социальные сети и файлообменники хранят огромные объемы данных для нас и о нас. Как сетевые, так и традиционные магазины и сервисы предлагают доступ к своим товарам, но в то же время незаметно сохраняют все наши действия, тогда как поисковые системы, социальные сети и наши телефоны не просто позволяют, а помогают им заниматься этим. Во время онлайн-взаимодействий интернет-провайдеры записывают историю наших подключений и, возможно, многое другое. Правительства постоянно шпионят за нами, причем еще 10 или 20 лет назад такая масштабная и тщательная слежка была бы невозможна.
И все это очень быстро меняется, потому что цифровые технические системы становятся всё более компактными, быстрыми и дешевыми. Производители постоянно выпускают новые телефоны с затейливыми функциями, улучшенными экранами и привлекательными приложениями. Регулярно появляются новые гаджеты, а затем функциональность самых полезных из них переходит к приложениям на телефонах. У цифровых технологий имеется естественный побочный продукт: любое развитие аппаратной части приводит к появлению усовершенствований во всех цифровых устройствах. То есть, если какие-либо изменения позволяют обрабатывать данные более дешево, быстро и в увеличенных объемах, выигрывают все устройства. Вот почему цифровые системы встречаются повсюду и встраиваются в нашу жизнь – как зримо, так и незримо.
Считается, что прогресс приносит пользу, и во многих отношениях это действительно так. Но нет добра без худа. Самый очевидный из негативных факторов (и, пожалуй, наиболее тревожный для людей на личном уровне) – влияние технологий на неприкосновенность частной жизни. Когда вы пользуетесь телефоном, чтобы найти какой-нибудь продукт, а затем посещаете интернет-магазины, все участники этого процесса записывают ваши переходы по страницам. Они знают, кто вы такой, потому что идентифицируют вас по смартфону. Они знают, где вы находитесь, потому что телефон постоянно передает координаты вашего местоположения с точностью до 100 метров. Телефонные компании записывают эти сведения и затем могут продать их. Служба GPS (система глобального позиционирования) работает с точностью до 5-10 метров. Когда вы включаете ее, то информация о вашем местонахождении становится доступной для приложений, и их владельцы тоже могут продавать ее. Вообще дела обстоят даже хуже: когда вы выключаете службу позиционирования, то запрещаете использовать GPS-данные только приложениям. Но это совсем не препятствует операционной системе смартфона собирать и выгружать данные через телефонную сеть, Wi-Fi или Bluetooth
.
В реальной жизни за вами наблюдают так же, как и онлайн. Технология распознавания лиц способна узнать вас на улице или в магазине. Дорожные камеры умеют сканировать ваши номерные знаки и определять, где сейчас ваш автомобиль. То же самое делают электронные системы взимания платы за проезд. Подключенные к интернету умные термостаты, автоответчики, дверные замки, радионяни и камеры наблюдения – это устройства слежки, нами же приглашенные в наш дом. Методы надзора, описанные в романе Джорджа Оруэлла «1984», выглядят дилетантскими на фоне того отслеживания, с которым мы сегодня смиряемся, даже не думая о нем.
Записи того, что и где мы делали, могут сущестовать вечно. Цифровое хранение настолько дешево, а данные настолько ценны, что информацию редко стирают. Если вы опубликовали в интернете что-то постыдное или отправили письмо, о котором потом пожалели, то уже ничего не исправить. С многочисленных ресурсов можно собрать информацию и создать подробную картину вашей жизни, доступную для коммерческих, правительственных и преступных субъектов без вашего ведома и разрешения. Скорее всего, она будет оставаться доступной неопределенно долгое время, а в будущем может всплыть и навредить вам.
Десять или двадцать лет назад мы даже не представляли, насколько уязвимыми для незнакомых нам людей сделают нас универсальная сеть и ее цифровая информация. Как говорит Брюс Шнайер в своей превосходной книге «Данные и Голиаф»
: «Неприкосновенность нашей частной жизни поставлена под удар из-за непрерывного наблюдения. Чтобы осознать, как высоки ставки, критически важно понять, как это происходит».
Социальные механизмы, которые защищают нашу частную жизнь и нашу собственность, не поспевают за быстрым развитием технологий. Тридцать лет назад я общался с местным банком и другими финансовыми организациями посредством бумажных писем и изредка заходил лично. Чтобы получить доступ к моим средствам, требовалось потратить много времени, и все действия подробно отмечались в документах, так что, если бы кто-то решил украсть мои деньги, ему пришлось бы непросто. Сейчас я общаюсь с финансовыми организациями в основном через интернет. Мне удобно получать доступ к моим данным, но если я или одна из этих компаний где-то ошибемся, то мошенник на другой стороне планеты сумеет опустошить мой счет, украсть личные данные, испортить мою кредитную историю и вообще устроить все, что пожелает. Причем все это произойдет мгновенно, а шансов на исправление ситуации почти не будет.
Данная книга поможет понять, как эти системы работают и как они меняют нашу жизнь. Но в силу обстоятельств она всего лишь отображает положение дел на текущий момент: будьте уверены, что через десять лет сегодняшние методы и устройства покажутся вам неуклюжими и устаревшими. Технологии развиваются не разовым скачком, а в ходе непрерывного процесса, быстрого, постоянного и ускоряющегося. К счастью, основные понятия о работе цифровых систем останутся неизменными, поэтому если вы поймете их суть один раз, то и в будущем сможете разобраться в них – лучше справиться с трудностями и воспользоваться возможностями, которые связаны с ними.
Часть I
Аппаратное обеспечение
О Господи, как жаль, что эти расчеты выполнены не с помощью пара!
Чарльз Бэббидж, 1821 год[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 года. В этом агрегате применялись прямоугольные карточки с многочисленными рядами отверстий, которые задавали узоры плетения. Соответственно, жаккардовый станок «программировали» на создание разнообразных узоров по инструкциям, которые он получал на перфорированных карточках. Меняя карты, вы получали другие комбинации плетения
. Создание машин, которые уменьшали трудозатраты, привело к социальным потрясениям, поскольку ткачи теряли работу: так, в 1811–1816 годах движение луддитов в Англии яростно выступало против механизации. Современные вычислительные технологии аналогичным образом привели к расколу.
Рис. 1.1. Современное воплощение разностной машины Бэббиджа
Вычислительные системы в современном понимании зародились в Англии в середине XIX века благодаря трудам Чарльза Бэббиджа. Этот ученый муж интересовался навигацией и астрономией, а в таких дисциплинах для расчета координат требовались таблицы числовых значений. Бэббидж потратил большую часть жизни, пытаясь создать вычислительное устройство, которое позволило бы механизировать утомительные и ненадежные подсчеты вручную, необходимые не только для создания таблиц, но даже для их печати. Его раздражение сквозит в цитате на предыдущей странице. По целому ряду причин, включая конфликты со спонсорами, он так и не преуспел в реализации своих замыслов, но его проекты были разумными. Современные воплощения некоторых машин Бэббиджа, созданные с применением инструментов и материалов его времени, можно увидеть в Музее науки в Лондоне и Музее компьютерной истории в Маунтин-Вью, штат Калифорния
(см. рис. 1.1).
Чарльз поощрял интерес к математике и своим вычислительным устройствам у молодой Августы Ады Байрон – дочери поэта Джорджа Байрона, впоследствии графини Лавлейс. Она составила подробные описания о том, как использовать аналитическую машину Бэббиджа (наиболее передовое из его спроектированных устройств) для научных вычислений и предположила, что это устройство может даже выполнять нечисловые операции – в частности, сочинять музыку. «Если предположить, например, – писала она, – что основные соотношения высоких звуков в науке гармонии и музыкальной композиции поддаются таким отображениям и изменениям, то машина способна сочинять тщательно продуманные и научные музыкальные произведения любой сложности или протяженности
». Аду Лавлейс часто называют первым в мире программистом, а язык программирования Ada назван в ее честь
.
Герман Холлерит, сотрудник Бюро переписи населения США, в конце XIX века изобрел и построил устройства, которые сводили в таблицы сведения о жителях страны намного быстрее, чем при ручной обработке. Применяя идеи жаккардового ткацкого станка, Холлерит пробивал отверстия в карточках из плотной бумаги, тем самым кодируя данные переписи в формате, подходящем для обработки его машинами. Примечательно, что для получения сводных таблиц переписи 1880 года потребовалось восемь лет, но благодаря перфокартам и счетным машинам Холлерита итоги переписи 1890 года появились всего через год, а не через десять или больше, как прогнозировалось. Герман основал компанию, которая в 1924 году благодаря слияниям и приобретениям превратилась в International Business Machines, известную сегодня как IBM.
Рис. 1.2. Ада Лавлейс. Фрагмент портрета работы Маргарет Сары Карпентер, 1836 год
Машины Бэббиджа представляли собой сложные механические конструкции из шестеренок, колес, рычагов и стержней. Развитие электроники в XX веке позволило спроектировать компьютеры, в которых уже не применялись механические компоненты. Первой серьезной электрической машиной стал ENIAC (Electronic Numerical Integrator and Computer[9 - Электронный числовой интегратор и вычислитель (англ.).]), созданный Преспером Эккертом и Джоном Мокли в 1940-х годах в Пенсильванском университете в Филадельфии. ENIAC занимал просторное помещение и требовал огромного количества электроэнергии, а выполнял при этом около 5000 операций сложения в секунду. Предполагалось, что устройство будут использовать для баллистических расчетов и тому подобного, но его достроили только в 1946 году, уже после окончания Второй мировой войны
. (Части ENIAC выставлены в Электротехнической школе Мура при Пенсильванском университете.)
Еще Бэббидж четко понимал, что вычислительные устройства могут сохранять свои командные инструкции и данные в одной и той же форме. Но в памяти ENIAC содержалась только информация, а программировали его путем настройки соединений с помощью реле и переключения кабелей. Первые компьютеры, способные совместно хранить программы и данные, создали в Кембридже в 1949 году. Они назывались EDS АС (Electronic Delay Storage Automatic Calculator – электронные автоматические вычислители с задержкой хранения).
Вычислительными элементами для первых электронных компьютеров служили вакуумные трубки. Эти электронные устройства размером и формой примерно с цилиндрическую лампочку (см. рис. 1.7 в следующей главе) были дорогими, хрупкими, громоздкими и требовали много энергии. Современная эра вычислительной техники началась после изобретения транзистора (1947 год) и интегральных схем (1958 год). Благодаря этим технологиям электронные системы равномерно становились все более компактными, дешевыми и быстродействующими.
В следующих трех главах рассказывается об аппаратных средствах компьютеров, причем наибольшее внимание уделяется логической архитектуре вычислительных систем, а не подробностям их физического конструирования. Архитектура практически не менялась за последние десятилетия, тогда как оборудование преобразилось просто ошеломительно. В первой главе приводится обзор структуры и компонентов компьютера. Во второй главе показывается, как компьютеры представляют информацию в виде битов, байтов и двоичных чисел. В третьей главе объясняется, как вычислительные машины проводят расчеты – как они обрабатывают биты и байты, чтобы достичь результата.
1. Что такое компьютер?
Поскольку готовое устройство будет представлять собой вычислительную машину общего назначения, оно должно включать в себя главные блоки, относящиеся к арифметическим операциям, хранению в памяти, управлению и связи с человеком-оператором.
Артур У. Бёркс, Герман Х. Голдстайн, Джон фон Нейман.
Предварительное рассмотрение логического устройства электронного вычислительного прибора
, 1946
Давайте начнем обсуждение аппаратного обеспечения с обзора того, что представляет собой вычислительная машина. Мы рассмотрим ее по крайней мере с двух позиций: логической или функциональной организации (какие у нее части, что они делают и как соединены) и физической структуры (как выглядят части и как они сконструированы). Цель этой главы – разобраться, что такое компьютер и что у него внутри, узнать, что выполняет каждая его часть, и получить представление о том, что значат все эти бесчисленные сокращения и циферки.
Подумайте о ваших вычислительных устройствах. У многих читателей наверняка есть ПК, то есть или ноутбук, или настольный компьютер, произошедший от тех самых PC (Personal Computer, персональный компьютер), которые продавала компания IBM в 1981 году. Если у вас такой ПК, он работает на какой-нибудь версии операционной системы Windows от Microsoft. У других имеется Apple Macintosh под управлением той или иной версии macOS
. У третьих – хромбук (Chromebook) на операционной системе ChromeOS, которая задействует интернет для большей части вычислений и хранения данных. Более специализированные устройства вроде смартфонов, планшетов и электронных книг тоже представляют собой мощные вычислительные машины. Они все выглядят по-разному, и при использовании каждое из них ощущается по-своему, но внутри они устроены в принципе одинаково. Мы поговорим о причинах этого.
Можно провести небольшую аналогию с машинами. Функционально автомобили не меняются уже больше ста лет. В каждом из них есть двигатель, который работает на каком-либо топливе и приводит машину в движение. Есть руль, с помощью которого водитель управляет автомобилем. Есть место, где содержится топливо, а также пространство для пассажиров и их вещей. Однако физически машины сильно преобразились за столетие: их изготавливают из других материалов, они стали быстрее, безопаснее, надежнее и удобнее. Есть огромная разница между моей первой машиной (подержанным Volkswagen Beetle[10 - Folkswagen Kafer (Kafer в переводе с нем. означает «жук», поэтому во многих странах модель называли соответствующим словом на другом языке, как Beetle в англ.) – легковой автомобиль, выпускавшийся немецкой компанией Volkswagen с 1946 по 2003 год.] 1959 года выпуска) и Ferrari, но любая из них доставит меня и мои продукты домой из магазина или провезет через всю страну, и в этом смысле они функционально одинаковы. (Отмечу для ясности, что я никогда даже не садился в Ferrari, не говоря уже о том, чтобы владеть ею, поэтому лишь предполагаю, что там хватит места для продуктов. Правда, однажды я припарковался рядом с одной из них: см. рис. 1.1.)
Рис. 1.1. Самое близкое расстояние, на которое я когда-либо подходил к Ferrari
С вычислительными машинами все то же самое. По логической организации современные компьютеры очень похожи на своих предшественников 1950-х годов, но их физические различия выходят далеко за пределы тех изменений, которые претерпели автомобили. Сегодня компьютеры намного меньше, дешевле, быстрее и надежнее, чем 60 или 70 лет назад, и буквально в миллион раз лучше по некоторым показателям. Такие усовершенствования послужили главной причиной повсеместного распространения компьютеров.
Различия между функциями и физическими свойствами – то есть между тем, что делает объект, и тем, как он устроен или работает внутри, – имеют большое значение. Для компьютеров часть «как это устроено» меняется удивительными темпами, как и их быстродействие, но вот часть «что делает» довольно стабильна. Такое различие между абстрактным описанием и конкретным воплощением будет неоднократно обсуждаться в дальнейшем.
На первой лекции я иногда провожу опрос среди студентов: у скольких из вас есть ПК, у скольких из вас есть Мас? В начале 2000-х годов соотношение уверенно держалось в области 10 к 1 в пользу ПК, но за несколько лет быстро изменилось, и теперь на долю Mac приходится более 75 % компьютеров. Впрочем, это нетипично для мира в целом, где ПК доминируют с большим отрывом.
Вызвано ли подобное неравенство тем, что один тип компьютеров превосходит другой? Если да, то что так резко изменилось за столь короткое время? Я спрашиваю студентов, какой компьютер лучше, и прошу назвать объективные критерии их выбора. На основании чего вы решаете купить тот или иной компьютер?