Книга Фантомная отметка - читать онлайн бесплатно, автор Антон Абрамов. Cтраница 3
Вы не авторизовались
Войти
Зарегистрироваться
Фантомная отметка
Фантомная отметка
Добавить В библиотекуАвторизуйтесь, чтобы добавить
Оценить:

Рейтинг: 4

Добавить отзывДобавить цитату

Фантомная отметка

— «Риф-21», «Край-7». Выход подтверждаю. Заход на посадку по стандарту. Земля влажная, ветер справа. Без сюрпризов.

— Если вы это произнесли, значит, сюрпризы уже были, — ответил Глеб.

— Сначала на землю.

— Принял.

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

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

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

— После касания — пятнадцать минут паузы, — сказал он, не оборачиваясь. — Останутся только дежурные каналы. Корнеев, Ракитина — к сервисной. Проверите, откуда полезла идентификация. Шелест, держите резерв. Остальные по местам.

Дамир коротко ответил:

— Есть.

Таисия ничего не сказала. Ей хватило того, что он не попытался отмахнуться от второго всплеска. Это ещё ничего не объясняло, но открывало время, в котором можно было поработать без общего шума.

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

Инга сняла палец с тангенты и сказала обычным служебным тоном:

— Борт на земле. Канал рабочий.

Только после этого диспетчерская задышала свободнее.

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

— Теперь можно человеческую версию? — спросил он.

Яров повернулся к нему.

— Кратковременный сбой в служебной идентификации. На резерве борт вели штатно.

— Я это и сам заметил. Меня интересует не словосочетание "служебная идентификация", а то, почему земля молчала дольше нормы.

— Потому что у нас шёл перезапуск части сервиса.

— Во время моего внешнего прохода?

— Да.

Глеб посмотрел сначала на Ярова, затем на Ингу.

— И вы считаете это нормальным моментом для перезапуска?

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

Он кивнул. Это не был жест согласия. Скорее знак, что он услышал именно того человека, чьё мнение сейчас что-то значило.

— Хорошо. Тогда скажите прямо. На экране у вас было не то, что в эфире?

Яров ответил раньше, чем кто-то ещё успел вдохнуть:

— На экране у нас была аномалия распознавания. Она не влияла на вашу траекторию.

— Если она не влияла, вы бы не снимали внутренний заход.

На эту реплику возразить было труднее. Яров и не стал.

— Внутренний заход снят до разбора. Вы свою часть работы сделали. Дальше работаем мы.

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

— А вы что скажете?

— Скажу, что мне нужны первичные пакеты, а не формулировка для утреннего отчёта, — ответила она.

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

— Именно за ними они сейчас и идут.

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

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

— Узнаете, — сказал Яров.

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

Он вышел, не хлопая дверью. За ним тянулся запах керосина. Дамир поднялся первым.

— Пойдёмте, пока логи горячие.

Таисия встала, забрала блок, флеш-носитель и ноутбук. Когда они уже были у двери, Инга сняла гарнитуру и тихо, так, чтобы услышали только двое, сказала:

— Не ищите это в распознавании. Ищите в калибровке.

Таисия остановилась.

— Почему вы так думаете?

— Потому что распознавание называет только то, что уже кто-то положил ему на стол.

— Вы видели второй пакет?

— Я видела, как вы сохранили его раньше, чем он пропал. Этого достаточно.

Её голос не менялся. Он всегда звучал так, словно любое слово имеет цену и тратится только по делу.

— Спасибо, — сказала Таисия.

— Не тратьте время на спасибо. Если найдёте старую служебную подпись, зовите меня.

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

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

— Если Яров дал нам пятнадцать минут, значит, у нас реально десять, — сказал он. — Остальные пять уйдут на то, чтобы кто-то вошёл и спросил, нашли ли мы что-нибудь, что можно красиво назвать.

— Начнём с дампа до перезапуска, — ответила Таисия. — Потом посмотрим хвост после него.

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

— Вот, — сказал Дамир, наклоняясь к правому окну. — Смотрите на нижний заголовок.

Таисия увеличила строку.

В поле источника стояло: CAL-L / bridge_3. Ниже — версия протокола старого формата и короткая подпись, вынесенная в служебный комментарий:

sig: VE-3

— Это не имя файла, — сказала она.

— Нет. Это ручной тег. Автоматика так не подписывает.

— Что значит CAL-L?

— Legacy-контур калибровки. Старый сервисный слой, который должен жить отдельно от оперативного.

— Должен?

— Должен, — повторил он. — А сейчас, как видите, не живёт.

Таисия опустила взгляд на хвост пакета. Секунды шли всё те же: 03:14:18, 03:14:19, 03:14:20. Старый формат высоты, старый транспортный заголовок, служебный мост между legacy-контуром и рабочей картой. Это уже не было похоже на случайный мусор, попавший в новый комплекс из плохо вычищенной папки. Мусор не открывает мост, не поднимает позывной из таблицы и не приходит по времени реального события.

— Покажите, кто открыл bridge_3, — сказала она.

Дамир раскрыл журнал задач и пошёл вверх по меткам.

— Не пользователь, — пробормотал он. — Сервисный демон. Вот запуск... вот условие... чёрт.

Он отодвинулся и дал ей место у клавиатуры. Таисия быстро увеличила строку. В условии запуска стоял блок, который в текущей документации она не помнила:

meteo_profile / compare_archive / threshold: 0.91

Ниже шла ссылка на архивный кластер и длинный цифровой идентификатор события. В конце — тот же ручной тег: VE-3.

— Вы это видели раньше? — спросила она.

— Нет. В моей сборке этого демона нет.

— Значит, он живёт в наследуемом слое.

— И почему-то допущен до моста.

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

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

— Почему?

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

— Сначала скажите мне другое. Совпадение с чем именно он ловил?

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

14.10 / 03:14

У Таисии не дрогнули руки. Она уже миновала точку, где можно было позволить себе внутренний удар. Сейчас ей нужно было мыслить.

— Дайте наложение на текущую ночь.

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

— Девяносто четыре процента, — сказал он. — Вот почему компаратор проснулся.

— Он не проснулся сам. Его кто-то оставил ждать такой погоды.

Дамир посмотрел на неё и ничего не возразил.

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

— Нашли подпись? — спросила она.

— VE-3, — ответила Таисия. — Вам знакомо?

Инга положила папку на стол, раскрыла её на середине и подвинула к ним распечатку старого журнала.

— Знакомо. Это Ермолова.

В комнате стало тише, хотя вентиляция гудела так же.

— Валентина Ермолова? — уточнил Дамир.

— Да. На старых модулях она вела три контрольных контура. Первый для сухой погоды, второй для сложной воды, третий для редких сочетаний, когда система начинала врать красиво. Подписывала их по своим инициалам. VE-1, VE-2, VE-3.

Таисия посмотрела в журнал. Почерк был чёткий, узкий, без украшений. В графе комментария стояло: "VE-3 / не допускать в рабочую карту, только сравнение".

— Откуда у вас это? — спросила Таисия.

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

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

— Почему этот контур вообще оставили в системе? — спросил Дамир.

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

Таисия подняла взгляд.

— После той ночи? То есть VE-3 собрали уже после катастрофы?

— Да. Он не вёл тот борт. Он должен был предупреждать о повторении условий.

— Тогда почему система подняла саму трассу, а не просто тревогу?

— Потому что кто-то потом дотянул старый контур до нового интерфейса и не довёл работу до конца, — сказал Дамир. — Или довёл так, чтобы на бумаге всё выглядело чище.

Инга промолчала. Её молчание было красноречивее согласия.

Таисия вернулась к схеме. Теперь многое встало на место. Архивный пакет не пытался выдать себя за живую цель. Его поднимал сервисный компаратор, которому по правилам положено жить в диагностическом зеркале. Назвать позывной он смог только потому, что старая таблица распознавания ещё лежала в связке с мостом. Выбраться на общую карту след сумел потому, что кто-то когда-то не отсёк калибровку от оперативного слоя до конца. Это ещё не объясняло сам дефект в К-12. Но объясняло главное: фантом был не галлюцинацией системы и не капризом памяти. Это был тревожный след, оставленный инженером прошлого и выпущенный наружу совпадением погоды.

— Ермолова умерла три года назад, — сказала Инга, будто читая вопрос, которого никто не задал. — После её смерти старые контуры начали чистить пакетами. Часть вынесли, часть спрятали. VE-3, видимо, не убрали до конца.

— Или не захотели убирать, — сказала Таисия.

— Такое тоже бывает.

Дамир открыл журнал изменений, привязанный к bridge_3.

— Вот интереснее, — сказал он. — Контур поднимали при переносе в новую архитектуру не целиком, а кусками. Сначала компаратор, потом зеркало, потом... вот это совсем нехорошо.

— Что там?

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

— Когда?

Он пролистал вниз.

— Пять лет назад. Подпись служебная, фамилии нет. Только допуск группы.

Пять лет назад. Таисия невольно подняла глаза на Ингу. Та поняла без слов.

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

— Значит, её контур использовали после неё, — сказала Таисия.

— Или за её спиной, — добавил Дамир.

Он быстро свёл ещё одно окно и вывел сравнение погодных профилей в более грубой шкале. Линии совпали ещё отчётливее. Текущая ночь не копировала прежнюю до десятой доли, но ключевой набор для опасного сектора сходился: влажность, соль, угол сноса, провал по третьему пути, характер отражения от воды перед береговым поворотом.

— Девяносто четыре — это средний коэффициент, — сказал он. — По К-12 совпадение выше. Вот почему мост открылся именно там.

— Значит, фантом не случайный, — сказала Таисия.

— Нет. Он сработал как контрольный след на повторение условий.

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

Инга закрыла папку.

— Вот это вам и нужно сказать наверху. Точно, коротко и без того, что можно будет назвать эмоцией.

Дверь открылась ещё раз. В сервисную вошёл Яров.

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

— Пятнадцать минут закончились, — сказал он.

— Нам хватило, — ответила Таисия.

— Тогда докладывайте.

Она не встала. На такой дистанции стоять или сидеть уже ничего не меняло.

— Источник архивного следа — legacy-контур калибровки, — сказала она. — Тег VE-3. Это контрольный пакет Ермоловой, который должен жить только в диагностическом зеркале. Он активируется на совпадение погодного профиля с архивным случаем. Сегодня профиль совпал с событием четырнадцатого октября в три четырнадцать. Коэффициент по общему набору — девяносто четыре процента, по К-12 выше. Через bridge_3 архивная трасса утекла в рабочую идентификацию. Поэтому система подняла позывной и маршрут.

Яров слушал, не перебивая.

— Причина утечки? — спросил он.

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

Яров посмотрел на него.

— Формулируйте без "зачем".

— Пока без "зачем" я могу сказать только то, что мост открыт не по проекту.

— Этого достаточно.

Таисия не отвела глаз.

— Недостаточно. Главное не в имени пакета. Главное в том, почему VE-3 вообще сработал. Сектор К-12 опять даёт тот же характер условий.

— Это гипотеза.

— Нет. Это данные.

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

— Вы знали про VE-3, — сказала она.

Он выдержал паузу на секунду дольше нормы.

— Я знал, что Ермолова держала архивный компаратор.

— И не предупредили смену?

— Потому что архивный компаратор не должен выходить в рабочую карту.

— Но вышел.

— Вышел.

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

— Значит, программу на ночь останавливаем? — спросила Таисия.

Яров смотрел не на неё, а на график погоды.

— Нет.

— Почему?

— Потому что я не остановлю комплекс на основании одного вскрытого хвоста, пока не пойму физику К-12 на железе.

— Погодного совпадения и архивной отработки вам мало?

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

— А если ответ придёт в следующем полёте?

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

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

— Мне нужен полный доступ к журналу bridge_3 и к старым метеопакетам, — сказала Таисия.

— Получите.

— Без урезания.

— Без урезания, — ответил Яров. — Но за пределы смены этот разговор не выйдет, пока мы не поймём, что именно нашли.

— Поздно делать вид, что это обычный шум, — сказала Инга.

Он повернул к ней голову.

— Я и не делаю.

Инга кивнула один раз. Для неё этого хватило.

Яров посмотрел на Таисию.

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

— Почему? — спросила Таисия.

— Потому что пилоту нужен факт риска, а не мёртвое имя у него в голове на следующем заходе.

Это было первое объяснение за ночь, в котором не было защитной риторики. Только расчёт и память о том, как слова работают в кабине. Таисия не хотела с ним спорить именно сейчас.

— Хорошо, — сказала она. — Но если физика К-12 подтвердится, он должен знать всё, что влияет на доверие к картинке.

— Подтвердите — узнает.

Яров развернулся к двери, сделал два шага и остановился.

— Ракитина.

— Да?

— VE-3 Валентина оставляла не для того, чтобы кого-то разоблачать. Она оставляла его, чтобы в следующий раз система не смогла соврать молча.

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

В сервисной ещё несколько секунд никто не говорил. Дамир первым сел обратно к клавиатуре.

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

— У нас есть хуже, — ответила Таисия. — У нас есть система, которая показывает тревогу только тем, кто уже знает, куда смотреть.

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

Инга подошла к столу и положила раскрытую папку рядом с клавиатурой.

— Здесь страницы за месяц после катастрофы, — сказала она. — Ермолова отмечала, на какой погоде VE-3 должен срабатывать. Если хотите понять, чего именно она боялась, начните с этих записей.

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

"При повторении профиля К -12 верить не первому эху, а расхождению".

Таисия медленно выдохнула.

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

— Она знала, что сектор врёт, — сказала она.

— Она знала, что он врёт убедительно, — ответила Инга.

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

Дамир поднял ещё одно окно и тихо присвистнул.

— Нашёл хвост после перезапуска, — сказал он. — Тот самый, который вы поймали на шестом пульте. Он пришёл не из общей карты. Он вылез из локального зеркала прямо в ваш буфер.

— Почему в мой? — спросила Таисия.

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

Таисия посмотрела на него.

— То есть VE-3 стучится туда, где система признаёт расхождение?

— Выходит, так.

На экране под служебной строкой горело короткое подтверждение:

VE-3 / compare valid / profile match 0.94

Она долго не отводила взгляд от экрана. Прошлое не всплыло само. Его кто-то оставил ждать именно этой погоды.

Глава четвёртая. Морская тень

00:34 / РЕЖИМ: ПЕРЕОТРАЖЕНИЕ

На нужное решение Ярову понадобилось меньше минуты.

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

— Большую программу сняли, — сказал он. — До трёх часов работаем только на земле. Мне нужен ответ по К-12. Не версия, не историческая справка, не красивое объяснение. Нужна физика. Если сектор даёт тот же профиль, покажите, где именно он ломается. Если архивный контур сработал на пустом месте, докажите это так же быстро.

Он перевёл взгляд на Дамира.

— Сможете поднять морской модуль в сыром режиме?