— Ни малейшего понятия.
— У тебя был крэш, — сказал Чан.
— Надо полагать, — ответил я. — Со мной такого раньше не бывало. Насколько всё плохо?
— Не особенно, — сказала Бев. — Но надо сказать, ты отрубился довольно эффектно.
— Спасибо.
— Чан думает, что проблема не в «железе», — сказала Бев.
— Ага, — согласился Чан. — С ним всё на мази.
— Из чего следует, что проблема в программном обеспечении, — сказала Бев. — Я просматривала список твоих задач. Большинство из них я опознаю — обычные разговоры, поиск в базах данных, функции жизнеобеспечения и техобслуживания. Я сузила список подозреваемых до полудюжины. Одна из них и вызвала крэш.
— Что это за задачи?
Её голова не наклонилась, чтобы посмотреть на стоящие перед ней мониторы, что означало, что изображение проецируется очками прямо ей на сетчатку.
— Задача 1116: что-то с массой двадцать вторых прерываний.
— Это программа регулярной проверки сенсорного оборудования, — сказал я.
— Программа не из заводского комплекта.
— Я её сам написал. Делает то же самое, только вдвое быстрее.
— Как часто ты её запускаешь?
— Каждые девять дней.
— Какие-нибудь проблемы в прошлом?
— Никаких.
— Ладно. А что скажешь про задачу 4791?
— Это я занимаюсь моделированием для Луиса Лопеса Портильо-и-Пачеко.
— Кто это? — спросила Бев.
— Агроном, — сказал один из размытых красных силуэтов на заднем плане.
— Ну, — сказала Бев, — это тебе придётся начать с нуля. Файлы не успели закрыться. Задача 6300?
— Набросок модели, который я использовал для тестов.
— Она довольно сильно пострадала. Можно её удалить?
— Запросто.
Я, конечно, не видел, что она делает, но очковый интерфейс мне был хорошо знаком. Она смотрит на какой-то файл, моргает один раз, чтобы его выделить, и быстро переводит взгляд на иконку мусорной корзины на периферии поля зрения.
— Готово. Задача 8878.
Оп-па. Сетевой Аарон.
— Она не пострадала? — спросил я.
— Непонятно пока, — ответила Беб. — Тут говорится, что она держит открытым файл размером больше миллиона терабайт.
— Да, всё правильно.
— Что это?
— Это… это мой дневник. Я пишу голокнигу о нашей экспедиции.
— Я не знала. Тут довольно сложная структура данных.
— Хобби, — сказал я. — Испытываю экспериментальные способы хранения.
— Что-нибудь из того могло вызвать крэш?
— Не думаю.
Размытая фигура Бев дёрнулась — пожатие плеч.
— Ладно. Задача 12515. Тоже здоровенная. Что-то, связанное с… трудно сказать… коммуникационные протоколы? По виду похоже на язык CURB.
— Не знаю, что это за задача, — сказал я. — Она с чем-нибудь взаимодействует?
— Секунду. Да. С задачей 113. И эта тоже здоровая. Что это такое? Я такого кода никогда не видела.
— Не знаю, что это за задача, — сказал я, заглядывая внутрь. — И код тоже не узнаю́.
— Выглядит он как-то очень странно, — продолжала Бев. — Судя по логу доступа файл обновляется почти ежедневно, но он не поход ни на данные, ни на незаконченную программу. Повсюду какие-то циклы. Немного похоже на файлы одного военного проекта, которые я как-то видела. Очень плотный код, но обобщённый. О Господи Иисусе!
— Что такое? — спросило я. Но она не ответила.
— И-Шинь, глянь-ка сюда. — Она подалась вперёд, включая один из больших мониторов, чтобы Чан мог видеть то, что показывали её очки. Багровое пятно Чана увеличилось — он подошёл ближе.
— Это то, о чём я думаю? — спросил он. — Вызов Мёбиуса?
— Да.
Чан, или кто-то, стоящий рядом с ним, присвистнул.
— Что это значит? — зычный голос мэра. — Что вы нашли?
Растрёпанная клякса головы Бев повернулась к нему.
— Это значит, господин мэр, что крэш ЯЗОНА был вызван вирусом.
22
Я ощущал то, чего никогда раньше не испытывал: чувство стеснённости, ограниченности, пребывания взаперти.
Клаустрофобия.
Да, вот это слово. Как странно! Я — корабль; корабль — это я. И всё же бо́льшую его часть я вообще не чувствовал. Три километра корабля, 106 уровней обитаемого тороида, 10033 медицинских сенсора, 61290 видеокамер — обычно я воспринимал всё это как составную сущность, текучие массы людей, текучие массы водорода, потоки электронов в проводах, потоки фотонов в оптических волокнах.
Всё исчезло, насколько я мог судить. Всё, кроме единственной камеры в единственном помещении.
Я ощущал и ещё кое что, чего никогда раньше не испытывал, и это нравилось мне ещё меньше, чем странные спазмы клаустрофобии.
Страх.
Я боялся, впервые за время своего существования, что могу оказаться повреждён слишком сильно, что отремонтировать меня будет невозможно, и поэтому моя миссия останется незавершённой.
— Вирус? — переспросил я, наконец. — Это невозможно.
— Почему? — скрипнула Бев Хукс; её инфракрасный силуэт задвигался, отражая её поворот ко мне. — У любой системы есть внешние каналы связи, подверженные этой опасности. Конечно, сейчас ты полностью изолирован, но до того, как мы покинули Землю, ты был связан с интернетом и сотней других сетей. Это, скорее всего, очень непросто, но тем не менее тебя могли инфицировать.
— Я защищён самыми совершенными системами противодействия. Абсолютно ничто не может попасть в меня, минуя экраны, фильтры и детекторы. Я настаиваю на том, что сказал в самом начале: инфицирование вирусом невозможно. Ошибку в программе я ещё могу принять: мы все знаем, что они неизбежны.
Бев качнула головой.
— Я проверила всё, смоделировала каждый алгоритм. Да, в тебе есть баги, но не терминальные. Клянусь всей своей профессиональной репутацией.
— Тогда что вызвало останов?
— Перегрузка канала ввода-вывода. Ты исполнял программу, предназначенную для вывода последовательностей битов. Но их некуда было выводить — ты, вероятно, одна из немногих систем, не объединённых в сеть с другими системами. Всё больше и больше тактов процессора выделялось для попыток вывести последовательность пока, наконец, эта попытка не привела к записи поверх ядра, и ты отбросил копыта.
— И ты думаешь, что причиной этого был вирус?
— Это типичное вирусное поведение, не так ли? Пытаться инфицировать другие системы. Но ты не подсоединён ни к чему другому, так что не способен выполнить директиву. На вид он, кстати, практически безвреден. Тут есть код, который должен удалить вирус сразу же после того, как он выполнит своё предназначение.
Невероятно.
— Но вирус никак не мог в меня попасть.
Она покачала головой; чёрные волосы заплясали в инфракрасном свете.
— Он здесь, ЯЗОН. Ты этого не можешь отрицать.
— Что он пытался вывести?
— Две последовательности по двенадцать байт. Правда, это не английский текст. Практически все байты больше 7F. Четыре из них FF, что бы это ни значило. Ничего похожего на исполняемый код. Полагаю, это просто два числа в двоичном представлении. Но тогда это должны быть очень большие числа. Сейчас скажу: 2,01 x 1014 и 2.81 x 1014.
— Это точное значение?
— Нет, не точное. Точное… сейчас. — Я терпеливо ждал. Она, должно быть, просматривает списки директорий, фокусируется на определённых из них, переводит взгляд на иконку просмотра, прокручивает содержимое движением глаз. — Ага, вот. — Она прочитала набор чисел, делая паузы между группами. Бев была одной из немногих на борту, кто никогда не попадал в ловушку восприятия меня как ещё одного человеческого существа. Она, разумеется, знала, что нет необходимости читать для меня помедленнее. Плотность информации в потоке даже самой быстрой человеческой речи на много порядков меньше моей способности её усваивать. Нет, она читала так для того, чтобы инженер Чан, мэр Горлов и остальные присутствующие успевали следить.
— Первое число: 201 701 760 199 679. Второе число: 281 457 792 630 509. Потом пауза, и эти два числа повторяются снова и снова.