Внутри коробки

Если снять боковую крышку с системного блока, внутри окажется совсем не то, чего ждёшь. Никаких шестерёнок, никакой мигающей загадочной начинки. Плоские зелёные пластинки, проводки, вентилятор и несколько чёрных квадратиков.

И вот эта скучная штука играет в игры, показывает видео, решает уравнения и разговаривает с тобой. Как?

Ответ странный: компьютер не умный. Он умеет очень мало — примерно как калькулятор. Зато делает свои простенькие действия чудовищно быстро и никогда не устаёт, не отвлекается и не ошибается по невнимательности.

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

Всё на свете — это включено и выключено

Внутри компьютера нет букв, картинок и звуков. Там есть только миллиарды крошечных выключателей. Каждый может быть включён или выключен. Всё.

Выключен — это 0. Включён — это 1. Такую запись называют двоичной.

Любое число, буква и картинка внутри — это ряды включённых и выключенных выключателей
Любое число, буква и картинка внутри — это ряды включённых и выключенных выключателей

Как из этого получаются числа? Так же, как у нас из десяти цифр получаются любые числа, только цифр всего две. Один выключатель хранит числа 0 и 1. Два выключателя — уже четыре варианта: 00, 01, 10, 11. Восемь выключателей — 256 вариантов. Каждый новый выключатель удваивает количество вариантов.

Буквы — это тоже числа. Люди просто договорились: такое-то число означает букву «А», такое-то — «Б». Картинка — таблица из точек, у каждой точки записано, сколько в ней красного, зелёного и синего. Звук — много-много замеров громкости, десятки тысяч в секунду.

Почему выключатели, а не что-то поудобнее? Потому что «есть ток / нет тока» — самое надёжное различие, которое можно сделать из электричества. Полутона путались бы, а два чётких состояния не перепутаешь.

Три главные детали

Внутри много всего, но по-настоящему важных частей три.

Процессор думает, память помнит недолго, диск помнит долго
Процессор думает, память помнит недолго, диск помнит долго

Процессор — тот самый чёрный квадратик. Он считает. Умеет складывать, вычитать, сравнивать два числа и выбирать, что делать дальше. Список его умений умещается на нескольких страницах — и это всё, что компьютер вообще способен делать.

Оперативная память — рабочий стол. Здесь лежит то, с чем компьютер возится прямо сейчас: открытая игра, текст, который ты печатаешь. Память очень быстрая, но забывает всё, как только пропадает электричество. Поэтому несохранённый текст исчезает при выключении света.

Диск — шкаф. Медленнее памяти, зато помнит годами и без питания. Тут живут файлы, фотографии и сами программы.

Ещё есть видеокарта — отдельный маленький помощник, который считает картинку для экрана. Она умеет ещё меньше процессора, но делает свои действия тысячами одновременно, и поэтому в играх незаменима.

Что такое программа

Программа — это список указаний. Очень подробный и очень занудный.

Программа похожа на рецепт: шаг за шагом, без пропусков
Программа похожа на рецепт: шаг за шагом, без пропусков

Похоже на кулинарный рецепт, только рецепт рассчитан на человека, который сам догадается, что «посолить» — это щепотка, а не полпачки. Компьютер не догадывается ни о чём. Ему надо объяснять всё.

Скажешь человеку «сделай бутерброд» — он сделает. Компьютеру пришлось бы написать: возьми хлеб, положи на стол, возьми нож за ручку, а не за лезвие, отрежь кусок толщиной один сантиметр...

Настоящая программа состоит из простейших команд вроде: «сложи эти два числа», «положи результат сюда», «сравни с нулём», «если больше — перейди к шагу 40». Всё, что ты видишь на экране, собрано из миллионов таких шажков.

Люди, конечно, не пишут это вручную. Программисты пишут на языках программирования — они похожи на смесь английского и математики. А потом специальная программа-переводчик превращает написанное в те самые скучные команды для процессора.

Почему компьютер не понимает, что делает

Компьютер складывает числа, но не знает, что складывает. Для него нет разницы между суммой денег, количеством очков в игре и яркостью точки на экране — это всё просто числа.

Смысл появляется только в голове человека. Это, пожалуй, главное отличие компьютера от тебя: ты понимаешь, о чём думаешь, а он — нет.

Из этого следует практический вывод. Если компьютер выдал глупость, он не «сошёл с ума» и не «решил так». Значит, в списке указаний была ошибка или ему дали неверные данные. Компьютер всегда выполняет ровно то, что ему сказали, а не то, что имели в виду.

Программисты шутят про это так:

Компьютер делает не то, что ты хочешь, а то, что ты написал.

Главное в трёх строчках

  • Внутри компьютера только миллиарды выключателей: включён — единица, выключен — ноль, и из этого собраны все числа, буквы, картинки и звуки.
  • Главных деталей три: процессор считает, оперативная память помнит, пока есть ток, диск помнит всегда.
  • Программа — это подробнейший список простых указаний; компьютер выполняет их буквально и не понимает их смысла.