Джордж и код, который не взломать
Шрифт:
– Добро пожаловать, Анни! – Эти слова Космоса появились на старинной рулонной компьютерной бумаге с дырочками по краям. Разговаривать он не умел, так что ему приходилось печатать. – Рад снова тебя видеть.
Математические законы
У Вселенной есть удивительное свойство: в ней всё, от планет до лучей света и звуковых волн, подчиняется математическим законам, и мы можем предсказать её поведение путём математических расчётов.
Вычислительная машина позволяет воспроизвести то же самое в обратном порядке: мы разрабатываем и собираем совокупность элементов, которые будет функционировать согласно математическим законам по нашему выбору. Мы позволяем этой машине вести себя естественно («оперировать»), она производит расчёт и выдаёт нам ответ. Если теоретический план машины, её конструкция и наши измерения достаточно точны, то мы можем рассчитывать, что точным будет и полученный в итоге ответ.
В наши дни мы привыкли к тому, что компьютер можно запрограммировать и он вычислит всё что угодно, если ему хватит памяти и мощности процессора, а сами программы – это такие же данные, как любые другие. Однако чтобы компьютеры стали такими, им понадобилось пройти долгий путь…
Очень
Еще во II веке до нашей эры в Греции был сконструирован Антикитерский вычислительный механизм, воспроизводивший обращение Солнца, Луны и планет с помощью вращающихся шестерней. Создатель Антикитеры провел аналогию между небесными телами и бронзовыми шестернями, сцепленными в сложный механизм таким образом, чтобы они точно отражали взаимное расположение этих тел в небе в разные моменты времени. Поскольку Антикитерский механизм основан на аналогии с конкретной физической системой, его можно считать примером аналогового вычислительного устройства. Ещё один пример такого устройства – линейка с выдвижной центральной шкалой для расчёта логарифмов, то есть логарифмическая линейка. Она была изобретена ещё в XVII веке и широко применялась до 1970-х годов, когда появились карманные электронные калькуляторы.
Однако у аналоговых вычислительных устройств есть известные ограничения. Главный их недостаток состоит в том, что аналоговый компьютер может решать с определённой точностью только один тип задач.
Для решения новой задачи может потребоваться другой математический метод, а значит, другая аналогия, другое устройство и другой механизм.
Люди же подходят к решению задач иначе. Человек может, скажем, написать ряд уравнений, а потом шаг за шагом преобразовать их в другие уравнения с помощью математических правил. Это хорошо знают школьники, решающие квадратные уравнения. Для такого подхода к решению задач требовался новый вид вычислительных устройств.
Паровой компьютер!
Появились и другие механические вычислительные устройства: в XVII веке «суммирующая машина» Паскаля была поистине революционным изобретением. А в 1837 году Чарльз Бэббидж придумал «аналитическую вычислительную машину», которая (если бы её удалось построить) стала бы первым программируемым компьютером: программы и данные загружались бы в неё посредством перфокарт, в ней были бы только механические детали, и она могла бы выполнять операции подобно универсальной машине Тьюринга, – однако скорость её работы была бы в сто миллионов раз меньше, чем у современного компьютера! И она приводилась бы в действие паровым двигателем…
От Тьюринга до первых современных компьютеров
Цифровой компьютер – это машина, предназначенная для того, чтобы автоматически следовать алгоритмам – подобно человеку, но гораздо быстрее. На практике это означает ввод целого числа (возможно, очень большого) и получение на выходе другого целого числа.
Почему целые числа?
Превратить текст в числа легко – например, в Американском стандартном коде для обмена информацией (ASCII) большая буква А обозначается как 65, а маленькая z – как 122. На практике нам удобно иметь дело с дробями, имеющими определённое число знаков после запятой (то есть определённую точность) – например, 99,483. То же самое число можно представить как 0,99483 x 100 (а 100 – как 10 x 10, в математической записи – 10^2). Цифровому компьютеру остаётся только сохранить в памяти целое число 99483 и 2 – показатель степени, в которую нужно возвести число 10 (10^2).
На самом деле компьютер обычно обрабатывает двоичные цифры (биты), принимающие только значения 0 или 1; и любые данные – числа, текст, рисунки, программы – можно представить (закодировать) в виде целых чисел в двоичной записи и сохранить в памяти компьютера в виде одного большого двоичного числа.
Математические правила, по которым работают цифровые компьютеры, основаны на универсальной машине Тьюринга. Цифровой компьютер принимает программу (список инструкций для конкретной машины Тьюринга, который можно закодировать в виде большого двоичного числа) как часть входных данных и с её помощью выполняет необходимые операции для всех входных данных. То есть «компьютер» в современном понимании – это отдельно взятая машина, способная вычислить всё, что способна вычислить машина Тьюринга, если введена нужная программа и имеется достаточно времени и памяти для её реализации.
Первый компьютер был создан в 1941 году в Германии Конрадом Цузе и назывался Z3. Вместо шестерней в нём использовались телефонные реле – следовательно, он был не просто механическим, а электромеханическим, – а данные в него вводились с помощью перфоленты. Вскоре после этого в 1946 году был изобретён первый электронный цифровой компьютер общего назначения (тьюринг-полный, то есть удовлетворяющий требованию полноты по Тьюрингу) – американский ЭНИАК. Однако внутри него были не платы с микросхемами, как у нынешних машин, а большие электронные лампы. Сам компьютер был огромным: габариты 2,4 x 0,9 x 30 метров, площадь 167 квадратных метров!
В 1949 году в Кембриджском университете построили и запустили ещё один ламповый электронный тьюринг-полный компьютер EDSAC – машину для исследовательских целей. В последующие десятилетия электронные устройства неуклонно уменьшались: на смену лампам пришли транзисторы, затем интегральные схемы и микропроцессоры с множеством электронных деталей, нанизанных на кусочки кремния.
Современные компьютеры
Сегодняшний компьютер – это машина, которая, как мы считаем, должна уметь читать и хранить цифровые данные и инструкции, чтобы затем автоматически делать то, что мы от неё захотим, – когда мы нажимаем на клавиши, двигаем мышью или проводим пальцем по сенсорному экрану. Современный компьютер гораздо меньше своих предшественников.
И гораздо быстрее: по мере уменьшения электронных устройств и их деталей скорость компьютеров многократно возросла.
Однако в отличие от машины Тьюринга, придуманной в 1930-е годы, у настоящего компьютера память ограниченная – например, два гигабайта оперативной памяти. И он производит основные операции с очень большой скоростью – скажем, двадцать миллиардов шагов или «операций с плавающей запятой» в секунду. Например, когда мы дважды щёлкаем по иконке графического файла на ноутбуке, то и приложение для просмотра, и сам графический файл считываются с диска в память. Затем процессор применяет инструкции к данным рисунка, чтобы перекодировать их в нужные цветные точки и послать результат на экран, и тогда результат своего запроса мы сможем увидеть быстро.
У современного компьютера, как правило, есть постоянное хранилище (жёсткий диск), благодаря чему компьютер можно выключить, а файлы в нём сохранятся. Часто компьютер бывает связан с другими компьютерами, и обычно его можно подключить к интернету. Во многих семьях сегодня имеется персональный компьютер, а то и не один, не говоря уже о планшетах и смартфонах с доступом к интернету. Новые технологии появляются ежегодно, и, возможно, компьютеры будущего станут выглядеть совершенно иначе.
• Один байт – это единица хранения информации, состоящая из 8 бит. Одного байта достаточно для сохранения в памяти любой буквы алфавита.
• В одном гигабайте 1 073 741 824 байта.
Ни с кем не делиться личными данными
Когда с кем-то болтаешь в чате или пишешь пост в социальную сеть, не сообщай личных сведений о себе. Личные сведения – это твоё полное имя, электронный адрес, номер телефона, пароли. Если какое-то приложение или какой-то человек в сети запрашивает у тебя какие-либо из этих данных, сначала обязательно посоветуйся с родителями.
Письмо
Когда тебе в электронную почту или в чат приходит сообщение с вложением от незнакомого или малознакомого человека, учти: там может скрываться вирус или что-то гадкое. Будь осторожен!
Интернет-знакомства
Личная встреча с человеком, с которым ты познакомился в интернете, может быть очень опасна. Идти на такую встречу можно только с родителями. Помни, виртуальный «френд», сколько бы времени ты с ним ни общался, всё равно остаётся незнакомцем!
«Правда?»
Онлайн-собеседник может оказаться не тем, за кого себя выдаёт, и информация, которую ты находишь в интернете, не всегда бывает верна. Всегда проверяй полученные сведения на других сайтах, в книгах, у специалистов. Если любишь общаться в чатах, лучше делать это только с теми, кого ты знаешь в «реале»: с друзьями и родственниками.
Делись с родными
Рассказывай родителям о том, чем ты занимаешься в интернете и с кем беседуешь. Твоя жизнь в сети не должна быть тайной. Когда выходишь в интернет, старайся находиться в одной комнате с кем-то из взрослых, чтобы иметь возможность в случае чего оперативно посоветоваться.
Не скрывай своих опасений
Если что-то вызывает у тебя страх или беспокойство, если тебя или кого-то из твоих друзей в интернете подвергают травле – непременно расскажи об этом родителям!
Интернет – это, безусловно, самый обширный из открытых источников информации. Именно в интернете можно получить новейшие сведения о космосе, о техническом прогрессе, о научных открытиях. Удачной интернет-охоты – и не забывай об опасностях!
Глава пятнадцатая
В берлоге Старого Космоса было тепло, сухо и почти уютно – по крайней мере в сравнении с тем, что творилось в мире. Тихонько жужжал вентилятор, охлаждая старый компьютер и овевая ветерком комнату, так что воздух в подвале был не затхлый, как можно было ожидать, а свежий. Старый Космос объединял в себе прошлое и будущее: давно устаревшие технологии и геотермальное энергоснабжение. В прошлом году Эрик решил исследовать возобновляемые источники энергии, чтобы обеспечить бесперебойную работу своей компьютерной техники. Он предложил использовать в разных частях университета разные системы энергоснабжения, чтобы в случае аварии не выключилось всё сразу. В нынешней ситуации единственным функционирующим компьютером в здании оставался Старый Космос, получавший энергию прямиком из земного ядра. Лампочки его многочисленных узлов ярко сияли, что было особенно приятно после мрака, царившего во внешнем мире, и после зелёного цвета, в какой окрасили этот мир очки.
– Космос, мир сошёл с ума! Все компьютеры поломались, а по улицам бродят роботы. На тебя никто не нападал? – спросил Джордж. – Маленький Космос взломан – мы думаем, его взломали как раз те, кто устроил весь этот кавардак.
– Ха-ха-ха! – сказал Старый Космос. – Никому и в голову не придёт на меня напасть. Они думают, я древность. Это всё равно что нападать на египетскую пирамиду.
– Но ты же не пирамида? – ласково спросила Анни. – В смысле, не древность?
– Я выдающееся произведение технической архитектуры. – Слова на бумаге появлялись всё быстрее. – Пусть я обладаю не всеми возможностями современных машин, однако в смысле вычислительной мощности я ещё много чего могу!
– Например, отправить нас в космос? – с надеждой спросил Джордж.
– Я умею открывать портал, – с достоинством ответил Старый Космос, умолчав о том, что эта функция не была встроена в него изначально. – Благодаря одному из моих бывших пользователей…
Анни и Джордж переглянулись. Они знали, о чём и о ком идёт речь. В прошлом году старый учитель Эрика профессор Зузубин тайно воспользовался Старым Космосом в собственных целях. Одна из этих целей состояла в том, чтобы собрать на Большом адронном коллайдере лучших мировых физиков – и взорвать его. Зузубин мечтал остаться единственным учёным на Земле и заставить весь мир поверить в его теории – теории, которые Эрик давным-давно опроверг и показал их никчёмность. Ещё Зузубин пытался использовать Старый Космос как машину времени. Он хотел вернуться в прошлое и отредактировать историю, подделать свои прежние научные прогнозы так, чтобы в настоящем времени выглядеть гением. Однако изменить ход истории Зузубину не удалось: прошлое защитило себя от этого «космического пиратства», а всем учёным, в том числе Эрику, удалось покинуть коллайдер целыми и невредимыми и продолжить работу. Впрочем, в нынешних обстоятельствах те старые происки Зузубина оказались на удивление полезными!..
– Это, наверное, Зузубин научил его создавать портал, – шепнула Джорджу Анни.
– М-да, вот уж не думал, что когда-нибудь скажу Зузубину спасибо! – ответил Джордж, вспоминая седобородого старичка, чья благообразная внешность оказалась такой обманчивой. Сказать, что им двигали корыстные мотивы, было бы слишком мягко – скорее уж опасное безумие, жажда власти и мания величия.
– Но куда именно мы хотим попасть? Мы ведь не знаем, где сейчас Эрбот!
– Космос, – сказала Анни, – мы отправили нашего робота в космос, и у нас есть способ за ним следить: вот эти очки. Мы, правда, пока ещё его не увидели, но надеемся, что уже вот-вот. Скажи, ты можешь подключиться к этим очкам и сказать, куда нам направляться?
– Проще простого, – напечатал Космос. – Подключите устройство к одному из моих портов.
– Порты… порты… порты… – Анни быстро ощупывала переднюю стенку Старого Космоса, напоминавшую громадный отвесный склон, и одновременно выуживала из кармана кабель. – Если бы я была портом, где бы я находилась?
– Здесь! – воскликнул Джордж, указывая на отверстие прямо под экраном.
Анни вставила штекер в отверстие очков, а другой конец кабеля подсоединила к Старому Космосу.
Экран его стал мутно-серым, потом озарился светом. Поначалу на нём виднелись лишь расплывчатые бесцветные тени. Однако Старый Космос с помощью функции «зум» навёл резкость, а потом добавил яркости.
Джордж и Анни уставились на экран, по-прежнему не вполне понимая, что они видят. Угол зрения всё время менялся.
– Посмотри! – сказал Джордж, прищурившись. – Это тот же робот! Тот, что был на Луне и что гнался за нами сейчас… а может, и другой, но точь-в-точь такой же!
Робот на краткий миг появился перед ними на экране – и, кажется, сделал сальто!
– Они в космосе! – поняла Анни. – Потому и выглядят так странно. Эрбот плывёт в невесомости – кажется, он на каком-то космическом корабле. Космос, ты можешь определить, что это за корабль?
Старый Космос на несколько минут призадумался. Он искал источник сигнала, его микросхемы жужжали и пощёлкивали.
– Тысяча сверхновых! – вскрикнула Анни. – Там не один робот, их много!
Глядя глазами Эрбота, они видели теперь, что он находится в похожем на трубу коридоре, вдоль стен которого тянулись провода. Эрбота окружали роботы – такие же, как были на Луне и в Фоксбридже, – и они, кажется, подталкивали его в одном направлении.
– Ничего себе! – сказала Анни. – Можно подумать, Эрбота окружил отряд полиции!
– Но чьи они, эти роботы? – недоумевал Джордж. – Кому принадлежат? Кто-то же собрал на космической станции целую армию роботов!
– Космос, – спросила Анни, – а где всё это происходит?
Ждать ответа пришлось недолго.
– Вы хотите знать, где это находится или как быстро это движется? – Космосу требовались уточнения.
– Конечно, где! – сказала Анни. – Какая нам разница, с какой скоростью оно движется!