Шрифт:
— А ты чего подслушиваешь?! — выругался я. — Мы тут вместо того, чтобы делом заниматься, в какие-то дебри ушли! Препарируем вопросы доверия друг к другу! Непонятно зачем!
— Но ведь это ты начал! — укорила меня Эт.
— Это Инроргн! Чёрт бы его побрал! Так, заканчиваем болтовню, тащите все свои сознания в класс, будем… будем… будем дальнюю связь разрабатывать!
— Дальнюю связь? — хором переспросили Этера и Косм.
— Да. Я вообще не понимаю, почему вы не используете астрал для связи друг с другом?! Например, я нахожусь на другом конце планеты, хочу пообщаться с тобой. Я в астрале прихожу в наше убежище, ты тоже в него приходишь и мы общаемся. Почему это не используют?
— Потому что после такого разговора ты не сможешь определить с кем ты общался: со мной реальной или с твоим представлением обо мне.
— Хгм. А как отличить? — озадачился я.
— Встретиться позднее, в живую, и поговорить.
— Не, это нам не подходит. Нужно придумать способ как разобраться кто перед тобой: человек или представление.
— И что это может быть за способ?
— Хм… Например, пароль, который гарантировано никто не запомнит. Мы пишем тысячу различных чисел на листе бумаги. Делаем два одинаковых таких листа. Потом при встрече в астрале проверяем друг друга. Начинаем со случайного: я говорю тебе: десять, ты берёшь десятое число от начала блокнота и смотришь что в этой клетке написано. Например шесть. Смотришь шестнадцатое и говоришь мне: восемь. Я отсчитываю восемь клеток от шестнадцатого… И так далее. Шага три-четыре сверяемся: одинаковое ли у нас с тобой число или нет.
— А если не одинаковое?
— Это значит, что или произошла ошибка или перед тобой тот, кто не владеет такой же табличкой.
— А как проверить этот метод?
— Экспериментально, как же ещё?
— Давай лучше к шине CPU вернёмся!
Коллапс
Уже начав писать программу саморепликации для Орион-128 я понял, что здесь нужен реестр свободных CPU. Иначе никак не понять: есть ли в доступе свободные CPU и какой CPU выбрать для того, чтобы его запустить в работу.
Помимо такого реестра, ещё пришлось реализовать ассемблерную команду, выполняющую атомарный запуск CPU в работу.
Устранив эти недоработки, завершить программу саморепликации оказалось очень просто: программа плетения одного ядра, каждый раз, как доделает свою работу, заглядывала в список свободных CPU и запускала на них себя же.
Этот алгоритм продолжается, пока количество CPU не станет равно 2 в степени 128. Причём тот CPU что уже начал плестись, считается готовым, чтобы программа гарантировано могла остановиться.
Загрузив счётчик CPU начальным значением близким к 2 в 128 степени, мы сделали множество тестовых прогонов и сплели таким образом шестьдесят четыре стартовых ядра. Все произведённые тесты убедили нас, что всё работает и готово к запуску.
– “Помолясь усердно богу он отправился в дорогу” — процитировал я фразочку из детского стихотворения.
— Начинаем? — спросила Эт.
— Осталось два маленьких штриха.
— Какие?
— Подпустить огоньку и водичкой разбавить. Это же твоя идея.
— О, я и забыла!
— Я добавлю искорку, а ты льдинку?
— Ага!
Завершив все подготовительные работы, мы перезапустили Орион-128 и шестьдесят четыре ядра начали плести новые шестьдесят четыре ядра.
Итоговая сложность каждого CPU получилась довольно высокой: на плетение одного ядра тратится около двух часов процессорного времени. Из за того, что сложность некоторых шин по мере их построения растёт нелинейно, то плетение новых слоёв будет происходить всё медленнее и медленнее. В конечном итоге, каждое ядро, по расчётам, будет изготавливаться около пяти часов, а на изготовление всех 128 слоёв Орион-128 уйдёт около двадцати дней.
Запустив репликацию в работу, мы прождали два часа и убедились, что седьмой слой ядер доплёлся и их стало сто двадцать восемь.
Я забрал одно ядро на нужды индикации и запустил на нём программку, показывающую сколько CPU уже сделано в виде этакого прогресс-бара, путешествующего от единицы до 128.
— А чем мы займёмся теперь? — спросила Эт.
— Таблицей символов. Нужно перестать разрабатывать программы в кодах и хотя бы писать их на ассемблере. Для этого будем учить наш компьютер выводить цифры и буквы.
— А куда он их будет выводить?
— В плетение связи. С его помощью я уже умею рисовать линии перед глазами. Нам нужны шрифты со всеми демонскими буквами, цифрами, а ещё с моим родным русским алфавитом. Заодно и алфавит древних нужно поддержать.
— Алфавит древних?
— Ага, я зря что ли рисунки их символов коллекционирую и переписываю все найденные тексты?
В общем, база символов будет первой базой данных нашего компьютера. По номеру символа из неё можно будет извлечь список, описывающих его линий.