412 000 произведений, 108 200 авторов.

Электронная библиотека книг » Эд Нерский » Инженер 2.1 (СИ) » Текст книги (страница 34)
Инженер 2.1 (СИ)
  • Текст добавлен: 25 июня 2025, 21:44

Текст книги "Инженер 2.1 (СИ)"


Автор книги: Эд Нерский



сообщить о нарушении

Текущая страница: 34 (всего у книги 36 страниц)

Заборостроение

Произошедшее с Орион-128 я пока объясняю проснувшимся инстинктом самосохранения в появившемся существе.

Я пока не считаю, что у него есть разум, но наличие инстинктов может объяснить некоторые вещи.

Если подумать над произошедшим, то вырисовывается следующая картинка:

Появилось некое существо. Что отличает живое существо от неживого? Наличие инстинкта самосохранения! Если таковой отсутствует, то живое существо быстро становится неживым.

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

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

“Русский мужик силён задним умом!” – почему-то эта пословица всё время оказывается подходящей ко мне. “Ладно, хоть обошлось.” – другая фраза, которую я избыточно часто теперь применяю.

Итак, вспомнив о генераторе, я взял и просто остановил его. Аура Вектрона погасла. Подождав несколько минут, я запустил генератор в работу и всё, включая ауру, восстановилось. Судя по активности, Вектрон и не заметил факта временного отключения. Этот опыт окончательно подтвердил то, что Вектрон – существо, живущее в Орион-128.

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

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

Таким образом, когда нужно выделить память, программа в цикле вызывает одну и ту же ассемблерную инструкцию, пока не получит результат. Слаб помечается как “занятый” тоже аппаратно. Аппаратно же в него попадает идентификатор процессора, метка программы, которая запросила память и собственно статус блока памяти “занят/свободен”.

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

Поскольку теперь известно какой процессор занял какой слаб, то в каждом процессоре я добавил регистр, указывающий на список запрошенной им памяти. Таким образом, удалось разделить память на “своя-чужая”.

Реализовав шифратор, входами которого является выбираемый процессором адрес, а так же список привязанных к нему слабов, я смог сгенерировать исключение “доступ к чужой памяти” – если процессор обращается к памяти, которую запрашивал процесс с иной меткой.

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

Но как научить Вектрона пользоваться этим? Чтобы решить эту проблему, я исходил из того, что считал Вектрон не имеющим разума, то есть сразу отбросил пути как-то с ним договориться. А так же из того, что он – живое существо, а потому может трансформироваться под действием влияющих на него внешних обстоятельств.

Выждав когда у Вектрона будет период спокойствия, я просто взял и включил построенную систему защиты памяти, основанную на метках процессов. Сейчас этих меток всего две: 1 – Мои программы, 2 – Вектрон. Включив защиту памяти, я стал внимательно наблюдать за его аурой.

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

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

Пока я возился со всем этим, Этера и Косм написали простенький дизассемблер и перевели все программы, написанные нами в кодах в текстовый формат. Теперь мы можем вносить в них изменения.

Я периодически включал и выключал систему защиты памяти, но почему-то Вектрон никак не мог придти к тому, что для работы с памятью ему нужно использовать специально предназначенные для этого инструкции.

Выход из ситуации мне подсказала Этера.

– Если это маг, то…

– Он точно маг, ты же видела! – перебил я её.

– Если это маг, то он должен быть как-то связан и с астралом. Наши учёные считают, что астрал всегда отражает всю существующую в мире информацию.

– И что ты предлагаешь?

– Я думаю, что можно подсказать ему, собрав для него какую-то астральную картинку.

– Хгм… – сказал я, и мы стали пробовать.

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

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

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

Проделав эту работу, мы вернулись к экспериментам.

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

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

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

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

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

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

– У него получилось? – удивилась Эт.

– Похоже, что да. – прошептал я.

Я оценил расходы Вектрона на себя: ему и нужно-то было всего около десятка миллиардов ячеек памяти, да от десятка до миллиарда процессоров.

Моя система пока ограничивает только перекрёстное использование памяти, но не вводит какие-либо квоты.

На всё это заборостроение между нашей и Вектрона памятью мы убили около трёх месяцев времени.

Руки к небу!

Где-то в самом начале этого пути, я пришёл к тому, что программирование на ассемблере – это очень сложно и решил, что нам нужен другой язык программирования. Более высокого уровня. Но написать на ассемблере компилятор языка высокого уровня – это крайне сложная задача.

Я долго не решался подступиться к ней: даже простой язык, вроде какого-нибудь Lua выглядел, как нечто неподъёмное. А однажды меня осенило: LISP! Этот язык считается одним из самых мощных в мире не только потому, что абсолютно все современные технологии пришли из него, но и потому, что базовый его интерпретатор очень простой, поскольку весь его синтаксис базируется на одинаковых s-выражениях.

В моём мире когда-то даже устраивали соревнования: кто напишет самый короткий интерпретатор LISP и победители укладывались в несколько десятков строк. В общем, похоже пришла, наконец, и моя очередь поучаствовать в этом процессе и, засев за реализацию односвязных списков, я реализовал очередной диалект этого языка. Я не помнил до конца, какой набор функций является для этого языка минимальным, впрочем, это не является принципиальным.

В результате моих усилий, Орион-128 стал включать в себя средства разработки на трёх языках:

LISP – для реализации программ общего назначения;

Ассемблер;

и Shell – язык командной строки. Не мудрствуя лукаво, я реализовал три традиционных потока для данных: вход, выход и ошибки, а затем, на базе терминала сделал простой командный интерфейс: вводишь имя файла, запускается программа с введённым именем. В качестве shell я развиваю диалект языка, очень похожий на bash.

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

Теперь же, дополнительно нам удалось выяснить, что, выделив одно сознание под такие упражнения, можно открыть третье, четвёртое сознания и так далее. Есть ли тут какие-то ограничения пока непонятно.

Мы открыли у Косма и у Эт по четыре сознания и решили на этом пока остановиться. “Хорошо, но хорошего не до слёз.” – вспомнил я старую пословицу.

Успешное строительство забора между нашим софтом и Вектрона привело нас в себя. Мы вдруг задумались: “А зачем мы здесь находимся?”. А ведь на эти острова мы прибыли, чтобы посадить Космика, а не для того, чтобы без остановки заниматься своими делами! А ещё ведь есть и более важная цель – эльфы!

В общем, в один прекрасный момент, я понял, что если мы не вернёмся к делам сейчас, то не вернёмся уже никогда. Волевым усилием я отложил в сторону возню с переменными окружения процессов нашего, уже вырисовывающегося на горизонте, UNIX и вскочил, доставая зёрнышко Космика из кармана.

– Ну всё, пора! – сказал я. – Пришло время тебя прорастить!

– Я останусь один?

– Ты же умеешь приходить в наше убежище, кроме того, доступ к Орион-128 у тебя тоже есть. Чат, что мы сделали, пока не очень удобный, но его достаточно, чтобы гарантировать, что в астрале ты общаешься не со своим представлением, а с кем-то из нас. Какая тебе разница: лежишь ты в моём кармане или растёшь здесь?

– Нам нужно двигаться дальше. – подтвердила Эт, – засиделись мы здесь!

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

– Подождите, мы не попрощались! – прислал жалобную мысль Косм.

– Прощаются, когда расстаются. – строго сказал я. – А мы не расстаёмся, и не собираемся это делать!

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

– Нужно было уйти подальше от берега. – задумчиво сказала Эт.

– Хм… И правда. – сказал я. – Пока ничего не происходит, может ещё успеем?

Я зачерпнул в ладони горсть песка вместе с зёрнышком, встал и мы начали удаляться вглубь острова. Поскольку ничего не происходило, мы шли довольно спокойным шагом, не спеша. А потом, я вдруг понял, что … не чувствую свои руки!

– Косм, остановись! – попросил я. – Это ведь моё тело!

Косм не отвечал. Он не был без сознания: я чувствовал его мысли, но в них был хаос. Я попытался навести в нём порядок, но у меня не особо получалось. Выглядело так, будто Косм занят попыткой открыть ещё одно сознание и для этого разбирается с форматом хранения строк в Орион-128.

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

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

– Этера, помогай! – закричал я мысленно.

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

Моё тело потеряло всякую чувствительность и я начал заваливаться вперёд. Пытаясь удержать меня или хотя бы сместить траекторию моего падения в сторону от Косма, Эт подставила под меня плечо. Что было дальше память моя не сохранила, сознания мои выключились.

Часть 14. Вершина

Путь в пирамиды

– Ваше величество, вы не должны рисковать жизнью, вам лучше остаться в Цехине!

– Я ничем не рискую, со мной будет архимаг – отмахнулся Нэл от подчинённого.

– Тебе лучше бы не перечить королю. – посоветовал назойливому помощнику Илли, открывая телепорт в свой кабинет.

– Если бы я знал, Илли, – произнёс Нэл, дождавшись когда портал за ними закроется, – насколько это муторно быть королём, то ни за что не ввязался бы в это дело!

– Да, оборотная сторона медали есть у всего. – поддержал друга Илли.

– Что ты хотел мне показать?

– Зимний дворец.

– Зимний? Но здесь же не бывает зимы. Сезоны, да и те – очень условные.

– Бывает, просто для этого нужно перейти ближе к полюсу планеты.

– И что там, в зимнем дворце?

– Место, где можно проводить обряд пополнения. Я хочу исследовать его. Таких мест всего два в ваших владениях, ваше величество.

– Тьфу! Илли! Не надо называть меня так, здесь никого нет! Два? А где второе?

– На Земле. Но сейчас дорога туда закрыта и там нет никого, кто может провести обряд.

– Так ты разобрался с ним?

– Хочу это сделать сейчас. – Илли помолчал, – знаешь, мне кажется, что эксперимент с Землёй, который мы нечаянно провели, оказался крайне успешен.

– Эксперимент?

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

– Что ты имеешь ввиду?

– Когда мы проводили ритуал коронации, я был внутри Врат Власти. Знаешь, мне показалось, будто я нахожусь на Земле, в одной из их лабораторий, которые они показывают в своих фильмах. Без магии они вынуждены развиваться в узких рамках, поэтому они знают очень многое о том немногом что им доступно. Мы же, владея сотнями плетений, не понимаем в них ничего. Думаю, что Кольцо Призыва, на которое я хочу взглянуть сейчас, будет чем-то приблизительно таким же.

– Ты хочешь совершить обряд пополнения? Ты взял семена кмэла с собой?

– Нет. Пока что я планирую только посмотреть.

Илли выглянул за дверь, затем, дав указание не беспокоить, запер её. Завершив приготовления он открыл телепорт из которого потянуло холодом.

– Там правда что ли зима? – спросил Нэл, глядя в окно перехода.

– Конечно. Придётся греться плетениями, иначе можно замёрзнуть насмерть. Пошли?

Друзья шагнули в проход и оказались на заснеженной площади, со всех сторон окруженной пятиугольным зданием.

– Ты уже был здесь? – спросил Нэл.

– Только здесь. Я не стал туда заходить без тебя, поскольку думал, что тебе это тоже будет интересно. Ну и отвлечёт тебя от важных государственных дел.

– Временами, я теперь тоже думаю начать жрать пыльцу, как Тог. – усмехнулся Нэл.

– Один раз попробуешь и обратной дороги не будет. – нахмурился Илли.

– Я знаю, но это такая тоска! Раньше я хоть делом занимался. А теперь…

– Иди вперёд! Я потому тебя сюда и вытащил, чтобы ты развеялся.

– Погоди. А как ты оказался здесь в первый раз? Не похоже, чтобы на эту площадь можно было попасть как-то иначе, чем телепортом. Кругом только стены и только одна дверь. Но внутри ты не был.

– Сюда ведёт один из стационарных телепортов. Он вон там. – Илли показал рукой в сторону одного из углов. – Но ещё, сюда можно прилететь. Пойдём, а то холодно!

Нэл подошёл к двери и потянул за её ручку. Дверь не поддалась, но что-то громко щёлкнуло, зашипело, а затем она сама начала медленное движение наружу, плавно отъезжая в сторону.

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

– Что дальше? – спросил Нэл.

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

Илли потянул ручку и шипящий звук повторился. Дверь закрылась и… исчезла. Полотно двери вошло в проём так плотно, что не осталось никаких признаков того, что здесь недавно был проход. Казалось, что за ними была и есть только глухая стена.

– А как же мы вернёмся? – спросил Нэл.

– Телепортом. В книге написано, что изнутри дверь не открывается.

Шум воздуха прекратился и наступила тишина. Затем, спустя минуту, противоположная стена растаяла и они оказались в огромном помещении, наполненном множеством больших, в полтора-два человеческих роста, цилиндров.

– А здесь уже тепло. – с удовлетворением отметил Нэл, – Что это за штуковины?

– Вот, видишь о чём я говорил? Выглядит будто в фильмах на Земле. Это кувезы. Книга говорит, что внутри каждого из них, после обряда, появится эльф. Их здесь около пяти тысяч.

Нам бы притащить сюда сколько-нибудь учёных с Земли, может быть они смогли бы разобраться что тут к чему?

– Да, очень похоже. – согласился с другом Нэл. – А дальше?

– Теперь нужно пройти по кругу направо в другую часть здания.

– А у тёмных тоже есть такое место? – спросил Нэл.

– Да, но в другом мире. Когда откроются врата, нужно будет решить вопрос с их городом на Тефии. Если местные маги уже не сделали это за нас.

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

– Что это? – спросил Нэл.

– Трон и жертвенник.

– Жертвенник?

– В него нужно сложить собранные семена кмэла, а потом сесть на трон и попросить.

– Если всё, что нас окружает – обман, то может быть можно и здесь ритуал переписать? – сделал предположение Нэл

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

– Давай ты, ты больше читал об этом обряде.

– Хорошо, давай я.

Илли подошёл и решительно сел в кресло. А затем сразу же вскочил.

– Что? – спросил Нэл.

– Испугался. Оно зашевелилось и развернуло подлокотники. Мда. Чего это я? Это просто кресло!

Илли снова сел, положил руки на подлокотники, облокотил голову на услужливо выехавший подголовник и закрыл глаза.

Нэл тихонько подошёл и встал рядом. Прошло несколько минут и вдруг в воздухе перед креслом засветилась плоскость с эльфийскими буквами на ней.

– Не узнаёшь? – спросил Илли.

– Эм… – замялся Нэл.

– Это компьютер. На Земле такие в каждом доме. Эх, жаль, что всё это мы не считали важным и не изучали…

Так, очень интересно! А Тиар-то жив! Оказывается, демоны сделали всё, чтобы мы посчитали что убили его, а сами продолжают его где-то прятать!

– Как так?

– Ну вот, видишь, говорит, что предыдущий администратор Тиар всё ещё может войти.

Пока он жив, я не могу стать здесь администратором. Ну ладно, давай спросим, что нам можно без Тиара.

– Я не успеваю читать, очень быстро меняется текст.

– Он спросил меня о моём имени, сказал мне что запомнил его. После этого я поинтересовался у него, что он может для меня сделать. Он ответил, что без Тиара я могу только прочитать справку. Ну я и стал её читать.

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

Так! А жертвы-то приносить не обязательно! Эта коробка позади – просто мусорное ведро. В него можно выбросить результаты неудачных проб. И вообще, место, где мы находимся – это какая-то площадка для экспериментов!

Всё! Больше я ничего тут не могу найти. Нужно решить вопрос с Тиаром, чтобы продвинуться дальше. Сядь теперь ты, может что-то у тебя получится.

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

– Меня он тоже запомнил. – подал голос Нэл. – Я спросил у него про Тиара, поинтересовался: откуда он знает что Тиар жив.

– И?

– Он ответил, что знает обо всех живых существах планеты. Я спросил о том, как давно у него такие способности. Говорит, что были всегда. Кажется я теперь понял кто такой Хранитель пирамид. Это компьютер! Такой же как тут!

Нэл посмотрел на экран, светящийся перед ним, затем встал и открыл телепорт. – Пошли!

– Куда?

– В пирамиду. Я подумал, что если там такой же компьютер, то телепорт туда можно открыть по внешнему виду этого. Гляди, там он не один, а три!

– Погоди! Нужно хоть защиту активировать! Стой!

– Здесь никого нет! Не волнуйся, я заглянул в астрал прежде чем открывать переход. Иди за мной!

Нэл шагнул в портал. На всякий случай всё же активировав плетение защиты, Илли перешёл за ним.


    Ваша оценка произведения:

Популярные книги за неделю