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