The Hidden Language of Computer Hardware and Software Charles
Total Page:16
File Type:pdf, Size:1020Kb
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 в США и/или других странах. Все другие то- варные знаки являются собственностью соответствующих фирм. © Оригинальное издание на ангëèéñêом языке Microsoft Corporation, 2000 © Перевод на русский язык, Microsoft Corporation, 2001 © Оформление и подãотовка к изданию; ISBN 0–7356–1131–9 (Aнгë.) издательско-торговый дом «Русская ISBN 5–7502–0159–7 Редакция», 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. ком. маркировка; шифр. индекс (продукта)… Новый большой ангëо-русский словарь (под общим руко- водством академика Ю.Д.Апресяна