Хотите ли вы стать инженером-программистом или просто лучше разбираться в технологиях, на которых основан наш мир, есть реальная ценность в изучении того, как на самом деле работают компьютеры. Поскольку в наши дни компьютеры настолько сложны, может быть трудно понять, с чего начать.

Ответ, по словам Чарльза Петцольда, заключается в том, чтобы вернуться в историю, чтобы понять основополагающие концепции, постепенно переходя от телеграфного оборудования 19 века к графическим пользовательским интерфейсам 80-х годов. В книге Код: скрытый язык компьютерного оборудования и программного обеспечения Петцольд проводит нас от кода Морзе к ранним микропроцессорам 70-х и 80-х годов, давая глубокое и удовлетворительное объяснение того, как именно работают компьютеры.

Что такое код?

Книга начинается с самой сути названия - объяснения того, «что такое код». Изначально не последовательность шагов, описывающих операции, которые вы хотите, чтобы компьютер выполнял, а, скорее, очень простые коды, такие как азбука Морзе - система для передачи информации между людьми и / или машинами.

Морзе не только знакомит с идеей кодов, но и полезен потому, что он двоичный. То есть он состоит из двух значений - точек и тире - используемых в различных комбинациях для представления всех букв алфавита. И это то, что мы увидим гораздо больше по мере продвижения книги, поскольку большинство компьютеров также используют двоичный код (с единицами и нулями) для представления информации и инструкций.

Просто добавь электричество

Начав с основ, Петцольд также знакомит с электричеством, представляя «анатомию фонарика». При этом он объясняет, как электроны перемещаются по цепи под действием напряжения, объясняя, что на самом деле означают напряжение, ток и сопротивление.

Введя коды и электричество, Петцольд исследует телеграф - способ использования электричества для передачи закодированной информации. Телеграф также знаменует собой начало современной связи. Как отмечает Петцольд, «впервые люди смогли общаться дальше, чем может видеть глаз или ухо, и быстрее, чем лошадь может скакать».

Одна из проблем с телеграфом заключается в том, что сигнал становится слабее с увеличением расстояния. Если вы хотите отправлять сообщения через США, вам нужно найти способ усиливать сигнал каждые несколько миль. Чтобы справиться с этим, Петцольд вводит идею реле - чего-то, что принимает небольшой слабый ток и использует его для переключения переключателя в другой цепи, которая может пропускать больший ток. Рискуя спойлером, он также эффективно знакомит нас с действием, которое выполняют транзисторы. В случае транзистора небольшой ток на одном из их трех выводов позволяет переключать больший ток между двумя другими выводами - точно так же, как реле, но в гораздо меньшем и более эффективном корпусе. А транзисторы - это основные строительные блоки самой современной цифровой электроники, в том числе компьютеров.

Бинарные основы

Затем Петцольд делает обходной путь, чтобы ввести базовые системы, начиная с десятичной (десять различных чисел от 0 до 9, прежде чем вам нужно добавить еще одну цифру для представления 10) до восьмеричной (у вас всего 8 цифр) полностью вниз. в двоичный, где у вас есть только нули и единицы. Он даже приводит несколько отработанных примеров. Завяжите желтую ленточку - это бинарный сигнал, имеющий только два возможных состояния, тогда как для сигнала Пола Ревира один, если по суше, два, если по морю, потребовалась пара фонарей для передачи трех возможных состояний!

Просто добавь алгебру

Двоичная система хороша для передачи информации, но чтобы иметь возможность выполнять операции с информацией, вам также понадобится логическая алгебра - способ работы с двоичными данными. Петцольд сначала знакомит с основами логической логики, а затем показывает, как вы можете объединить это с электричеством (начиная с простых схем с использованием лампочки и переключателей) для создания логических вентилей. Он показывает, как работают логические элементы И, ИЛИ и НЕ и как их можно комбинировать.

Отсюда он показывает, как создать способность складывать и вычитать, используя только логические вентили, а затем вводит осцилляторы (которые часто переключаются между двумя стабильными состояниями) и триггеры - своего рода вентиль, добавляющий память в систему.

Сборка современного компьютера

Затем Петцольд объясняет нам, как построить автоматическую счетную машину, выстраивая основные инструкции микропроцессора по одной за раз. Он представляет классическую архитектуру фон Неймана, лежащую в основе большинства компьютеров, объясняет, как работают полупроводники, а затем представляет два ранних классических микропроцессора конца 1970-х годов - Intel 8080 и Motorola 6800.

Просто добавьте программное обеспечение

Наконец, Петцольд представляет программное обеспечение, необходимое для превращения кусок кремния в Excel, Pac-Man или веб-сайт! Он начинает с объяснения функционирования типичной операционной системы, а затем показывает, как более высокие уровни абстракции могут облегчить написание программного обеспечения по сравнению с описанием всего в машинном коде, что чрезвычайно многословно и утомительно. Затем он завершает книгу, объясняя, как работает компьютерная графика и как она используется для создания графических пользовательских интерфейсов.

Резюме

Если вы просто хотите, чтобы пара метафор имела представление о том, как работают элементы вычислительной техники, эта книга не для вас. Вместо того, чтобы довольствоваться объяснениями типа «ОЗУ - это как столешница, а жесткий диск - как шкаф для документов» Петцольд находит время, чтобы дать подробное и подробное введение во внутреннюю работу современных компьютеров.

Необычно в этой книге полнота и доступность. Если вы готовы потратить время на проработку 380 страниц, вы больше никогда не будете так думать о компьютере!

Первоначально опубликовано на https://flatironschool.com.