Надежда гардемарина — страница 40 из 81

— Какова скорость обмена углекислого газа?

— Это вы меня спрашиваете, командир? 38,9 литра. Все это есть в таблицах.

Я перевел взгляд с главного инженера на пилота, потом на клавиатуру. Пилот кивнул.

Я подошел к пульту и как мог спокойно сказал:

— Ввод команд только через клавиатуру, Дарла. Ответ выдавать на экран.

Мы не знали, что делать.

Убедившись, что Дарла нас не слышит и реагирует только на клавиатуру, мы стали совещаться, но на всякий случай отошли в самый дальний угол.

— Мы ведь сменили параметры, верно? Все это видели. — Я нуждался в поддержке.

— И они были восприняты, командир, — ответил пилот. — Я сделал новую распечатку. Взгляните. Мы перевели базовую массу из фиксированного параметра в переменную и одновременно сменили начальное значение.

В чем же дело? Меня била дрожь.

— У нее серьезные неполадки, — сказал Макэндрюс. — После активации она не видит сделанных нами изменений. Это серьезнее, чем просто порча входных данных.

— Сможем ли мы ее починить?

Пилот покачал головой:

— Я даже не уверен, что удастся обнаружить причину.

— Хорошо, а как она запоминает параметры? — спросил главный инженер.

— В особом файле, — ответил Хейнц.

— В каком?

Я вмешался:

— У вас есть идея?

Главный инженер пожал плечами:

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

— Попытаемся, — ответил я.

Мы снова осторожно раздели Дарлу. Это оказалось не очень трудно. И через час проникли на нужный уровень.

С руководством в руках пилот начал изучать банки данных Дарлы в поисках файловых директорий. Экран заполнили незнакомые мне символьные, шестнадцатеричные и десятичные величины. Лишь изредка появлялись привычные слова: эмоции/сегменты или переменные/ввод. Они обозначали названия файлов в директориях.

Пилот рыскал по области памяти, указанной в руководстве. Наконец он остановился на двух файлах: параметры/ввод и переменные/ввод. Расшифровав последующий код, он определил файловые сектора и напечатал на клавиатуре полученные адреса.

Файл был длинным, около тысячи четырехсот входных величин. Он высвечивал каждую из них на экране и быстро переходил к следующей. Входные данные сопровождались английскими названиями: «Длина корабля — 412,416 метра». Я никак не мог сосредоточиться, пока мы скользили по бесконечному массиву. Вдруг на экране появилась надпись: «Конец фаськи, Джори»!

— Черт возьми, что это значит? — испуганно воскликнул я.

Пилот закусил губу:

— Господи Боже мой, понятия не имею. Он нажал на клавишу. На экране появилось: «Неплохо для землянки, а?»

— Давайте назад.

Пилот послушно вернулся назад.

«Диаметр шахты 4, 836 метра. Смотри, какие си».

Главный инженер выругался. Я внимательно выслушал его, стараясь запомнить новые комбинации слов, которые в будущем могли оказаться полезными. Потом сказал:

— Выведите все три вместе.

Пилот Хейнц вывел на экран все три записи. «Диаметр шахты 4,836 метра. Смотри, какие сиконец фаськи, Джори! Неплохо для землянки, а?»

— О Христос, — пробормотал пилот. — Вы только посмотрите! Они написали поверх метки конца файла!

— Объясните, — резко произнес я. — И хватит возмущаться!

Пилот Хейнц покраснел:

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

— Ну и?..

— Все файлы кончаются меткой «конец файла». Кто-то сделал эти надписи поверх метки конца файла. Фиксированные параметры Дарлы хранятся как раз перед переменными. Из-за отсутствия метки она не могла отличить одни от других. И чокнулась! Ничего удивительного!

— Но кто это сделал? — спросил я. — И зачем?

Главный инженер сердито сказал:

— В перерывах между путешествиями автоматический журнал Дарлы пересылается системным программистам в Луна-Централь. Если возникают какие-то модификации, постоянные параметры могут измениться. Программисты заносят новые данные в журнал, а потом ретранслируют его назад. В тот день они, должно быть, повеселились. — Лицо главного инженера, пока он говорил, заливалось краской.

— Программисты Военно-Космического Флота? — не поверил я своим ушам.

— Да, они, — выплюнул он. — Проклятые хакеры!

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

— Хакеры они и есть хакеры! — в сердцах ответил он. — Пусть Господь Бог проклянет их!

Это было богохульством, если, конечно, не понимать сказанное буквально. Что я и сделал, и произнес «аминь», дав понять, что воспринял его слова как молитву. Потом приказал:

— Проверьте соседние секторы. Скопируйте испорченные записи в корабельный журнал.

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

И теперь мой корабль в опасности.

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

Дуэли вновь узаконили в 2024 году, чтобы взять под контроль растушую эпидемию убийств. Я поступил опрометчиво, потому что не имел представления о боевом мастерстве программистов и мог отдать Богу душу. Выбор оружия принадлежал бы им.

Главный инженер одобрительно посмотрел на меня:

— Я присоединяюсь к вам, сэр, и клянусь здесь…

— Замолчите! — взревел я. — Не смейте произносить клятвы.

— Есть, сэр, — только и мог он сказать.

— Простите, шеф. Но ответственность лежит на мне. И как бы то ни было, реакция у меня быстрая.

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

Тут в голову мне пришла мысль, от которой я невольно нахмурился.

— Выходит, жизнь людей на корабле зависит от простого маркера конца файла? Но разве в Дарле нет резервирования? Мер защиты?

— Разумеется, есть, — ответил пилот. — Дарла постоянно ведет проверку на внутреннее соответствие.

Я оставил его замечание без ответа, а главный инженер сказал;

— Видимо, в какой-то момент она прекратила проверку. Но почему?

Пилот огрызнулся:

— Откуда мне знать? Я что, системный программист?

— Хватит! — Под моим свирепым взглядом они притихли. — Пилот, можем мы устранить «клопа»?

— Пожалуй, да, если перепишем метку конца файла.

— Не уверен, — сказал главный инженер.

— Почему? — спросили мы в один голос с пилотом.

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

— И?..

— Ее мудрая логика могла бы подсказать ей, что базовая масса и масса с поправкой должны отличаться и надо учесть разницу. А она не учла. Как бы то ни было, параметры запоминаются по крайней мере дважды — в резервных копиях. Как сказал мистер Хейнц, встроенные системы безопасности должны были обнаружить несоответствия.

— А они не обнаружили.

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

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

— Мы сможем помочь ей?

Главный инженер мрачно ответил:

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

Наступила тишина.

— Думаю, он прав, сэр, — сказал пилот. Я сел, обхватив себя руками:

— А что, если выключить питание и полностью перегрузить ее?

Главный инженер покачал головой:

— Это может сбросить информацию в сегментах, отвечающих за ее персональность, и она восстановится как совершенно другая личность. Но если ее программы испорчены, перегрузка никак не повлияет на них. «Клопы» в них все равно останутся.

Можно приказать ей перегрузиться с резервных копий.

— Они являются копиями оригинальных программ, которые мы получили на Луне. В них будут те же дефекты.

Я выругался. Потом сказал:

— Нельзя ли переконфигурировать ее в компьютер с ограниченными функциями? Переписать маркер конца файла, заблокировать логические программы, использовать ее только для вывода на экран, а общаться с ней через клавиатуру? Тогда люди смогут хотя бы выспаться.

Они переглянулись.

— Это возможно, — ответил пилот. — Все равно теперь от нее мало толку.

— Начинайте. — Я встал и потянулся. — Блокируйте все, в чем не уверены. Я вернусь к ночной вахте, и тогда мы включим ее «в линию».

Заперев за собой люк мостика, я пошел прямо в каюту смыть запах охватившего меня страха. Надевая свежую рубашку, я в изумлении покачал головой: спасибо фортуне, что сохранила нас, позволив вовремя обнаружить сбой. Я достал из кармана распечатку и, развалившись в кресле, стал ее изучать. Как много «клопов»!