Читать книгу Чужой код. Проводник - - Страница 4

Глава 4. Отладка личности

Оглавление

Сон не принес покоя. Он был похож на дефрагментацию сломанного жесткого диска – обрывки образов, звуков, ощущений, лишенные временной логики. Зал ускорителя с его зелеными сигналами накладывался на пульсирующие узоры арканийских «кодов», лицо Вадима сливалось с иссушенным лицом Шиши, а вой слизкохода превращался в гул ускорительных колец. Сквозь все это проходила тонкая, холодная нить голоса из пустоты: >> ПРОЦЕСС ПЕРЕКОДИРОВКИ НОСИТЕЛЯ: 12%. Процент высветился в его сознании с четкостью системного уведомления. Он не знал, откуда взялась эта цифра, но поверил в нее мгновенно и безоговорочно. Как верил показаниям калиброванных приборов.

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

Он лежал и слушал. Теперь, когда острая паника отступила, его восприятие, обостренное «перекодировкой» и отваром Шиши, начало улавливать фоновые процессы мира. Он слышал не просто гул города снаружи. Он слышал его слоями. Глубокий, почти инфразвуковой грохот – возможно, работа каких-то гигантских механизмов или геотермальная активность. Над ним – частокол более высоких частот: крики, скрип, музыка, звон. И поверх всего – тончайшая, едва уловимая «песня» самой магии. Не единая мелодия, а миллиард отдельных потоков данных, пересекающихся, конфликтующих, сливающихся. Как радиопомехи мегаполиса, но в тысячу раз сложнее. Это был raw data реальности, и его мозг, сам того не желая, начал его парсить.

Шум. Белый шум с элементами структуры. Требует фильтрации. Мысль пришла холодная, чистая. Он медленно сел, опираясь на левую, здоровую руку. Голова кружилась, но уже не от тошноты, а от информационной перегрузки.

Шиши не было видно. Лев встал, пошатываясь, и сделал несколько шагов к ее рабочему столу. На нем царил творческий хаос. Среди разобранных артефактов, склянок и инструментов лежали листы грубого пергамента, испещренные схемами. Он наклонился.

Это были не рисунки. Это были алгоритмы. Примитивные, с точки зрения земного программирования, но узнаваемые. Циклы, обозначенные спиралями, условия ветвления – значками, похожими на раздвоенные стрелки, переменные – вписанными в кружки рунами. Он видел схему «теплового импульса» – банальный нагревательный контур с кучей избыточных проверок на стабильность потока манны. Рядом – что-то посложнее, «кинетический толчок» с вложенным циклом для накопления энергии. Код был громоздким, неэлегантным, написанным явно методом проб, ошибок и взрывов.

Но кое-что было интереснее. На одном из листов был набросок, помеченный знаком, похожим на перечеркнутый череп. Схема была обведена в красную рамку. Лев всмотрелся. Это был… модуль принудительного чтения данных. Попытка создать «отладчик» для артефакта неизвестного происхождения. В одном из узлов схемы был явный логический разрыв – безусловный переход, ведущий в никуда, создающий петлю. Если такой скрипт активировать, он не завершится никогда, выжирая манну оператора, пока тот не умрет или не разорвет связь, рискуя психикой. Классическая ошибка новичка – бесконечный цикл.

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

– Что ты делаешь?

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

– Я… исправляю ошибку, – честно сказал Лев, откладывая стилус. – Здесь бесконечный цикл. Он убьет оператора.

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

– Откуда ты знаешь?

– Я вижу структуру. Вижу, где команда зацикливается. Тут нет условия выхода. – Он показал пальцем. – А это… сторожевой таймер. Если артефакт не подтвердит прием данных за отведенное время, скрипт аварийно завершится, не успев выжечь канал.

Шиша долго молчала, изучая его поправки. Потом хмыкнула.

– Чистый теоретик. Ты даже не знаешь, что такое «флаг завершения» в контексте эхо-кристалла Плача. Он не шлет подтверждений. Он только впитывает.

– Тогда нужен не флаг, а таймер на основе расхода манны, – немедленно парировал Лев. Его мозг работал, отбрасывая усталость. – Если скорость потребления падает ниже порогового значения и держится N тактов – значит, кристалл насытился. Цикл прерывается.

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

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

– Это не я гениален. Это… ваш подход. Он иррационален. Вы пытаетесь программировать, не зная базовых принципов программирования. Вы действуете методом тыка. У нас это называлось «спагетти-код». Его невозможно поддерживать.

– «У нас», – повторила она, присаживаясь на табурет и беря в руки исправленный лист. – В твоем мире железа и проводов. Расскажи.

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

Шиша слушала, не перебивая. Ее лицо было непроницаемым, но глаза горели тем же холодным огнем, что и при починке артефактов.

– Интересно, – сказала она наконец. – У вас не было манны. У вас было… электричество. И вы писали для него команды. А здесь манна – это и энергия, и среда исполнения, и память одновременно. Наши «коды» – не просто инструкции. Они… убеждают реальность временно изменить свои правила. Чем сложнее изменение, тем больше требуется манны и тем точнее должен быть код. А неточный код… – Она кивнула на его забинтованную руку. – Дает обратную связь. Как твоя рука.

– Прямой доступ к системным ресурсам с риском критического исключения, – перевел Лев на свой язык. – Без защиты, без sandbox. Сумасшедший дизайн.

– А что такое сэндбокс? – спросила Шиша, и в ее голосе впервые прозвучало нечто, кроме настороженности или цинизма. Любопытство. Настоящее, жадное любопытство ученого.

Следующие несколько часов пролетели в странном, симбиотическом диалоге. Лев объяснял базовые концепции информатики. Шиша набрасывала на пергаменте аналоги из мира магии, приводя конкретные, часто взрывоопасные примеры. Она показала ему «компилятор» – кристаллический шар, который транслировал простые рунические последовательности в элементарные скрипты, и «отладчик» – чашу с ртутью, в которой при активации кода возникали вихри, указывающие на узкие места и утечки манны.

Лев смотрел на это и видел не магию, а железо. Примитивное, аналоговое, но железо. Мир Аркании был гигантским аналоговым компьютером, а магия – программированием на аппаратном уровне, с прямым доступом к регистрам вселенной. Это было одновременно ужасающе и восхитительно.

– Твоя проблема, – резко оборвала поток мыслей Шиша, – в том, что твой внутренний… компилятор, твое «я» с того мира, пытается перевести мои скрипты на свой язык. Получается ерунда. Обратная задача – тебе нужно научиться писать скрипты здесь и сейчас, на нашем примитивном, глючном ассемблере. Без твоих высокоуровневых абстракций. Понял?

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

– Дай мне самый простой скрипт. Самый примитивный. Который нельзя испортить.

Шиша усмехнулась.

– «Искру». Банальное выделение тепла. Основа основ. И самая частая причина ожогов у чайников. – Она нацарапала на чистом клочке пергамента три связанные руны. – Вот он. Ввод манны тут, фокусировка тут, выпуск – тут. Попробуй. Без всей твоей философии. Просто представь, что толкаешь энергию по этой траектории.

Лев взял пергамент. Руны казались просто странными загогулинами. Он закрыл глаза, пытаясь отключить аналитическую часть мозга. Нужно было не понимать, а делать. Он представил… ток. Ток, идущий по проводу. От точки А к точке Б. Он сосредоточился на ощущении в груди – странном, новом чувстве, похожем на второе, невесомое сердце, в котором копилась энергия. Манна. Он мысленно «толкнул» ее.

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

– Отстойно, – констатировала Шиша. – Но ты не взорвался. Уже прогресс. Ты толкал слишком прямо. Магия не любит прямых линий. Она любит… узоры. Ритм. Попробуй снова. Не толкай. Нарисуй ей путь внутри себя. Как по желобку.

Лев попробовал. Второй раз искра была чуть ярче и упала на стол, оставив микроскопическое черное пятнышко. Спазм был слабее. Третий раз… четвертый… К десятой попытке он мог выдавать хилое, но стабильное искрение раз в несколько секунд. Это был невероятный, унизительный примитив. Но это работало. По правилам системы.

– Неплохо для первого дня, – сказала Шиша, и в ее голосе прозвучало что-то вроде одобрения. – Теперь твоя очередь. Ты показал мне «сэндбокс». Теоретически. А как это могло бы выглядеть здесь? Как создать… изолированную среду для тестирования скриптов?

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

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

– Свинец душит магию. Слишком плотный. Но есть обсидиан с прожилками голема-камня. Он поглощает рассеянные колебания.

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

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

Это был шар, размером с грейпфрут, собранный из полированных пластин тусклого, черного камня (обсидиана), между которыми были впаяны тончайшие серебряные нити, образующие сложную сферу внутри сферы. Несколько нитей были оборваны. Шар был мертв, но его конструкция…

– Прадед называл это «Сновидением Гебы», – прошептала Шиша, сдувая пыль. – Говорил, что внутри можно моделировать малые миры. Никто не мог его запустить. Считали бесполезным хламом. – Она подняла на Льва горящий взгляд. – Это и есть твой… сэндбокс?

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

– Да, – сказал он, и в его голосе впервые зазвучала не робкая надежда, а уверенность. Уверенность инженера, нашедшего сломанную, но перспективную деталь. – Это он. Его нужно починить. Настроить.

Шиша медленно улыбнулась. Это была не добрая улыбка. Это была улыбка алхимика, нашедшего философский камень.

– Значит, у нас есть проект, чирика. Ты учишься не взрываться. А мы с тобой чиним машину, которая, возможно, позволит нам взрываться безопасно. Или понимать, почему взрываются другие. – Она похлопала его по здоровому плечу. – Добро пожаловать в команду. А теперь иди спать. Завтра начнем с пайки. И с рассказа о том, что такое «виртуальная машина». Понятным языком.

Лев вернулся на свой матрас, но сон не шел. Он лежал и смотрел на темный потолок «Кэша», ощущая странное спокойствие. Паника, растерянность, ужас – они никуда не делись. Но поверх них лег новый слой – задача. Конкретная, сложная, инженерная задача. Починить устройство. Разобраться в системе. Написать драйвер.

Внутренний голос, холодный и четкий, будто из глубины его перепрошитого сознания, выдал новое сообщение:

>> ПРОЦЕСС АДАПТАЦИИ: УСТАНОВЛЕН БАЗОВЫЙ ИНТЕРФЕЙС ВЗАИМОДЕЙСТВИЯ.

>> ПРОЦЕСС ПЕРЕКОДИРОВКИ НОСИТЕЛЯ: 13%.

>> ОБНАРУЖЕНА ВНЕШНЯЯ СИСТЕМА АНАЛИЗА (УРОВЕНЬ: ПРИМИТИВНЫЙ). УСТАНОВКА СОЕДИНЕНИЯ…

Он не знал, что это за «соединение». С Шишей? Со «Сновидением Гебы»? С самим миром? Но он больше не боялся. Он был устройством в процессе ремонта. А у каждого устройства есть схема. И ее можно понять. Можно починить.

Можно улучшить.

Он закрыл глаза, и на этот раз сон был черным, пустым и глубоким, как среда отладки перед запуском откомпилированного кода.

Чужой код. Проводник

Подняться наверх