Москва 2001 г тайный язык информатики Чарльз Петцольд ббк 32. 973. 26–018



Pdf көрінісі
бет1/26
Дата07.04.2020
өлшемі3.29 Mb.
  1   2   3   4   5   6   7   8   9   ...   26

The Hidden Language of

Computer Hardware and Software

Charles Petzold


Москва 2001 г.

тайный язык информатики

Чарльз Петцольд


УДК 004

ББК 32.973.26–018

П33

Петцольд Ч.

П33


Код. — М.: Издательско-торговый дом «Русская Редакция»,

2001. — 512 с.: ил.



ISBN 5–7502–0159–7

Эта книга — азбука компьютерных технологий. Шаг за ша-

гом автор знакомит читателя с сущностью кодирования информа-

ции, рассказывает об истории возникновения компьютеров, на

практических примерах помогает освоить основные концепции ин-

формационных технологий, подробно излагает принципы рабо-

ты процессора и других устройств компьютера.

Написанная живо, доступно, иногда иронично, книга богато

иллюстрирована, состоит из 25 глав и предметного указателя.

Издание адресовано в первую очередь студентам вузов (как

гуманитарных, так и технических), а также всем, кто интересует-

ся принципами создания и работы компьютеров.



УДК 004

ББК 32.973.26–018

Подготовлено к печати по лицензионному договору с Microsoft Corporation, Редмонд,

Вашингтон, США.

Использованные в примерах и упражнениях названия компаний и продуктов, персо-

нажи и события вымышлены, за исключением особо отмеченных случаев. Любые со-

впадения с реальными компаниями, продуктами, людьми и событиями являются слу-

чайными.

Портреты Чарльза Бэббиджа, Джорджа Буля, Луи Брайля, Германа Холлерита, Сэмюэ-

ля Морзе и Джона фон Неймана публикуются с разрешения Corbis Images и отредак-

тированы для этой книги Джоэлем Пэнчотом (Joel Panchot). Обложка журнала Popular

Electronics (январь 1975 г.) воспроизводится с разрешения Ziff-Davis и семьи Ziff. Все

остальные иллюстрации подготовлены Джоэлем Пэнчотом.

Macintosh является охраняемым товарным знаком корпорации Apple Computer.

Microsoft, MS-DOS и Windows являются либо товарными знаками, либо охраняемыми

товарными знаками корпорации Microsoft в США и/или других странах. Все другие то-

варные знаки являются собственностью соответствующих фирм.



ISBN 0–7356–1131–9 (Aнгл.)

ISBN 5–7502–0159–7

© Оригинальное издание на английском

языке Microsoft Corporation, 2000

© Перевод на русский язык, Microsoft

Corporation, 2001

© Оформление и подготовка к изданию;

издательско-торговый дом «Русская

Редакция», 2001



Оглавление

Предисловие ........................................................... VII

Глава 1

Верные друзья ......................................... 1



Глава 2

Коды и комбинации ................................ 9

Глава 3

Брайль и двоичные коды ........................ 15



Глава 4

Анатомия фонарика .............................. 23

Глава 5

Там, за поворотом ................................. 35



Глава 6

Телеграф и реле ..................................... 45

Глава 7

Великолепная десятка ........................... 53



Глава 8

Альтернативы десяти ............................. 61

Глава 9

За битом бит ......................................... 77



Глава 10

Логика и переключатели ....................... 99

Глава 11

Вентили, которые не протекают ........... 119

Глава 12

Двоичный сумматор ............................. 153

Глава 13

А как же вычитание? .......................... 169

Глава 14

Обратная связь и триггеры ................... 185

Глава 15

Байты и шестнадцатеричные числа ....... 215

Глава 16

Сборка памяти .................................... 229

Глава 17

Автоматизация ................................... 249

Глава 18

От счетов к микросхемам .................... 289

Глава 19

Два классических микропроцессора ..... 321

Глава 20

ASCII — символы нашего времени ..... 357

Глава 21

Под шорох шин ................................... 377

Глава 22

Операционная система ........................ 403

Глава 23

Фиксированная точка,

плавающая точка ................................. 423

Глава 24


Языки высокие и низкие ..................... 439

Глава 25


Графическая революция ....................... 459

Предметный указатель .......................................... 486



Предисловие

Идея книги Код стучалась мне в голову в течение десятилетия,

прежде чем я начал ее писать. И все то время, что я обдумывал

книгу, писал и даже после того, как она была опубликована,

люди спрашивали меня: «О чем эта книга?»

На этот вопрос я всегда отвечал с неохотой. Мямлил что-

то об «уникальном путешествии по истории цифровых тех-

нологий, определивших облик нашего времени», надеясь, что

этого будет достаточно.

Но в конце концов мне пришлось признать: «Код — книга

о том, как работают компьютеры».

Как я и опасался, реакция оказалась неблагоприятной. «А-а,

такая книга у меня уже есть», — говорили некоторые, а я сразу

возражал: «Нет, нет, нет, вот как раз такой книги у вас и нет». И

до сих пор считаю, что это верно. Код — это не просто описание

действия компьютера. В ней нет больших цветных изображе-

ний жестких дисков со стрелками, указывающими направление

перемещения данных в компьютере. Нет рисунков, на которых

локомотивы тащили бы вагоны, груженные нулями и единица-

ми. Метафоры и сравнения, с одной стороны, украшают текст,

а с другой — мешают постичь красоту технологии.

Приходилось мне слышать и такое: «Народу нет дела до

того, как работают компьютеры». И это, по-моему, тоже вер-

но. Мне, например, доставляет удовольствие узнавать, как ра-

ботает тот или иной прибор. Но при этом я предпочитаю вы-

бирать, в чем я хочу разобраться, а в чем — нет. Мне, скажем,

трудно без насилия над собой объяснить принцип действия

холодильника.

И все же люди часто задают вопросы, которые подтверж-

дают их интерес к внутреннему устройству компьютера. Один

из них: «В чем разница между оперативной и постоянной па-

мятью?»


VIII

Предисловие

Это, без сомнения, очень важный вопрос. На подобных

понятиях основан весь рынок персональных компьютеров.

Предполагается, что даже новичок понимает, сколько  мегов

одной и гигов другой потребуется его программам. Считается

также, что в самом начале знакомства с компьютером пользо-

ватель постигает концепцию файла и представляет себе, как

файлы загружаются из постоянной в оперативную память, а

затем из оперативной записываются обратно в постоянную.

На вопрос о постоянстве и оперативности часто отвечают,

используя такую аналогию: «Считайте, что оперативная память

— это ваш рабочий стол, а постоянная — шкаф с папками». И

думают, что это прекрасное сравнение! Но я его таковым не

считаю: создается впечатление, что архитектура компьютера

срисована с обычной конторы. Правда же заключается в том,

что различие между постоянной и оперативной памятью ис-

кусственно и существует лишь потому, что нам до сих пор не

удалось создать накопитель данных, который был бы одновре-

менно быстрым, объемным и способным хранить информа-

цию в течение долгого времени. То, что сегодня называется

архитектурой Неймана — доминирующая компьютерная ар-

хитектура в течение последних 50 лет, — прямое следствие

этого технического несовершенства.

Еще меня как-то спросили: «Почему программы для

Macintosh нельзя запускать под Windows?» Я уже было открыл

рот, чтобы ответить, но вдруг осознал, что ответ будет содер-

жать гораздо больше технических подробностей, чем рассчи-

тывает услышать спросивший.

Я хочу, чтобы книга Код помогла вам разобраться в подоб-

ных вещах, причем не абстрактно, а глубоко, практически на

уровне инженера или программиста. Надеюсь также, что в ней

компьютер предстанет перед вами как одно из наиболее выда-

ющихся изобретений XX века и вы поймете, что он прекрасен

сам по себе, даже без изысканных метафор и сравнений.

Компьютер представляет собой иерархию, в основании

которой лежат транзисторы, а на вершине — информация,

отображаемая на мониторе. Переходы с одного уровня этой

иерархии на следующий — а книга Код построена именно так

— далеко не так тяжелы, как думает большинство. Конечно,

действие современного компьютера состоит из бесчисленных



IX

Предисловие

операций, но среди них множество простых или сходных меж-

ду собой.

Компьютеры наших дней сложнее тех, что появились 25

или 50 лет назад, но в основе своей они остались теми же. Вот

почему изучать историю технологии так удобно: чем дальше

вы уходите в прошлое, тем проще становится технология. Рано

или поздно вы достигаете этапа, разобраться в котором уже не

представляет особого труда.

В книге Код я ушел настолько далеко в прошлое, насколько

это было возможно. К своему удивлению, я обнаружил, что

точка отсчета лежит в XIX столетии и я могу использовать для

описания работы компьютера принципы устройства телеграф-

ного оборудования. Все, что описано в первых 17-ти главах

книги, можно построить, хотя бы теоретически, из простых

электрических устройств, известных уже более 100 лет.

Мне кажется, что обращение к античным технологиям при-

дает этой книге этакий ностальгический аромат. Она не могла

бы называться Быстрее и еще быстрее или, скажем, Бизнес со

скоростью нервного импульса. Понятие «бит» определено в ней

лишь на 76-й странице, слово «байт» не встречается до 215-й.

Транзисторы не упоминаются до 167-й страницы, да и там —

лишь бегло.

Вот почему читать эту книгу довольно легко, хотя работа

компьютера разбирается в ней с глубочайшими подробностя-

ми (много ли вы знаете книг, в которых действительно описы-

валась бы суть работы процессора?). Я старался, чтобы глубина

изложения не сделала путешествие менее комфортабельным.

Но без локомотивов, которые тащат вагоны, груженные ну-

лями и единицами.

Чарльз Петцольд

16 августа 2000 г.


X

Предисловие

code n

1. 1) кодекс, свод законов 2) законы, принципы (чести, мора-

ли и т. п.)

2. 1) код; Morse ~ код /азбука/ Морзе; telegraphic ~ телеграф-

ный код 2) шифр



3. биол. генетический код

4. вчт. программа (особ. прикладная)

5. ком. маркировка; шифр. индекс (продукта)…

Новый большой англо-русский словарь (под общим руко-

водством академика Ю.Д.Апресяна и доктора филологических

наук, профессора Э.М. Медниковой). Издание 2-е, исправлен-

ное. М.: «Русский язык», 1997.


Глава 1

Верные друзья

Представьте себе, что вам 10 лет. Ваш лучший друг живет в

доме напротив, так что окна ваших комнат смотрят друг на

друга. Вечером, когда родители, как всегда, не вовремя отпра-

вили вас в кровать, вам хочется посекретничать, обменяться

мыслями, наблюдениями, новостями, мечтами или рассказать

свежий анекдот. В этом нет ничего зазорного. В конце концов

тяга к общению — одна из самых человеческих черт.

Как же вам пообщаться? Может, по телефону? Но часто ли

у 10-летнего ребенка в комнате стоит телефон? А если и есть,

то разговор услышат в другой комнате. Компьютер, подклю-

ченный к телефонной линии, позволяет обмениваться сооб-

щениями бесшумно, но и он тоже стоит не в вашей комнате.

Что у вас обоих есть наверняка, так это карманные фона-

рики. Всем известно: фонарики изобретены для того, чтобы

дети могли читать книжки под одеялом. Кроме того, это пре-

красное средство для общения в темноте. Фонарик достаточ-

но бесшумен, а его луч имеет определенное направление и не

просачивается под дверь спальни, так что о разговоре с помо-

щью фонарика ваше бдительное семейство не догадается.

Но можно ли заставить фонарик говорить? Давайте попро-

буем. В первом классе вы научились выводить на бумаге бук-

вы и слова, теперь пришла пора поделиться этим знанием с

фонариком. Все, что для этого нужно, — подойти к окну и

рисовать буквы лучом света. Чтобы «написать» О, включите


2

Глава первая

фонарик, обведите в воздухе круг, а затем выключите его. Буква

Г рисуется так — включите фонарик и проведите им вверх и

вбок. Впрочем, легко убедиться, что этот способ для общения

не годится. Увидев, какие кренделя выписывает в воздухе луч

фонарика вашего друга, вы поймете, что разобрать в мелька-

нии света отдельные штрихи и буквы невозможно. Все эти све-

товые росчерки недостаточно определенны.

Вы наверняка видели в каком-нибудь фильме, как моряки

на кораблях посылают друг другу сигналы с помощью мигаю-

щих огней. А в другой картине шпион, покачивая зеркальцем,

пускал солнечные зайчики в окно дома, где лежал связанным

его коллега. Может быть, это выход? Начнем с самого просто-

го, что приходит на ум. Обозначим каждую букву алфавита

определенным числом вспышек: А будем обозначать одной

вспышкой, Б — двумя, В — тремя и так до Я (33 вспышки).

Например, чтобы передать слово «бег», нужно мигнуть фона-

риком 2, 6 и 4 раза с небольшими паузами между буквами, что-

бы друг не принял их за одну букву К (12 вспышек). Между

словами паузы нужно еще увеличить.

Это уже кое-что. По крайней мере не нужно размахивать

фонариком: направляй луч в нужную сторону и щелкай кноп-

кой. Правда, у этого способа есть и недостаток — чтобы пере-

дать обычный для начала разговора вопрос «Как жизнь?», по-

надобится целых 95 вспышек, даже если забыть о знаке вопро-

са, для которого тоже нужно задать число вспышек.

Но кажется, решение где-то рядом. Наверняка кто-то уже

ломал голову над подобной проблемой, думаете вы, и вы аб-

солютно правы. Наступает утро, вы идете в библиотеку и на-

ходите там книги об удивительном изобретении, которое на-

зывают азбукой Морзе. Это в точности то, что вам нужно, хотя

теперь придется заново учиться писать все буквы.

Вот в чем отличие азбуки Морзе от вашей системы. Вы по-

ставили каждой букве в соответствие определенное число оди-

наковых вспышек (от 1 для А до 33 для Я). В азбуке Морзе ис-

пользуются вспышки двух типов — короткие и длинные. Это,

конечно, усложняет ее, но с другой стороны делает куда более

эффективной. С помощью азбуки Морзе фраза «Как жизнь?»

кодируется всего 30 вспышками (как короткими, так и длин-

ными), а не 95, причем с учетом знака вопроса.



3

Верные друзья

Говоря об азбуке Морзе, обычно говорят не о коротких и

длинных вспышках, а о точках и тире, поскольку с их помо-

щью код удобно изображать на бумаге. Каждой букве алфави-

та соответствует собственная последовательность точек и тире.

A

Б



В

Г

Д



Ж

З

И



Й

У

Ф



Х

Ц

Ч



Ш

Щ

Ъ,Ь



К

Л

М



Н

О

П



Р

С

Т



K

L

M



N

O

P



R

S

T



U

H



C

Q

X



A

B



W

G

D



E

E

V



Z

I

J



Ы

Ю

Я



Хотя азбука Морзе не имеет к компьютерам абсолютно ни-

какого отношения, тесное знакомство с концепцией кодирова-

ния необходимо для постижения тайного языка и внутренней

сути аппаратного и программного воплощений компьютера.

В этой книге слово код обычно обозначает некую систему

для обмена информацией между людьми и машинами. Иначе

говоря, код — это средство коммуникации. И хотя коды иног-

да ассоциируются с какой-то тайной, чаще их используют для

других целей. В определенном смысле коды вообще составля-

ют основу любого человеческого общения.

В романе «Сто лет одиночества» Габриэль Гарсия Маркес

вспоминает о временах, когда «мир был так юн, что вещи еще

не обрели свои имена, и чтобы как-то обозначить их, нужно

было указать на них пальцем». Обычно имена, которые мы

даем вещам, кажутся произвольными. Непонятно, например,

почему кошку не назвали собакой, а собаку — кошкой. Мож-

но сказать, что обычный толковый словарь — это разновид-

ность кода.

Звуки, издаваемые при произнесении слова, — это код, по-

нятный любому, кто способен услышать наш голос и понима-



4

Глава первая

ет язык, на котором мы говорим. Мы называем этот код ре-

чью. Для слов, изображаемых на бумаге (или на камне, или на

дереве), существует другой код — в виде написанных или на-

печатанных символов. Мы называем этот код письмом или тек-

стом. Во многих языках между речью и письмом имеется стро-

гое соответствие. В европейских языках, например, буквам или

группам букв отвечают (в той или иной степени) определен-

ные звуки.

Для глухонемых разработан особый код — язык знаков, в

котором движения рук обозначают буквы, целые слова и поня-

тия. Для слепых письмо заменяется азбукой Брайля, в которой

буквы, группы букв и целые слова закодированы наборами вы-

пуклых точек. Когда устную речь нужно очень быстро перевес-

ти в текст, применяют особый код — стенографию (скоропись).

Для общения люди используют множество различных ко-

дов, потому что одни коды иногда удобнее других. Например,

устную речь нельзя сохранить на бумаге, поэтому вместо нее

мы применяем письмо. Беззвучный обмен информацией на

расстоянии и в темноте посредством речи или письма невозмо-

жен, поэтому в ряде случаев удобной альтернативой им оказы-

вается азбука Морзе. Код полезен, если выполняет задачу, с ко-

торой в данных обстоятельствах не справляются другие коды.

Как мы увидим ниже, в компьютерах также применяются

различные типы кодов для хранения и передачи чисел, звуков,

музыки, изображений и фильмов. Компьютер не может иметь

дело с человеческими кодами напрямую — ведь у него нет глаз,

ушей, рта и пальцев, столь необходимых людям при общении.

Правда, в последнее время появилась тенденция учить персо-

нальные компьютеры воспринимать, хранить, обрабатывать

и воспроизводить все типы информации, применяемые в че-

ловеческом общении: видимую (текст и изображения), слы-

шимую (устная речь, звуки и музыка) или их сочетание (муль-

типликация и кино). Каждый из этих видов информации тре-

бует собственного кода подобно тому, как человеку нужны

одни органы для речи (рот и уши) и другие (руки и глаза) —

для письма.

Даже таблица с расшифровкой азбуки Морзе сама по себе

— тоже своеобразный код. Из нее видно, что каждая буква пред-

ставлена набором точек и тире, однако в реальности мы не мо-

жем посылать точки и тире, а потому заменяем их вспышками.


5

Верные друзья

Чтобы передать точку азбуки Морзе с помощью фонари-

ка, нужно очень быстро включить и выключить его (короткая

вспышка). Для передачи тире фонарик остается включенным

немного дольше (долгая вспышка). Например, чтобы передать

букву А, надо включить фонарик и тут же выключить, а затем

включить опять и выключить уже с меньшей поспешностью.

Перед следующим символом нужно сделать паузу. Традици-

онно тире длится примерно в три раза дольше точки. Если,

скажем, для передачи точки фонарик горит секунду, то для

передачи тире — три (в действительности, сообщения «мор-

зянкой» передаются гораздо быстрее). Получатель, видя корот-

кую вспышку, а за ней длинную, понимает, что это буква А.

Паузы между точками и тире в азбуке Морзе имеют боль-

шое значение. При передаче буквы А между точкой и тире

фонарик следует выключить на время, примерно равное дли-

тельности точки (если точка длится секунду, то промежуток

между точками и тире также составляет одну секунду). Буквы

одного слова разделяются более длинными паузами, равными

примерно одному тире (например, трем секундам, если тако-

ва длительность тире). В следующем примере показано слово

«привет» с надлежащими паузами между буквами.

Между словами фонарик остается выключенным на время

примерно двух тире (6 секунд, если тире длится 3 секунды).

Вот код для фразы «как жизнь».

Продолжительность пауз между буквами и словами жест-

ко не зафиксирована. Все определяется только длительностью

точки, а она зависит от того, как быстро вы способны нажи-

мать кнопку фонарика, а еще от того, как долго отправитель

вспоминает код очередной буквы в азбуке Морзе. Тире опыт-

ного «морзянщика» может длиться как точка медлительного.

Это, конечно, может затруднить чтение сообщения на азбуке

Морзе, однако после одной-двух букв получатель обычно при-

норавливается различать точки и тире.

Поначалу определение азбуки Морзе — а определением я

называю соответствие между последовательностями точек и

тире и буквами алфавита — кажется столь же произвольным,


6

Глава первая

как расположение букв на клавиатуре пишущей машинки.

Однако при ближайшем рассмотрении это оказывается совсем

не так. Самые простые и короткие коды присвоены часто упот-

ребляемым буквам, например, Е и Т, а у менее популярных

букв, таких как Ш или Щ, коды подлиннее.

Есть некий минимум азбуки Морзе, известный почти каж-

дому человеку: 3 точки, 3 тире, 3 точки представляют собой

международный сигнал бедствия — SOS. Это не сокращение,

а просто легко запоминающаяся последовательность кодов.

Еще один пример из жизни. Во время второй мировой войны

радио BBC начинало некоторые передачи вступлением к Пя-

той симфонии Бетховена — БА, БА, БА, БА-А-АМММ. Ком-

позитор и не подозревал, что начинает симфонию кодом Морзе

для буквы V (Victory, т. е. победа).

Недостаток азбуки Морзе в том, что в ней не различаются

прописные и строчные буквы. Зато в ней нашлось место циф-

рам, зашифрованным наборами из пяти точек и тире.

1

2

3



4

5

6



7

8

9



0

В отличие от букв в этих кодах есть порядок. Знаки препи-

нания зашифрованы пятью, шестью или даже семью точками

и тире.


.

,

?



:

;

-



/

"

'



(

)

=



+

$



_

/


7

Верные друзья

Есть еще специальные коды для букв с диакритическими

знаками (вроде знака ударения) из некоторых европейских

языков и несколько служебных последовательностей (начало

передачи, готовность к приему, ошибка и пр.). К последним

относится и код SOS — его передают без обычных пауз между

буквами.

Со временем вы обнаружите, что гораздо легче посылать

«морзянку» с помощью специально приспособленного фона-

рика. В нем, кроме обычного выключателя, есть кнопка с пру-

жиной. Фонарик горит, пока она нажата. Немного попракти-

ковавшись, можно добиться скорости передачи 5–10 слов в

минуту — это, конечно, медленнее речи (мы произносим при-

мерно 100 слов в минуту), но вполне приемлемо.

Когда вы с другом вызубрите азбуку Морзе (а зубрежка —

единственный способ стать специалистом по отправке и при-

ему  «морзянки»), то сможете даже говорить азбукой Морзе,

произнося вместо точки то, а вместо тире — ти. Письмо сво-

дится азбукой Морзе к двум символам (точке и тире), а уст-

ную речь с ее помощью можно сократить до двух слогов.

Ключевое слово здесь — два. Два вида вспышек, два слога,

два чего угодно способны в соответствующих комбинациях

передать любую информацию.




Достарыңызбен бөлісу:
  1   2   3   4   5   6   7   8   9   ...   26




©www.engime.org 2020
әкімшілігінің қараңыз

    Басты бет