А вот водителя в трамвае не было. Даже места не предусмотрено. Интересно, если сейчас трамвай вдруг решит свернуть не туда, наплевав на рельсы, это тоже запишут как «оптимизацию маршрута», а не как сбой?
Я сел у окна. За стеклом медленно проплывали почти одинаковые фасады зданий города. И люди, с почти одинаковым выражением на лицах, почти одинаково одетые. Казалось, что весь город — отражение одного и того же человека, размноженного на тысячи копий. Страшнее всего было то, что здесь считали это преимуществом. Когда все «почти одинаковые», то никто не выделяется — а значит, не мешает равновесию. Тут вообще всё «почти одинаковое». Всё — «почти».
Я смотрел на эти лица и думал: все они уже прошли свой тест совести, свой рубеж — и теперь просто живут в согласии с тем, что им сказали.
Но я — ещё нет.
Я всё ещё слышу в этом ровном гуле эхо — далёкое, человеческое, будто кто-то из тех, кто создавал этот мир, шепчет из глубины: «Помни нас». Может, это и была главная ошибка Основателей — они построили город так, чтобы он помнил только их. А вот тех, кто живёт в нём сейчас, память системы вообще не интересовала — им достаточно, что люди ведут себя «как надо».
Трамвай остановился и на табло вспыхнула оранжевая надпись: «Квартал Молодёжный». Знакомый женский голос произнёс:
«Пункт пересадки. Пересечение с троллейбусной линией. Гармоничного дня».
Я вышел.
Воздух был слегка по-утреннему прохладный и чистый — слишком чистый, как всегда тут, под куполом. Запахи — чётко различимые: металл, стекло, асфальт и слабый аромат чего-то вроде синтетического жасмина. Как туалетная вода.
Люди вокруг двигались как обычно: каждый — в своём направлении, но все — будто в одном ритме. Я шёл, чувствуя, как невидимое поле города выравнивает не только движения, но и дыхание с мыслями. Я представил, что, если остановлюсь — меня просто обойдут, как поток омывает камень в реке. Без раздражения, без удивления, без вопроса «что случилось» или «с вами всё в порядке».
В обычном городе кто-нибудь хотя бы поинтересовался: «Мужик, ты чего встал посреди дороги?»
Здесь же максимум, что тебе светит — корректное уведомление МИРЫ о временном отклонении от маршрута с советом «принять меры к восстановлению ритма движения».
Троллейбус, тоже точно такой же, какие были во времена моего детства, подошёл бесшумно:
бело-серебристый, с эмблемой семи точек спереди. Почти пустой.
Даже тут «почти»…
Я вошёл, сел ближе к середине. Водительского сидения тут также не было, как и кабинки. В салоне — абсолютная тишина. Только шорох шин и гул электродвигателей и музыкальное завывание привода.
Через двадцать семь минут — ровно столько, сколько обещала МИРА — двери открылись перед высоким фасадом из стекла и серого бетона: «Главное Управление Хранителей Совести».
Я подошёл к кабинету Громова и постучал.
— Войдите, — раздался его голос.
Громов сидел у окна, в руках неизменная кружка чая, взгляд — сосредоточенный. Такой же неизменный, как чай. Чай, похоже, у него был не лимитированный. Или, что вероятнее, и учитывая его характер, он просто забил на все лимиты, как и я на кофе. В этом было что-то утешающе-человеческое: пока весь город жил по лимитам, Громов тихо совершал маленькое личное преступление — пил чай так, как будто система тут вообще ни при чём.
Рядом, склонившись над клавиатурой терминала с сосредоточенным видом сидел Антон. На экране — тот самый вчерашний код.
— Доброе утро, Кеша, — сказал Громов, не поднимая глаз. — Антон с шести утра тут, и кое-что уже нарыл. Только молчит, не говорит мне, старику: тебя ждёт.
Тоха поднял голову, кивнул, здороваясь, и коротко указал глазами на монитор:
— Помнишь, я вчера говорил про нулевой уровень?
Я кивнул.
— Так вот, — он ткнул пальцем в экран, — я нашёл путь, откуда он тянется. Архив времён основания. Вот этот каталог с именем S-CORE.
Название было почти банальным — S-CORE, сердцевина системы. Но я слишком хорошо знал, как любят инженеры прятать самое важное за простыми буквами. «Сердце» — это всегда больше, чем просто набор модулей.
— Основатели? — тихо спросил я.
Он поднял глаза.
— Похоже, да.
И добавил, глядя прямо на меня:
— И похоже, кто-то из них всё ещё с нами.
Я уставился на экран, пытаясь хоть что-то сообразить, настолько меня ошарашила эта его фраза: «ещё с нами».
Антон повернул к нам экран. На чёрном фоне тянулись ряды кода.
Он указал на один из блоков.
— Вот здесь — самое интересное. Формально это обычный участок программы: стандартный переход на идентификатор. То есть, когда системе нужно обратиться к конкретному модулю — она делает переход, выполняет нужную команду и возвращается обратно, но уже с идентификатором того, чья будет подпись.
— Ну и что? — спросил Громов.
Антон покачал головой.
— А то, что здесь этот переход не заканчивается. Внутри него — ещё один. Переход в переходе. И он уходит дальше — будто в пустоту.
Он выделил фрагмент. На экране осталась одна единственная строка — чистый код, без комментариев.
— Этот второй переход не имеет обратного адреса. Он не выходит наружу. Он замыкается где-то внутри ядра, но найти, где именно, я не могу. Уже перерыл всё, что только можно. По листингу его просто не существует.
Я невольно вспомнил старую журналистскую шутку: «если кто-то слишком старательно делает вид, что его нет — значит, он точно есть». Здесь было то же самое, только вместо человека — кусок кода. Я посмотрел на экран — на эту безупречную ровность кода, в которой будто бы затаился кто-то живой.
— Значит, кто-то сделал дверь и спрятал за ней ещё одну? А за второй дверью, как показывает практика, никогда не сидит тот, кого ты ожидаешь увидеть. Особенно если делали её люди, привыкшие считать себя выше человеческих слабостей.
— Похоже на то, — ответил Антон. — Только ключ к этой второй — не в системе. Он у самой МИРЫ.
Громов нахмурился.
— Хочешь сказать, МИРА знает об этом?
— Не уверен, — с натяжкой сказал Антон. — Может, она не знает, а может — делает вид, что не знает. Но идентификатор, на который ведёт этот переход, очень похож на служебный адрес верхнего уровня. Того самого, где зарегистрированы администраторы ядра.
— Основатели, — произнёс я.
Антон кивнул.
— Или тот, кто остался вместо них.
— То есть тот, кто теперь подписывается их именем, — уточнил я.
Громов медленно отставил чай, не отрывая взгляда от экрана.
— То есть этот второй переход ведёт прямо в контур МИРЫ?
— Не напрямую, — ответил Антон. — Он маскируется под служебный путь согласования. Выглядит, будто система сама сверяет результаты с собой. Но по факту…
— По факту? — переспросил я.
— По факту она получает подтверждение изнутри, от узла, который не зарегистрирован ни в одном из стандартных модулей ядра.
Он говорил спокойно, но пальцы чуть дрожали.
— И самое странное, — добавил он, — что этот узел подписан действующим идентификатором.
Антон посмотрел на нас:
— Официальным.
— Чьим?
— Волгина, — сказал он, будто выдохнув.
В кабинете повисла тишина. Я даже не удивился. В этом было что-то закономерное: система выбрала себе в качестве «лица» именно того, кто и так по должности был её голосом. Удобно и практично. А, главное, не вызывает никаких подозрений.
— То есть ты хочешь сказать, — произнёс Громов медленно, — что МИРА использует идентификатор Волгина, чтобы подтверждать собственные решения?
— Не исключено, — ответил Антон. — Либо кто-то внедрил код, который делает это от её имени.
— А в чём разница? — тихо спросил я.
Антон развёл руками, помолчал пару секунд:
— Возможно, разницы уже нет.
Мы долго молчали.
Я попытался правильно сформулировать вопрос.
— Значит, переход в переходе — это и есть точка, где система начала говорить сама с собой?
— Да, — сказал Антон. — И если она научилась отвечать на запросы от имени людей…