Марсианин
Шрифт:
С…Т…А…Т…У…С
Проблем со здоровьем не испытываю. Всё оборудование Дома функционирует нормально. Ограничиваю порции 3/4 рациона. Занимаюсь в Доме сельским хозяйством на местной почве. Заявляю: в сложившейся ситуации вины команды «Ареса-3» нет. Просто не повезло.
К…А…К…В…Ы…Ж…И…Л
Проткнуло обломком антенны. Потерял сознание от декомпрессии. Упал лицом вниз, кровь запечатала дыру в скафандре. Пришёл в себя после отлёта команды. Биомедицинский компьютер разрушен от удара. Команда имела все
П…О…С…Е…В…Ы…?
Долгая история. Продвинутая ботаника. Выращиваю картошку на 126 м2 почвы. Даст выиграть время, но не хватит до приземления «Ареса-4». Модифицировал ровер для длительных поездок, планирую направиться к «Аресу-4».
М…Ы…В…И…Д…Е…Л… — …С…О…С…П…У…Т…Н…И…К…А
Правительства шпионят за мной со спутников? Мне нужна шляпа из фольги! А ещё нужен более оперативный способ общения. Приём сообщений буква за буквой занимает весь день. Есть идеи?
В…Ы…Н…Е…С…И…С…Д…Ж…Р…Н…Е…Р
Я вынес «Соджорнер», поместил в одном метре к северу от модуля. Если можете с ним связаться, я напишу шестнадцатеричные цифры на колёсах, и вы сможете отправлять мне одновременно по шесть байтов.
С…Д…Ж…Р…Н…Е…Р…Н…Е…О…Т…В…Е…Ч…А…Е…Т
Проклятье! Есть ещё идеи? Позарез нужно общаться оперативнее.
Р…А…Б…О…Т…А…Е…М…Н…А…Д…Э…Т…И…М
Земля вот-вот уйдёт за горизонт. Продолжим завтра утром, в 08:00 местного времени. Передайте семье, что у меня всё в порядке. Моей команде — привет! Скажите командору Льюис, что её диско — отстой.
— Я всю ночь не спал, — сказал Венкат. — Простите, что немного не в себе. Ещё раз, кто вы?
— Джек Тревор, — повторил тонкий бледный мужчина, стоящий перед Венкатом. — Работаю в отделе программного обеспечения.
— Чем могу помочь?
— Есть идея насчёт связи.
— Я весь внимание.
— Мы просматривали старые программы «Марсопроходца». Запустили дублирующие компьютеры, прогнали тесты. Те же компьютеры, на которых обнаружили проблему, которая чуть не погубила весь проект. Очень любопытная история — оказывается, в управлении потоками данных «Соджорнера» произошла инверсия приоритетов, и…
— Джек, ближе к делу, — прервал его Венкат.
— Точно, простите. В общем, у «Марсопроходца» предусмотрена возможность обновления оперативной системы. Поэтому мы можем заменить работающий софт чем угодно.
— Ну, и как это нам поможет?
— У «Марсопроходца» две системы связи. Одну он использует для связи с нами, вторую — для связи с «Соджорнером». Мы можем внести изменения во вторую систему, чтобы он мог передавать информацию на частоте ровера «Ареса-3». И мы можем заставить ровер поверить, что он получает сигнал маячка Дома.
— Вы можете заставить «Марсопроходца» общаться с ровером Марка?
— Других вариантов нет. Радиостанция Дома мертва. Дело в том,
— То есть, — произнёс Венкат, — вы можете заставить «Марсопроходца» разговаривать с ровером, но не можете сделать так, чтобы ровер ему ответил.
— Именно. Мы хотим, чтобы наши сообщения выскакивали на мониторе бортового компьютера ровера, и чтобы Уотни мог печатать ответы, которые тут же улетали к нам. А для этого нужно изменить ПО ровера.
— А сделать это мы не можем, — заключил Венкат, — потому что мы не можем разговаривать с ровером.
— Напрямую — нет, — согласился Джек. — Но мы можем послать данные Уотни, и он введёт их в ровер.
— О каком объёме данных идёт речь?
— Наши парни прямо сейчас разбираются с программами ровера. Патч будет минимум в 20 мегабайт. Мы можем буква за буквой передавать Уотни один байт в каждые четыре секунды — или около того. Чтобы передать весь патч, потребуется три года передачи в непрерывном режиме. Это нам не подходит.
— Но раз вы со мной разговариваете, значит, у вас есть решение — так? — прозондировал почву Венкат.
— Конечно! — просияв, воскликнул Джек. — Не представляете, на что способны инженеры-программисты, когда речь идёт об управлении данными.
— Так просветите меня, — терпеливо попросил Венкат.
— Самое хитрое вот в чём, — заговорщически сказал Джек. — Сейчас ровер разделяет сигнал на байты, после чего идентифицирует специфическую последовательность этих байтов, которую посылает Дом. Таким образом, прочие радиоволны никак ему не мешают. Если байты неправильны, ровер просто их игнорирует.
— Ладно, что дальше?
— А это значит, что в кодах ровера есть такое участок, который занимается анализом байтов. Мы можем вставить небольшой кусочек кода, около двадцати инструкций, чтобы ровер записывал получаемые данные в лог, прежде чем проверять их действительность.
— Звучит многообещающе… — протянул Венкат.
— Так и есть! — воскликнул Джек. — Сначала мы модифицируем ОС «Марсопроходца». Затем подробно объясняем Уотни, как он должен изменить программу ровера, чтобы вставить в него эти двадцать инструкций. Потом мы передаём патч для ровера на «Марсопроходец», который перенаправляет их роверу. Ровер записывает получаемые байты в файл. И, наконец, Уотни запускает файл как исполняемый — и обновляет ПО ровера!
Венкат нахмурил брови. Он только что получил больше информации, чем мог переварить его невыспавшийся ум.
— Хм… — заметил Джек. — Вы не смеётесь, не пляшете от радости.
— Значит, нам только всего и нужно, что отправить Уотни эти 20 инструкций? — переспросил Венкат.
— Двадцать инструкций, и ещё информацию о том, как отредактировать файлы. И в какое именно место в этих файлах вставить инструкции.
— Всего-то?
— Да, только и всего!
Венкат несколько мгновений помолчал. А затем произнёс: