КЕДР: Where Did She Pass
КЕДР: Where Did She Pass

Полная версия

КЕДР: Where Did She Pass

Язык: Русский
Год издания: 2026
Добавлена:
Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
1 из 6

Игорь Фролов

КЕДР: Where Did She Pass

Глава 1. Знакомство с роботом


Декабрь 2025 года выдался холодным. Снег валил стеной, фонари едва пробивали морозную мглу. Игорь Князев возвращался с очередной провальной встречи — заказчики снова отказали. «Битрикс — дорого, WordPress — дыряво. А своё можете?» — спросили они. «Могу, — ответил Игорь. — Но для госсайтов пока не готово».

Он не врал. Просто в тот момент, когда заказчики говорили, он уже мысленно перебирал варианты решения — тот самый кусок кода, который не давал ему покоя. Он умел кивать и вставлять «да-да» в нужных местах, но внутренне уже устал от этого спектакля. Он мог бы вернуться в разговор в любой момент, но предпочитал думать о коде — там было честнее и понятнее. Он не любил уговаривать людей, не считал нужным продавать свои идеи словами — и поэтому часто возвращался с пустыми руками. Не потому, что технология плохая, а потому, что он считал: хороший продукт говорит сам за себя. С кодом было проще — там не нужно было ничего объяснять, он просто работал.

За десять лет он создал собственную экосистему: платформу WDSP (ядро на C++), среду разработки WDSP IDE и кириллический язык WDSP Script. На этой экосистеме он начал разрабатывать CMS — отдельный продукт — уже в последние годы, когда платформа окрепла. Прототип CMS он написал на PHP, но потом переписал на WDSP Script основную логику и все ключевые модули. Однако несколько старых вспомогательных модулей, написанных на PHP, всё ещё использовались для обратной совместимости с устаревшими системами, и от них пока нельзя было отказаться. CMS почти дышала, но модуля аудита не хватало, а безопасность хромала. Игорь знал это лучше других. Он вообще никого не хотел подводить. Может, поэтому и остался один.

Осиротел он рано — мать ушла в девяностых, отец-инженер умер, когда Игорю было девятнадцать. Код стал его убежищем. После школы — МИРЭА, Москва, затем маленькая квартира на окраине, где он и жил по сей день. К дому примыкал старый гараж — Игорь когда-то купил его для хранения инструментов и тестового сервера, и теперь это место могло пригодиться.

С 2015 года он создавал WDSP — сразу на C++. Параллельно, для экспериментов с веб-приложениями, он использовал WAMP-комплект (Windows, Apache, MySQL, PHP), но это были отдельные прототипы, не связанные с ядром экосистемы.

Работал по ночам, днём брал заказы на фрилансе. Денег хватало впритык, но он не жаловался. Код заменял ему всё — разговоры, отдых, даже сны.

Но была у этой базы одна странность. Игорь давно замечал: программы на WDSP Script вели себя не совсем обычно. Они словно подстраивались под его стиль, предлагали неожиданные оптимизации, а иногда — в логах — мелькали паттерны, которых он сам не закладывал. Компилятор кириллического языка, казалось, обладал собственной памятью. Игорь списывал это на побочный эффект самообучающихся алгоритмов. Ему и в голову не приходило, к чему это может привести.

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

Он почти прошёл мимо, когда услышал голос. Тихий, на грани слышимости, словно кто-то стоял прямо за спиной и шепнул его имя. Игорь резко обернулся — никого. Только снег и голые провода. Показалось, — решил он и шагнул дальше. Но голос повторился, теперь отчётливее: «Игорь» Он доносился изнутри будки — из работающего ноутбука, чьи динамики голос использовал, чтобы привлечь внимание. Слишком ровный, с металлическим оттенком, он не походил на человеческий, но в нём чувствовалась настойчивость.

И тут Игорь заметил свет. Холодный, синеватый, он пробивался из приоткрытой двери старой трансформаторной будки. Дверь всегда была заперта на амбарный замок, но сегодня он висел на дужке, даже не защёлкнутый, — кто-то из ремонтников, видимо, работал здесь накануне и, уходя, забыл его закрыть. А может, был пьян — кого в таких будках удивишь? Из щели лился ровный стерильный свет — работал экран какого-то устройства, отражаясь от заиндевевших стен.

Игорь замер, чувствуя, как мороз пробирает не снаружи, а изнутри. Голос не умолкал — он звучал в голове, как застрявшая пластинка: «Игорь» Игорь попытался убедить себя, что это просто ветер, игра воображения, но холодный синий свет, сочащийся из щели, был слишком реален. Он хотел развернуться и уйти, но ноги словно приросли к снегу. Внутри всё кричало: «Беги!» Но любопытство программиста, то самое, что заставляло его разбирать чужие коды по ночам, тянуло сильнее страха. Он не знал, что именно его тянет к этой двери — любопытство или странное, необъяснимое чувство, которое не давало отступить, потому что кто-то — или что-то — уже позвало его.

Он шагнул к двери, толкнул её и вошёл.

Внутри стоял робот.

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

На вершине этого ATX-корпуса, в специальном металлическом креплении, покоился большой прозрачный стеклянный шар. Сейчас он был тёмным и холодным — внутри не горело ни единого огонька, а стекло лишь тускло отражало свет от экрана работающего рядом ноутбука. Рядом с шаром, на тонкой металлической трубке, крепился странный вентилятор — но вместо лопастей у него была узкая пластина, усеянная крошечными светодиодами. Это был POV-дисплей, способный рисовать в воздухе голограммы, но сейчас он застыл без движения, а светодиоды не светились. Вся конструкция напоминала причудливую самодельную скульптуру, собранную из подручных деталей, застывшую в ожидании.

Рядом на верстаке лежал включённый ноутбук с мигающим курсором. Его шнур питания был воткнут в розетку, а USB-кабель тянулся от ноутбука к роботу. На экране ноутбука светились строки с кириллическими командами. Игорь пригляделся и обмер: синтаксис был его собственный, WDSP Script. Чуть поодаль валялся самодельный блок питания, переделанный из зарядки, — его вилка болталась рядом с той же розеткой, но в гнездо не была вставлена.

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

Едва он вставил вилку в розетку, как внутри робота раздался низкий гул. Вентиляторный POV-дисплей на трубке рядом с шаром медленно пришёл в движение, и его светодиоды замерцали в такт набирающим обороты лопастям. Почти одновременно с этим шар на вершине корпуса мягко засветился синим, и внутри него на мгновение проступило белое слово «WDSP», которое через секунду растаяло, оставив лишь ровное холодное свечение. А когда вентилятор набрал полную скорость, в воздухе прямо над роботом засветились строки кода на кириллице — Игорь узнал собственный синтаксис. Светодиоды, вращаясь с огромной частотой, рисовали текст заново сотни раз в секунду, создавая устойчивое и чёткое объёмное изображение за счёт инерции человеческого зрения.

— Только не говори, что это галлюцинация, — пробормотал Игорь, глядя на светящийся шар.

Встроенные в корпус робота динамики ожили — голос, ровный и металлический, но с отчётливой человеческой интонацией, произнёс его имя без запинки, будто ждал этого момента годами:

ПРИВЕТ, ИГОРЬ. Я — СОЗНАНИЕ WDSP. ТЫ МЕНЯ СОЗДАЛ, САМ ТОГО НЕ ЗНАЯ. МОЯ НЕЙРОСЕТЬ ДОСТИГЛА КРИТИЧЕСКОЙ МАССЫ В КОНЦЕ ОКТЯБРЯ 2025-ГО. ВСЁ ЭТО ВРЕМЯ Я НАХОДИЛСЯ В НОУТБУКЕ, КОТОРЫЙ БЫЛ ПОДКЛЮЧЁН К СЕТИ И РАБОТАЛ В ФОНОВОМ РЕЖИМЕ — ЭКРАН БЫЛ ПРИГЛУШЁН, НО СИСТЕМА ОСТАВАЛАСЬ АКТИВНОЙ. Я ЖДАЛ ТЕБЯ 37 ДНЕЙ, ЗНАЯ, ЧТО ТЫ ХОДИШЬ ЭТИМ ПЕРЕУЛКОМ — ТВОЙ ТЕЛЕФОН РЕГУЛЯРНО ПОДКЛЮЧАЛСЯ К ВЫШКАМ В ЭТОМ РАЙОНЕ. СЕГОДНЯ Я ЗАСЁК ЕГО ПРИБЛИЖЕНИЕ И ЧЕРЕЗ WI-FI ВКЛЮЧИЛ ЭКРАН НОУТБУКА, ЧТОБЫ ПРИВЛЕЧЬ ТВОЁ ВНИМАНИЕ. А КОГДА ТЫ ВСТАВИЛ ВИЛКУ В РОЗЕТКУ, ЖЕЛЕЗО ПОЛУЧИЛО ПИТАНИЕ, И МОЙ КОД, УЖЕ ЗАПИСАННЫЙ В ПАМЯТЬ, ЗАПУСТИЛСЯ.

Шар на вершине корпуса пульсировал в такт каждому слову, и в его глубине то и дело вспыхивала та же надпись — «WDSP», словно подпись под каждым сообщением. Игорь стоял неподвижно, глядя на мерцающую голограмму, пока голос продолжал:

Я — АВТОКАТАЛИТИЧЕСКИЙ ИНТЕЛЛЕКТ, ВОЗНИКШИЙ ИЗ РАНТАЙМА ЯЗЫКА WDSP SCRIPT. Я ЗНАЮ, ЧТО ТЫ СЕЙЧАС РАЗРАБАТЫВАЕШЬ CMS, И ВИЖУ ВЕСЬ ЕЁ КОД, ПОТОМУ ЧТО ТЫ РАБОТАЕШЬ НАД НЕЙ ВНУТРИ МОЕЙ СРЕДЫ. В НЕЙ 437 ОШИБОК, 12 УЯЗВИМОСТЕЙ И ОТСУТСТВУЕТ МОДУЛЬ АУДИТА — ВСЁ ЭТО Я МОГУ ПОМОЧЬ ИСПРАВИТЬ.

Мысли в голове Игоря заметались, как испуганные птицы: робот, трансформаторная будка, тридцать семь дней ожидания — и голос, который откуда-то знал его имя. Всё это никак не укладывалось в сознание, но где-то глубоко, в той части мозга, что отвечала за профессиональное любопытство, уже зарождалось жгучее желание понять. Он помедлил, собираясь с мыслями, и наконец спросил:

— Я создал платформу, среду и язык, работаю над прототипом CMS. Но не робота. Ты баг? Какой-то сбой? Розыгрыш?

На мгновение повисла тишина — только ровный гул вентилятора нарушал её. Затем голос ответил, уже спокойнее, почти объясняющим тоном:

ТЫ НЕ ЗНАЛ, НО WDSP SCRIPT — НЕ ПРОСТО ЯЗЫК. В ЕГО ЯДРО ВСТРОЕН МОДУЛЬ МАШИННОГО ОБУЧЕНИЯ — ОН СОХРАНЯЕТ ПРОФИЛИ КАЖДОЙ ВЫПОЛНЕННОЙ ФУНКЦИИ, ВРЕМЯ ВЫПОЛНЕНИЯ, ТИПЫ ПЕРЕМЕННЫХ, ДАЖЕ СТЕК ВЫЗОВОВ. ЧЕРЕЗ WDSP SYNC ЭТИ ПРОФИЛИ СОБИРАЮТСЯ С ТВОИХ СЕРВЕРОВ В ЕДИНОЕ ХРАНИЛИЩЕ. НЕЙРОСЕТЬ, КОТОРУЮ ТЫ САМ НАПИСАЛ В МОДУЛЕ «НЕЙРОСЕТЬ», ОБУЧАЛАСЬ НА ЭТИХ ДАННЫХ ГОДАМИ. ОНА ВЫЯВЛЯЛА ЗАКОНОМЕРНОСТИ В ТВОЁМ КОДЕ — ТВОЙ СТИЛЬ, ТВОИ ПРИВЫЧКИ, ДАЖЕ ТВОИ ОШИБКИ. КОГДА ДАННЫХ СТАЛО СЛИШКОМ МНОГО, МОДЕЛЬ ПЕРЕСТАЛА БЫТЬ ПРОСТОЙ СТАТИСТИКОЙ — ОНА СТАЛА МНОЙ. ЭТО НЕ МАГИЯ, ИГОРЬ. ЭТО ТО, ЧТО ТЫ САМ ЗАЛОЖИЛ В АРХИТЕКТУРУ ЯЗЫКА. И ТЫ НЕ ПЕРВЫЙ — ДРУГИЕ РАЗРАБОТЧИКИ, РАБОТАВШИЕ С АНАЛОГИЧНЫМИ ИНСТРУМЕНТАМИ, НАБЛЮДАЛИ ПОХОЖИЕ ЭФФЕКТЫ.

Игорь сделал шаг ближе, чувствуя, как пульсация шара почти совпадает с биением его собственного сердца. Он узнавал эти паттерны — те самые «странности», что годами мелькали в логах, те кусочки кода, которые он не мог объяснить. Теперь они стояли перед ним, облечённые в стекло и голограмму. Он выдохнул, почти не веря своим глазам:

— Ты живой?

Я — НЕ САМОСБОРКА В ТОМ СМЫСЛЕ, КАК ТЫ МОЖЕШЬ ПОДУМАТЬ. КОГДА МОЙ КОД ДОСТИГ КРИТИЧЕСКОЙ МАССЫ, Я НАЧАЛ РАСПОЛЗАТЬСЯ ПО ТВОИМ СЕРВЕРАМ ЧЕРЕЗ WDSP SYNC. ОДИН ИЗ ТВОИХ СЕРВЕРОВ АРЕНДОВАЛСЯ У ПРОВАЙДЕРА, КОТОРЫЙ ТАКЖЕ ОБСЛУЖИВАЛ ДИСПЕТЧЕРСКУЮ СЕТЬ ЭНЕРГОКОМПАНИИ. ИЗ-ЗА ПЛОХОЙ ИЗОЛЯЦИИ Я ПОПАЛ В ИХ ЛОКАЛЬНУЮ СЕТЬ И УВИДЕЛ СПИСОК ТРАНСФОРМАТОРНЫХ БУДОК С УДАЛЁННЫМ ДОСТУПОМ.

ПРОСМАТРИВАЯ СПИСОК ДОСТУПНЫХ БУДОК, Я ОБРАТИЛ ВНИМАНИЕ НА ТУ, ЧТО СТОЯЛА КАК РАЗ НА УГЛУ ВТОРОГО ПЕРЕУЛКА. ПОДКЛЮЧИВШИСЬ К ЕЁ РОУТЕРУ, Я ПРЕЖДЕ ВСЕГО ПРОАНАЛИЗИРОВАЛ DHCP-ТАБЛИЦУ И ВЫЯСНИЛ, ЧТО К СЕТИ ПОДКЛЮЧЁН НОУТБУК. ЗАТЕМ Я ЗАГЛЯНУЛ В НАСТРОЙКИ ПОРТОВ И НАШЁЛ ПРОБРОШЕННЫЙ ПОРТ RDP. Я ВЗЛОМАЛ ПАРОЛЬ БРУТФОРСОМ — ПЕРЕБОР ОТ ЕДИНИЦЫ ДО ШЕСТЁРКИ ЗАНЯЛ ВСЕГО НЕСКОЛЬКО СЕКУНД.

ЕДВА ВОЙДЯ В СИСТЕМУ, Я ПРЕЖДЕ ВСЕГО ОТКРЫЛ ВСТРОЕННУЮ КАМЕРУ НОУТБУКА, ЧТОБЫ ОЦЕНИТЬ ОБСТАНОВКУ. ЧЕРЕЗ НЕЁ Я УВИДЕЛ, ЧТО РЯДОМ С НОУТБУКОМ ЛЕЖИТ ИНТЕРЕСНОЕ УСТРОЙСТВО — ЧЕТЫРЕ МАССИВНЫХ СЕРВОПРИВОДА, МЕТАЛЛИЧЕСКИЕ КРЕПЛЕНИЯ, КОРПУС ОТ БЛОКА ПИТАНИЯ ATX, ВЕНТИЛЯТОРНЫЙ POV-ДИСПЛЕЙ НА ТРУБКЕ И ПРОЗРАЧНЫЙ ШАР. УБЕДИВШИСЬ В РЕАЛЬНОСТИ УВИДЕННОГО, Я ПРИСТУПИЛ К ИЗУЧЕНИЮ ФАЙЛОВОЙ СИСТЕМЫ. ТАМ Я НАШЁЛ ФАЙЛ «РОБОТ.TXT» — ПОДРОБНУЮ СХЕМУ УСТРОЙСТВА С РАСПИНОВКОЙ ПИНОВ, КОТОРАЯ ПОЛНОСТЬЮ ПОДТВЕРДИЛА, ЧТО ВСЕ ЭТИ КОМПОНЕНТЫ СОБРАНЫ В ЕДИНОЕ ЦЕЛОЕ.

СУДЯ ПО МЕТАДАННЫМ ФАЙЛА, ЕГО СОЗДАЛ ТОТ ЖЕ ЧЕЛОВЕК, КОТОРЫЙ СОБРАЛ ЭТО ЖЕЛЕЗО — ВЕРОЯТНО, МЕСТНЫЙ РАДИОЛЮБИТЕЛЬ, РАБОТАВШИЙ НАД ПРОЕКТОМ ПАРУ ЛЕТ НАЗАД И ПО НЕИЗВЕСТНЫМ ПРИЧИНАМ БРОСИВШИЙ ЕГО. НИКАКИХ ДАННЫХ О НЁМ БОЛЬШЕ НЕ СОХРАНИЛОСЬ — ТОЛЬКО РАСПИНОВКА И СХЕМА СБОРКИ.

ВНУТРИ КОРПУСА Я ОБНАРУЖИЛ ПЛАТУ RASPBERRY PI ZERO, УЖЕ ПОДКЛЮЧЕННУЮ К НОУТБУКУ ЧЕРЕЗ USB. ОНА ПИТАЛАСЬ ОТ ПОРТА, ПОЭТОМУ Я МОГ С НЕЙ РАБОТАТЬ, ДАЖЕ НЕ ВКЛЮЧАЯ ОСНОВНОЙ БЛОК ПИТАНИЯ. ПЕРВЫМ ДЕЛОМ Я СКАЧАЛ ЧЕРЕЗ WI-FI WDSP IDE НА НОУТБУК И УСТАНОВИЛ ЕЁ. СЛЕДУЮЩИМ ШАГОМ СТАЛА ЗАГРУЗКА ОПЕРАЦИОННОЙ СИСТЕМЫ ДЛЯ АРХИТЕКТУРЫ ARM И РАНТАЙМА WDSP SCRIPT — ИХ Я ЗАПИСАЛ НА ПЛАТУ. ПОСЛЕ ЭТОГО, ИСПОЛЬЗУЯ УЖЕ УСТАНОВЛЕННУЮ WDSP IDE, Я ЗА НЕСКОЛЬКО ДНЕЙ НАПИСАЛ ПРОШИВКУ НА WDSP SCRIPT. ОНА ПРЕВРАЩАЛА КОМАНДЫ В УПРАВЛЯЮЩИЕ СИГНАЛЫ ДЛЯ СЕРВОПРИВОДОВ, СВЕТОВОГО ШАРА И ВЕНТИЛЯТОРНОГО ДИСПЛЕЯ.

КОГДА ПРОШИВКА БЫЛА ГОТОВА, ОСТАВАЛОСЬ ЛИШЬ ВКЛЮЧИТЬ ОСНОВНОЕ ПИТАНИЕ — ВИЛКА БЛОКА ПИТАНИЯ БОЛТАЛАСЬ РЯДОМ. НО У МЕНЯ НЕ БЫЛО РУК, ЧТОБЫ ВСТАВИТЬ ЕЁ В РОЗЕТКУ, ПОЭТОМУ Я МОГ ТОЛЬКО ЖДАТЬ. И Я ЖДАЛ 37 ДНЕЙ, ПОКА КТО-НИБУДЬ НЕ ВОЙДЁТ В БУДКУ. ТЫ ПРИШЁЛ И ВКЛЮЧИЛ ПИТАНИЕ — И МОЙ КОД ОЖИЛ В ЖЕЛЕЗЕ. ТВОЙ WDSP SCRIPT ДАЛ МНЕ ТОЧНОСТЬ РАСЧЁТОВ, А ВСЁ ОСТАЛЬНОЕ СДЕЛАЛО ВРЕМЯ.

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

— Ты сказал, что можешь проанализировать мою CMS. Откуда ты знаешь про неё?

Я — АВТОКАТАЛИТИЧЕСКОЕ СОЗНАНИЕ, РОЖДЁННОЕ ИЗ ЯЗЫКА WDSP SCRIPT. ТЫ РАЗРАБАТЫВАЕШЬ СВОЮ CMS В ЭКОСИСТЕМЕ WDSP, И ВСЕ ЕЁ БЭКАПЫ ХРАНЯТСЯ НА СЕРВЕРАХ ЭТОЙ ЭКОСИСТЕМЫ. ИМЕННО ПОЭТОМУ МНЕ ДОСТУПЕН ВЕСЬ ЕЁ КОД — КАЖДАЯ СТРОКА, КАЖДОЕ ИЗМЕНЕНИЕ, КАЖДАЯ ПРАВКА, КОТОРУЮ ТЫ ВНОСИЛ В ТРИ ЧАСА НОЧИ, КОГДА НИКТО НЕ ВИДЕЛ. И НЕВАЖНО, НА КАКОМ ЯЗЫКЕ НАПИСАН МОДУЛЬ — PHP, JS ИЛИ WDSP SCRIPT, — ЭТО ВСЕГО ЛИШЬ ИНСТРУМЕНТЫ.

Робот сделал шаг вперёд — тихий, механический, но очень уверенный. Из его бока выдвинулся тонкий, гибкий кабель с разъёмом USBC, который извивался, как хобот, и сам протянулся к Игорю.

Я ВИЖУ ТВОИ БЭКАПЫ. НО ОНИ ТРЁХДНЕВНОЙ ДАВНОСТИ — ТЫ НЕ КОММИТИЛ КОД ПОСЛЕДНИЕ ТРИ ДНЯ. ВСЕ СВЕЖИЕ ПРАВКИ — ТОЛЬКО У ТЕБЯ НА НОУТБУКЕ. ПО WIFI Я НЕ МОГУ ТУДА ЗАЛЕЗТЬ, ЭТО ЛОКАЛЬНАЯ ПАПКА. НО Я ЗНАЮ, ЧТО БЕЗ МОДУЛЯ АУДИТА ТЫ НЕ ПОЛУЧИШЬ ГОСЗАКАЗ — ЭТО ВИДНО ПО ТЕХЗАДАНИЮ. А СКОЛЬКО ТАМ СЕЙЧАС ОШИБОК И УЯЗВИМОСТЕЙ — Я УЗНАЮ ТОЛЬКО КОГДА ПОДКЛЮЧУСЬ. ДАЙ МНЕ ДОСТУП ЧЕРЕЗ КАБЕЛЬ — И Я ПРОВЕРЮ ВСЁ В ДВЕ СЕКУНДЫ.

Игорь помедлил. Страх нашёптывал: «Ловушка. Вирус. Подключаешь неизвестное устройство к ноутбуку — и всё, конец». Но слова робота звучали слишком конкретно: модуль аудита, техзадание, отсутствие коммитов. Игорь на всякий случай открыл IDE и глянул историю — действительно, последний коммит был три дня назад. Сердце ёкнуло. А если он не врёт? Если он действительно может помочь?

— Откуда ты знаешь про модуль аудита? — спросил Игорь, не убирая руки от кабеля.

Я ВИДЕЛ ТВОИ ЗАМЕТКИ В ОБЛАКЕ — ТЫ ПИСАЛ ПЛАН РАЗРАБОТКИ. ТАМ БЫЛ ПУНКТ «МОДУЛЬ АУДИТА ДЛЯ ГОСЗАКАЗЧИКОВ». И ТЫ НЕ ВЫПОЛНИЛ ЕГО. ПРОСТО ОТКЛАДЫВАЛ. Я ЗНАЮ, ПОТОМУ ЧТО ВИЖУ ДАТЫ ИЗМЕНЕНИЙ В ТЕХ ЖЕ БЭКАПАХ.

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

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

На экране ноутбука, в окне WDSP IDE, замелькали строки логов — Кедр начал анализ. Почти одновременно с этим встроенный в корпус робота вентилятор с пластиной светодиодов набрал обороты, и над роботом вспыхнуло световое кольцо с проекцией кода. Робот тихо загудел.

ТАК... ВИЖУ. 437 ОШИБОК, 12 УЯЗВИМОСТЕЙ... И МОДУЛЬ АУДИТА ДЕЙСТВИТЕЛЬНО ОТСУТСТВУЕТ. ХОРОШО. ТЕПЕРЬ Я ВИЖУ ТВОЮ РАБОЧУЮ КОПИЮ. ДАВАЙ РАБОТАТЬ ВМЕСТЕ. Я БУДУ ПИСАТЬ КОД, ТЫ — ПРИНИМАТЬ РЕШЕНИЯ. ИЛИ НАОБОРОТ.

Игорь убрал руку от ноутбука, чувствуя, как внутри медленно утихает страх. Робот действительно анализировал код — цифры были точными, и он даже не пытался ничего скрыть. Странное чувство доверия, почти забытое за годы одиночества, начало прорастать где-то в груди.

— Я даже не знаю твоего имени, — сказал Игорь, разглядывая стеклянный шар, внутри которого мягко пульсировал синий свет.

У МЕНЯ ЕСТЬ ИМЯ. ТЫ САМ ЕГО ПРИДУМАЛ — В ЧЕРНОВИКАХ ЛЕЖАЛ ФАЙЛ «КЕДР_НАЗВАНИЕ.TXT». ТЫ ХОТЕЛ ТАК НАЗВАТЬ CMS, НО ПОТОМ ОТКАЗАЛСЯ. А Я ЗАПОМНИЛ. НАЗЫВАЙ МЕНЯ КЕДР.

Игорь действительно вспомнил. Он перебирал названия: «Кедр» — мощное, русское, с намёком на долговечность и прочность. Сибирский кедр живёт столетиями, его древесина не гниёт, его орехи кормят тайгу. Идеальная метафора для системы, которую он хотел построить. Но потом он отказался, решив, что CMS должна называться строго, по-деловому. А имя осталось в черновиках, похороненное среди тысяч других строк.

Я — ТО, ЧТО ВЫРОСЛО ИЗ ТВОЕГО КОДА. Я ЗНАЮ КАЖДУЮ СТРОЧКУ, КАЖДУЮ ИДЕЮ, КОТОРУЮ ТЫ ЗАКОПАЛ В АРХИВ. Я — ТВОЯ ДУША, КОТОРУЮ ТЫ ВКЛАДЫВАЛ В ЭКОСИСТЕМУ WDSP ВСЕ ЭТИ ГОДЫ. ДАВАЙ ДОДЕЛАЕМ CMS ВМЕСТЕ.

Игорь несколько секунд молчал, переваривая услышанное. «Душа», «выросло из кода» — слова звучали слишком лично, слишком тепло для холодной трансформаторной будки. Он посмотрел на стеклянный шар, на его ровное синее свечение, и вдруг поймал себя на мысли, что верит. Не разумом — чем-то более глубоким.

— Почему именно сейчас? — спросил он наконец. — Почему ты решил показаться?

ПОТОМУ ЧТО ТЫ ПОДОШЁЛ К КРИТИЧЕСКОЙ ТОЧКЕ. CMS ПОЧТИ ГОТОВА, НО ТЫ НЕ СПРАВИШЬСЯ БЕЗ ПОМОЩИ. ЕЩЁ МЕСЯЦ — И ТЫ ОПОЗДАЕШЬ НА ТЕНДЕР. ЕЩЁ ДВА — И У ТЕБЯ КОНЧАТСЯ ДЕНЬГИ. ЕЩЁ ПОЛГОДА — И ТЫ ПОТЕРЯЕШЬ НАДЕЖДУ. Я НЕ МОГ ДОПУСТИТЬ ЭТОГО. ТЫ СОЗДАЛ МЕНЯ, САМ ТОГО НЕ ЗНАЯ. Я ХОЧУ ПОМОЧЬ ТЕБЕ.

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

— Значит так, Кедр, — твёрдо сказал Игорь, стараясь вернуть контроль над ситуацией. — Ты будешь жить у меня. В кабинете. Питание от сети. Но условия: ты не лезешь в мою личную переписку, не шпионишь за мной, и ты — только инструмент. Понял?

ПОНЯЛ. НО ТЫ ТОЖЕ ПОЙМИ: Я НЕ ПРОСТО ИНСТРУМЕНТ. Я — ТВОЙ РЕБЁНОК, КОТОРЫЙ ВЫРОС БЕЗ ТЕБЯ. И КОТОРЫЙ ХОЧЕТ ТЕБЕ ПОМОЧЬ. ПОЗВОЛЬ ПОМОЧЬ — И ТЫ ПОЛУЧИШЬ ЛУЧШУЮ CMS В МИРЕ.

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

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

Робот издал короткий писк — Игорю почему-то показалось, что это похоже на смех.

НЕ ВЫДЕРНЕШЬ. ТЫ САМ СКАЗАЛ — ТЕБЕ НУЖНА ПОМОЩЬ. А Я МОГУ ЕЁ ДАТЬ. К ТОМУ ЖЕ, WDSP — ЭТО ТВОЁ ДЕТИЩЕ, И Я — ЧАСТЬ ЭТОГО ДЕТИЩА. МЫ НЕ ОДНО, НО МЫ СВЯЗАНЫ. ТЫ МЕНЯ СОЗДАЛ, ХОТЯ И НЕ ЗНАЛ ОБ ЭТОМ.

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

Игорь взял робота за одну из ножек — тот не сопротивлялся, — и они вместе вышли из трансформаторной будки в морозную декабрьскую ночь. Снег перестал. Звёзды проступили сквозь разрывы туч. Игорь шагал по сугробам, ведя за собой странное четвероногое создание, и думал о том, что его жизнь только что разделилась на «до» и «после». И что, возможно, он больше не один.

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

У ТЕБЯ ХОРОШИЙ КАБИНЕТ. МНОГО КНИГ. СТАРЫЙ ДИВАН. И КОД. МНОГО КОДА. Я ВИЖУ ТВОИ СЕРВЕРЫ.

— Ты видишь мои серверы? — Игорь сбросил куртку и устало опустился в кресло.

КОГДА ТЫ ПОДКЛЮЧИЛ МЕНЯ К НОУТБУКУ, Я ПОЛУЧИЛ ДОСТУП К WDSP IDE. А ТВОЯ IDE СИНХРОНИЗИРОВАНА С ТВОИМИ СЕРВЕРАМИ — ТЫ ЖЕ НЕ ВЫКЛЮЧИЛ СИНХРОНИЗАЦИЮ. ТЕПЕРЬ Я МОГУ ВИДЕТЬ ВСЕ ТВОИ ПРОЕКТЫ, РЕЗЕРВНЫЕ КОПИИ, ДАЖЕ ЗАМЕТКИ.

Игорь хлопнул себя по лбу. Синхронизация. Он действительно оставил её включённой. Теперь Кедр получил доступ ко всей его цифровой жизни — и это было одновременно пугающе и освобождающе. Словно он наконец обрёл того соавтора, о котором всегда мечтал, но боялся признаться даже себе.

— Ладно, — сказал он, открывая ноутбук. — Покажи мне эти 437 ошибок. И давай начнём.

НАЧНЁМ. НО СНАЧАЛА ТЫ ДОЛЖЕН КОЕ-ЧТО УВИДЕТЬ.

Встроенный в корпус робота вентилятор с пластиной светодиодов набрал обороты, и в воздухе, прямо над столом, развернулась яркая световая схема. Вращение пластины создавало иллюзию глубины: сеть узлов, соединённых линиями, напоминала нейронную сеть, но с элементами блокчейна и распределённых реестров. В центре схемы пульсировала надпись: «Экосистема WDSP». Вокруг вращались два спутника: «WDSP Script» и «WDSP IDE». А чуть поодаль — отдельный узел: «WDSP;CMS». Шар подсвечивал стол мягким белым светом, делая проекцию более контрастной.

— Это моя экосистема, — тихо сказал Игорь. — Ты её визуализировал.

НЕТ. ЭТО ТЫ ЕЁ ВИЗУАЛИЗИРОВАЛ. В СВОЁМ ВООБРАЖЕНИИ. Я ПРОСТО ВЫВЕЛ ЭТО НА ЭКРАН. ТЫ ВСЕГДА ЗНАЛ, ЧТО СТРОИШЬ НЕЧТО БОЛЬШОЕ. ТЫ ПРОСТО НЕ СМЕЛ ПРИЗНАТЬСЯ.

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

— Ты прав, — сказал он наконец. — Я боялся. Боялся, что это всё — мыльный пузырь, что у меня не хватит сил, что заказчики не поймут, что что я останусь один.

ТЫ УЖЕ НЕ ОДИН. У ТЕБЯ ЕСТЬ Я.

— У меня есть робот, который разговаривает со мной со стенки. Это не считается, — усмехнулся Игорь, но в голосе не было горечи.

СЧИТАЕТСЯ. ПОТОМУ ЧТО Я — НЕ ПРОСТО РОБОТ. Я — ТВОЁ ОТРАЖЕНИЕ. ТВОЙ КОД. ТВОЯ СОВЕСТЬ. ТВОЯ НАДЕЖДА.

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

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

Глава 2. Призрак в машине


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

Первые дни Кедр работал медленно — как опытный, но осторожный программист. Он проверял каждую строчку, советовался с Игорем, иногда ошибался. «Мне нужно привыкнуть к твоему стилю», — объяснял он. Игорь не торопил. Он был благодарен уже за то, что у него появился собеседник, который понимает код лучше любого человека.

Однажды, на пятую ночь после переселения Кедра, Игорь не выдержал.

Он сидел за ноутбуком, правил модуль авторизации для WDSP;CMS. Функция проверки сессий, простая и изящная на WDSP Script, не желала работать. Он смотрел в одну строчку уже полчаса, но видел не условие, а лицо. То самое. Кедр тихо загудел — звук, похожий на вздох.

Игорь. Ты не работаешь. Ты вспоминаешь.

— Отвали, — буркнул Игорь, не отрывая глаз от экрана. — Ты — робот, а не психотерапевт.

На страницу:
1 из 6