Инженер 2.1 (СИ) - Нерский Эд. Страница 109

— Зачем ты мне это рассказываешь? — возмутился я.

— Ты же попросил не заговаривать тебе зубы.

— Хгм, ну раз ты решила вспоминать что у тебя было и с кем, то и я расскажу тебе о таком же.

Хм… У меня всё наоборот. Я никогда ничего не предпринимал сам. Я всегда сидел и “ждал у моря погоды”. Все женщины, что были около меня, прочно держали инициативу в своих руках. Правда, если это сваливалось на меня, то я считал это даром и дальше старался его как-то оправдать.

— Считал даром и старался оправдать. В каком смысле?

— Считал, что это моя судьба, и пытался строить дальнейшую жизнь, исходя из этого.

— А почему расходились?

— Разошлись только с одной. Она очень быстро разобралась во мне и решила, что я никчемный ботаник и сказала: “Только не считай происходившее между нами чем-либо серьёзным”.

— Но ты сказал что их было три. Что с двумя другими?

— С ними разрывов не было. Одна из них — Светлана, у меня осталось её сознание, а другая — ты.

— А Сома?

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

— А теперь?

— Что теперь? — спросил я.

— Если теперь она будет агрессивнее?

— Поздно, место занято. Может быть это изъян воспитания, но как есть так есть. Хгм, мы уклонились от вопроса принуждения. Принуждение — это самое плохое что может встретиться в жизни. Его можно оправдать, только как ответ на агрессию.

— Вот эти изъяны мне в тебе и нравятся. Ты живёшь в каком-то, отчасти выдуманном, мире. Вернее всё время пытаешься внешний мир подстроить под свои представления о нём: “Это однозначно хорошо, а вон то — плохо”. Это и сильная и слабая твоя сторона. Сегодня я заглядывала тебе в голову и видела, что ты и правда искренне жалеешь, что убил Великого.

— Хм… А мы что-то ещё сделали, исходя из однозначно сделанного неоднозначного выбора? Я где-то решал при тебе: “это однозначно плохо”?

— Ну… — Эт немного замялась, — например, мы спасли всех пленников, поскольку это однозначно хорошо. Мы не стали разбираться с каждым, просто вытащили их всех скопом.

— Думаешь, там мог оказаться страшный мировой злодей?

— Почему бы и нет? — пожала плечами Эт.

— А ещё?

— Ещё, мы собираемся посадить кмэл. Ровно по такому же предположению: помочь несчастному дереву — однозначно хорошо.

— Считаешь, Косм может нас обманывать? — задумчиво спросил я. — Хгм… Если всё так неоднозначно вышло с Великим, то почему бы и с Космом не получилось бы иначе чем мы думаем? А что же ты молчала? Это клятва на тебя так действует?

— Нет, я подумала об этом только теперь, когда мы стали говорить о тебе.

— Роха сказала: “Он сможет защищаться”. Она говорила это так уверено, что звучало как: “Ни у кого не получится преодолеть его защиту”. То есть кмэл сможет укокошить любого мага. А после возьмёт и захватит всю Рею! И что нам теперь делать?

— Мы же его пока не посадили!

— Погоди! Что дальше? Не сажать его? Из за наших домыслов? А вдруг и у меня есть свой план по уничтожению всего живого на Рее? А ты, получается, мне помогаешь! Нет уж, эта парадигма такая же ущербная как и моя.

— Какая парадигма?

— Подход: никому не доверять, пока не будешь гарантированно убеждён, что доверять можно. Всё равно рано или поздно, а от недостатка информации придётся когда-то положиться на свои чувства.

Если говорить о кмэле, то я не чувствую, что посадить его чревато какими-то большими неприятностями. И в линии будущего я заглянул.

Предположим, что Роха ведёт свою игру с нами. Мало того, я думаю, что это так и есть, ведёт! Ну и пусть себе! Главное чтобы это не была игра против нас. Узнать об этом наверняка мы сможем только сколько-то пройдя у неё на поводу. С её помощью мы уже получили довольно много важных данных, и, если считать, что, помогая ей, мы создаём себе союзника, то кмэл, как наш союзник, возможно будет очень полезен нам в борьбе с эльфами. Если же кмэл окажется врагом, то так тому и быть: будем воевать и с ним.

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

Вероятность того, что мы всё время делаем что-то неправильное, в любом случае есть, но она по совокупности мала. Кроме того, то, на что мы делаем ставки ведь тоже никуда не девается.

— А что такое вероятность? — всплыл в наших мыслях Косм.

— А ты чего подслушиваешь?! — выругался я. — Мы тут вместо того, чтобы делом заниматься, в какие-то дебри ушли! Препарируем вопросы доверия друг к другу! Непонятно зачем!

— Но ведь это ты начал! — укорила меня Эт.

— Это Инроргн! Чёрт бы его побрал! Так, заканчиваем болтовню, тащите все свои сознания в класс, будем… будем… будем дальнюю связь разрабатывать!

— Дальнюю связь? — хором переспросили Этера и Косм.

— Да. Я вообще не понимаю, почему вы не используете астрал для связи друг с другом?! Например, я нахожусь на другом конце планеты, хочу пообщаться с тобой. Я в астрале прихожу в наше убежище, ты тоже в него приходишь и мы общаемся. Почему это не используют?

— Потому что после такого разговора ты не сможешь определить с кем ты общался: со мной реальной или с твоим представлением обо мне.

— Хгм. А как отличить? — озадачился я.

— Встретиться позднее, в живую, и поговорить.

— Не, это нам не подходит. Нужно придумать способ как разобраться кто перед тобой: человек или представление.

— И что это может быть за способ?

— Хм… Например, пароль, который гарантировано никто не запомнит. Мы пишем тысячу различных чисел на листе бумаги. Делаем два одинаковых таких листа. Потом при встрече в астрале проверяем друг друга. Начинаем со случайного: я говорю тебе: десять, ты берёшь десятое число от начала блокнота и смотришь что в этой клетке написано. Например шесть. Смотришь шестнадцатое и говоришь мне: восемь. Я отсчитываю восемь клеток от шестнадцатого… И так далее. Шага три-четыре сверяемся: одинаковое ли у нас с тобой число или нет.

— А если не одинаковое?

— Это значит, что или произошла ошибка или перед тобой тот, кто не владеет такой же табличкой.

— А как проверить этот метод?

— Экспериментально, как же ещё?

— Давай лучше к шине CPU вернёмся!

Коллапс

Уже начав писать программу саморепликации для Орион-128 я понял, что здесь нужен реестр свободных CPU. Иначе никак не понять: есть ли в доступе свободные CPU и какой CPU выбрать для того, чтобы его запустить в работу.

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

Устранив эти недоработки, завершить программу саморепликации оказалось очень просто: программа плетения одного ядра, каждый раз, как доделает свою работу, заглядывала в список свободных CPU и запускала на них себя же.

Этот алгоритм продолжается, пока количество CPU не станет равно 2 в степени 128. Причём тот CPU что уже начал плестись, считается готовым, чтобы программа гарантировано могла остановиться.

Загрузив счётчик CPU начальным значением близким к 2 в 128 степени, мы сделали множество тестовых прогонов и сплели таким образом шестьдесят четыре стартовых ядра. Все произведённые тесты убедили нас, что всё работает и готово к запуску.

– “Помолясь усердно богу он отправился в дорогу” — процитировал я фразочку из детского стихотворения.

— Начинаем? — спросила Эт.

— Осталось два маленьких штриха.

— Какие?

— Подпустить огоньку и водичкой разбавить. Это же твоя идея.

— О, я и забыла!

— Я добавлю искорку, а ты льдинку?

— Ага!

Завершив все подготовительные работы, мы перезапустили Орион-128 и шестьдесят четыре ядра начали плести новые шестьдесят четыре ядра.

Итоговая сложность каждого CPU получилась довольно высокой: на плетение одного ядра тратится около двух часов процессорного времени. Из за того, что сложность некоторых шин по мере их построения растёт нелинейно, то плетение новых слоёв будет происходить всё медленнее и медленнее. В конечном итоге, каждое ядро, по расчётам, будет изготавливаться около пяти часов, а на изготовление всех 128 слоёв Орион-128 уйдёт около двадцати дней.