31. Госаинтан — Аннапурна
Пард привычно колотил по клавишам, вводя команды. Корабельный комп привычно упирался. Инси, Халькдафф и Вольво заглядывали Парду через плечи.
@executeble commands list% — запросил Пард.
Компьютер с секундной задержкой выдал на экран список исполняемых команд. Нужной команды там, понятно, не значилось, потому что команда эта нужна была живым, а не самому броненосцу.
@insert new command% — предложил Пард.
Комп снова секунду поразмышлял.
#list changes not allowed% — ответил он.
Халькдафф зло сплюнул.
— Тьфу ты! Опять то же самое.
Вольво с неудовольствием покосился на эльфа.
— Что-то мы делаем не так, — задумчиво протянула Инси. — Но что?
Пард без толку пощелкал клавишами — комп больше не реагировал на клавиатуру.
«Нужно что-нибудь принципиально новое, — подумал он. — Принципиально. Эх-ма, почему же в голове такая пустота?»
Он вздохнул.
— У кого есть идеи? — бодро осведомился Вольво. — Ну, давайте, давайте, пусть даже полная чепуха, но думать нужно, думать, а не молчать.
— Хорошо, — Халькдафф нервно забегал туда-сюда по рубке. Как-то не вязалась подобная торопливость с величавым обликом эльфа, но в минуты размышлений он часто бегал вот так — туда-сюда, туда-сюда… Вдоль стены. — Хорошо. Давайте четче сформулируем задачу. Нам нужно, чтобы комп принял новую команду и отдал ее менеджеру двигателей, когда это нам понадобится. Комп отказывается менять список команд…
— Замкнутый круг, — подытожила Инси.
— Но должен же был как-то сгенериться существующий список команд? — спросил Вольво. — Нужно раскусить механизм создания этого списка, и все, считайте дело сделано.
Бюскермолен, до этого безмолвно и безучастно торчавший в самом углу, в кресле, задал резонный вопрос:
— Но ведь отдает же комп эту самую команду менеджеру, когда броненосцу вздумается куда-нибудь отправиться?
— Отдает, конечно, — пожала плечами Инси. — Наверняка отдает, ведь двигатели запускаются и работают, когда броненосец идет по морю… И думать нечего.
— Почему же тогда такой команды нет в списке? — Халькдафф прекратил бегать и раздраженно всплеснул руками. — Правильно, это хидден-команда, и нам до нее вовек не добраться, пока мы не научим этого кристаллического балбеса принимать наши команды… Точно заколдованный круг!
Вольво косо взглянул на эльфа, но ничего не сказал.
— Я предлагаю прерваться, — Пард встал из-за терминала. — И пообедать. А то голова уже пухнет, а в брюхе урчит. Это не к добру — на голодный желудок и думается хреново.
— Ладно, — легко согласился Вольво. — Я тоже чего-нибудь с удовольствием с®ем… Никто не в курсе, что Иланд сегодня затевал?
— Жаркое из «Карне толайя» и грибную солянку, — подсказал всезнающий Халькдафф. — Жаркое — об®едение, смею заверить. Да и солянка… М-м-м…
Халькдафф мечтательно зажмурился, и тут же налетел на переборку; переборка жалобно вякнула. Халькдафф вполголоса выругался по-эльфийски.
По одному техники выходили из рубки. Как делали это уже второй месяц — каждый день. Почти все мелкие машины на борту «Стремительного» были успешно приручены. А вот большие — упирались. А значит, живые не могли назвать себя хозяевами железного чудища, черноморского броненосца. Он оставался диким и норовистым, и чихать он хотел из всех сопел на проблемы и чаяния живых, что поселились на нем, словно блохи на собаке, и докучали каждый день, и докучали…
Мысль пришла и выкристаллизовалась когда солянка уже была с®едена, и команда отдавала должное жаркому. Халькдафф ничуть не преувеличивал, нахваливая кулинарные таланты Иланда.
Пард на мгновение перестал жевать, ошеломившись простоте сформировавшейся мысли. Потом решил как следует все обдумать, прежде чем говорить остальным. Вдруг найдется столь же простой контрдовод…
Он ломал голову минут пятнадцать, перестав ощущать вкус пищи. Жевал, как зомби, полностью отключившись от действительности. Тарелка Парда опустела, а он продолжал упрямо скрести по ней вилкой.
— Эй, Пард! — Инси потрясла его за плечо. — Что с тобой?
— А? — очнулся Пард и огляделся. — О, я задумался, извини… Кажется, я нащупал то, что вы бы назвали новым подходом.
Вольво и Халькдафф моментально перестали спорить на кулинарные темы. Да и остальные живые притихли, обратив взгляды к Парду.
— Ну? — Инси не терпелось узнать что же такое придумал Пард. — Говори же, не тяни!
Пард отложил вилку.
— Что нам в сущности нужно? Чтобы менеджер двигателей получил определенную команду от головного компьютера и выполнил ее, так?
— Так, — нестройным хором ответили несколько голосов.
— А если эту команду отдаст вовсе не компьютер? Какая менеджеру разница
— главное, чтобы он решил, будто выполняет команду компьютера. А отдать ее можем и мы. С ноутбука, к примеру.
Над столом повисло молчание. Надолго, на добрую минуту, пока Вольво не нарушил эту нервную тишину.
— Смело! Смело, шахнуш тодд! И просто, настолько просто, что…
— Но ведь нужно во-первых знать саму команду, а во-вторых заставить менеджера поверить в ее истинность, — усомнилась Инси. Она всегда все подвергала сомнению, но споря с ней Пард часто находил удачные решения. Лихие и нестандартные. Вот и сейчас ответы приходили сразу же, Инси едва успевала закрыть рот.
— Команду можно перехватить и записать, а потом уже разложить на составляющие, — импровизировал Пард. — Мы все пытались делать вслепую, через комп броненосца. Но ведь возможно и самим составлять нужные команды, должно быть возможно! Даже такие, какие комп никогда не отдавал и каких он не знает! А что до менеджера… Отослать команду по каналу компа, да и все. Перехватить управление всеми машинами, в конце-концов, ведь в сущности броненосец — это и есть головной комп, а все остальное только периферия, стальные мускулы и разящая десница…
— Где были мои глаза? — изрек Халькдафф вскакивая. — В рубку! Немедленно!
Инси, Вольво, Пард, Гонза, Бюскермолен, Роелофсен, и даже Иланд гурьбой устремились к выходу. За столами остались сидеть только Вася, Зеппелин и хольфинги Мина с Беленьким.
— Да-а! — многозначительно изрек орк Вася. — Растет наш Пард! Не по дням…
— …а по ночам! — мрачно закончил Зеппелин. — Знаешь, орк, а ведь он и вправду умнее остальных техников. А это значит, что наше время действительно уходит, и настает время людей…
— Пока оно настанет, — рассудительно отозвался Вася, — твои косточки сто раз истлеть успеют. Этот мир за десять лет не раскачаешь. Так что не хорони себя заранее, Зеппелин. Давай лучше винца тяпнем, пока наши умники формулы мечут направо и налево. А высадимся в Крыму — глядишь, и для нас работенка найдется.
— Да! — поддержал Васю Беленький. — Скорее бы Крым, а то от безделья уже тошно.
— А ты ружье чисть почаще, — авторитетно посоветовал Зеппелин. — Или пистолет — что там у тебя?
— Да в него уже смотреться можно… — хольфинги разом фыркнули, словно с вычищенным до блеска оружием была связана какая-то смешная история.
— Кстати, — Вася вернулся к столу с облюбованной пыльной бутылкой темно-зеленого стекла. — Халькдафф как-то вскользь обмолвился: дескать, кто в нашем мире приручает оружие? А? Мина? Кто твои бомбы приручал?
— Никто, — отозвался Мина. — Они изначально прирученные.
— А разве такое бывает? Все, что состоит из железа, сперва бывает диким. А, стало быть, должно кем-то приручаться. Только вот кем?
— Откуда мне знать? — пожал плечами Мина и, огладив бороду, пригубил красненького. — Если Халькдафф этого не знает — куда уж мне?
Вася вздохнул, и тоже отпил вина.
«Хоть бы у них действительно дело сдвинулось. Обрыдла уже эта плавучая железяка по самое не могу. На берег бы, хоть и на крымский. Прорвемся, каких бы страстей нам на острове не прочили… Прорвемся. И Пард теперь уже не тот, да и мы все уже не те.
Ты изменил нас, остров Крым, и продолжаешь менять. Вот только понять бы
— к добру ли, к худу…»
Вася вздохнул, отгоняя назойливые мысли, потянулся к бутылке и налил всем еще по одной.
А техники в рубке рвали друг у друга клавиатуру головного терминала.
— Подожди! Да подожди ты, надо перелогиниться, он же перестал реагировать после того, как Пард к листу обращался…
— Сейчас, — Халькдафф ткнул в серый кругляш «Reset'а» и уставился в мигнувший и разом очистившийся экран.
#login% — предложил броненосец.
@master% — набрал Халькдафф. К «хозяину» комп уже привык, и даже иногда выполнял несложные команды из-под этого логина.
— Что дальше? — Халькдафф вопросительно повернул голову. — Доступ к интерфейсу менеджера?
— А есть другие предложения? — проворчал Вольво.
— Не думаю, что он допустит, — усомнился Халькдафф. — Только логин запорем.
— Не нужно доступ, — предложил Пард. — Есть какая-нибудь формула вывода на экран исходящих команд?
Вольво и Халькдафф переглянулись.
— Тоже верно, клянусь Салефом! Нам же не нужно вмешиваться — только видеть. Значит, доступ по сути и не нужен.
— Вот что значит нетрадиционный подход, — Инси всплеснула руками и чмокнула Парда в щеку. — Пард, ты прелесть!
@show outbound commands% — попросил Халькдафф и на экране тотчас развернулось свежее окно. Броненосец был готов показать все, что угодно — он не позволял только вмешиваться в свои конфиги и листы, не позволял менять их.
— Так! Нотебук к порту! — скомандовал Вольво и Пард мгновенно вставил нужный раз®ем в гнездо на панели.
@link com3 % — набрал он.
#choose a connection% — высветила линк-программа.
И через несколько секунд -
#"Стремительный» on com3%
— Готово, — сказал Пард Халькдаффу.
— Отлично!
@copy any outbound command on com3 % #bad command or file name% — с порога отмел компьютер броненосца наглое предложение Халькдаффа.
Эльф хмыкнул и набрал следующую команду:
@copy screen on com3» a.aaa%
На этот раз комп секунду поразмышлял.
#unknown extension or file name% — отверг он и это.
— Ты думаешь, он все исходящие команды выводит на экран? — с сомнением спросил Вольво.
— Не думаю, а знаю, — ответил Халькдафф. — По крайней мере, он выводил их предыдущие тридцать два года. Жаль, что я не догадался эти команды просто запомнить или, хотя бы, записать…
И он снова азартно сгорбился над клавиатурой.
@copy screen on com3» m.com%
Броненосцу и это расширение не понравилось:
#incorrect extension or file name%
— Блин, привередливый ты, батенька! — вздохнул Халькдафф и поскреб седой затылок. — А так?
@copy screen on com3» manager.dat%
Теперь комп думал целых две секунды прежде чем ответить, и что вертелось все это время в кристаллических мозгах этого монстра при его-то быстродействии — представить было невозможно.
Наконец он выдал в командную строку:
#excellent command and file name% #"Стремительный» выполнит сброс команды в файл manager.dat% #по com3%
Инси и Вольво тут же согнулись от смеха, а Халькдафф так вообще сполз с кресла на пол.
Пард тоже улыбнулся.
— Первый раз вижу, чтоб комп похвалил имя файла!
Бюскермолен и Роелофсен прятали улыбки в бороды, а Гонза уже мял-теребил в руках свою знаменитую кепочку.
— Ну, что? — отсмеявшись, спросила Инси. — Долго нам ждать-то, интересно?
— Пока дрейфовать ему не надоест… — вздохнул Вольво и, не удержавшись, еще разок прыснул. — Надо же! Экселлент комманд! Ха-ха-ха!
Дрейфовать «Стремительному» надоело ночью.
Пард вскинулся ото сна, ощутив, как броненосец вздрогнул всем корпусом. Рядом зашевелилась Инси.
— Что там? — спросила она, не открывая глаз.
— Слышишь? Двигатели! И, кажется, на полный врубились!
Сонливость враз сползла с Инси. Ее будто пружиной подбросило.
— Скорее! В рубку!
Одевались они в спешке, но Пард обнаружил, что навыка не потерял. Минуты хватило с гаком.
— Свой ноут не забудь! — посоветовала Инси, набрасывая бежевую курточку.
В коридоре хлопнула дверь — проснулись гномы, гонза и Вольво.
— Ага, и вас проняло? — Вольво хмыкнул. — Давайте наверх…
Ночь накрыла «Стремительного» черным колпаком, испещренным частыми точками звезд. Легкий ветер бился в левый борт и перехлестывал через надстройки, принося свежесть и редкие брызги. Броненосец набирал ход, корпус его ощутимо вибрировал, машины выплескивали скрытую мощь, бешено вращался гребной винт. За кормой тускло отсвечивала пенная струя.
Они взбежали по гулким металлическим трапам. Вольво взялся за кольцо на двери — но дверь была незакрыта. И вторая дверь, из тамбура в рубку, тоже отворилась от простого толчка.
В рубке сидел Халькдафф. Руки его зависли над клавиатурой оставленного ноутбука, а взгляд словно прилип к матрице.
— Есть запись? — опережая остальных спросил Пард.
— Есть, — отозвался Халькдафф и неохотно встал. — На, смотри.
Парда не нужно было упрашивать дважды — он упал в кресло перед пультом и глянул на экран. В директории для входящих лежал единственный файл.
manager.dat Пард привычно вскрыл его встроенным вьювером оболочки. Воспользовавшись одной из первых заученных компьютерных формул, обыденной и безотказной.
На экране расцветали ряды замысловатых символов — тело команды менеджеру двигателей.
— Ха! — Пард довольно потер ладони. — Попался! Ну, чего? Анкомпайлером его?
— Давай! — хором сказали Халькдафф и Вольво. — Формулы помнишь?
— Помню!
Минута, и послушная, отлично прирученная программа перепахала машинную команду и выдала ее в виде стандартных операторов, известных каждому магистру приручения. Вольво и Халькдаффу хватило следующей минуты, чтоб раскусить структуру манипулирования менеджером.
— Великолепно! — выдохнул Вольво. — Я знаю эту систему операторов!
— Я тоже, — вмешался Халькдафф. — Что тебе об®яснить, Пард?
— Все, — честно признался Пард. — С самого начала. Я с этой системой не знаком вовсе.
И Халькдафф принялся об®яснять. С самого начала. Вольво то и дело порывался поддакивать, но Инси останавливала вирга коротким энергичным жестом.
Правильно. Учитель должен быть один… Даже если их несколько.
Суть Пард схватил с первых же слов, и ему осталось только запоминать область применения отдельных операторов, а также вникнуть в манеру переходов от оператора к оператору. Ручное управление менеджером двигателей вскоре перестало казаться невыполнимой задачей: напротив, обратилось удивительно простым и логичным делом. Оставалось только не ошибиться в выборе последовательности операторов и корректно совершать переходы. Ну, избегать неоднозначностей еще, потому что машины теряются при получении нечетко поставленной задачи или оператора, допускающего «ветки» в предполагаемом варианте поведения.
Поэтому Пард оборвал Халькдаффа, когда сообразил, что в остальном скорее разберется уже по ходу дела.
— Довольно, Халькдафф! Кажется, я понял принцип. Давай лучше попробуем покомандовать менеджером… Поправляйте меня, если что не так.
Пард подтянул ноутбук поближе, отлепился от третьего компорта и вопросительно взглянул на эльфа. В голову ему пришла совершенно очевидная и неизбежная мысль.
— Теперь что? Нужно отключить головной комп «Стремительного» от всех линий. Обособить его. Так?
— Ну, — протянул Халькдафф несколько неуверенно, — в принципе, да. И занять его место.
— А значит, — развил мысль Пард, — нужно заменить его не только в рамках одной задачи, а именно — отдачи команд менеджеру двигателей. Нужно взять на себя управлением всем броненосцем, от локаторных процессоров, до менеджера питания техникой на кухне.
— Здесь один менеджер питания, — подсказала Инси. — Генераторы техники, система проводов и источники в каждом помещении, от рубки до жилых кают, подчиняются ему же. Но ты прав, любой менеджер наверняка часто обращается за инструкциями к головному компу.
Вольво оперся ладонью о пульт и нервно забарабанил пальцами по твердой пластмассе.
— Гм! — промычал он озадаченно. — Не все так просто, оказывается… Хорошо, что ты подумал об этом, Пард. Мне как-то не пришло в голову, что перехватив управление менеджером двигателей, мы лишим советчика остальные системы броненосца…
— Значит, сейчас просто ничего нельзя менять и отключать, — сказал Пард. — Нужно накопить статистику. Сбрасывать ее на тот же ноутбук. Вольво, Халькдафф! Ну-ка, помозгуем! На этот раз нужно записать не только инструкции «Стремительного» менеджерам, но запросы самих менеджеров! Не думаю, что формула будет много сложнее той, которую мы уже применили… Принцип-то тот же…
И Пард снова слинковал ноутбук с корабельным компьютером.
Руки его на миг замерли над клавиатурой, а взгляд задержался на служебном мониторе «Стремительного».
— Ну, что, кораблик? Сочтешь ли ты на этот раз великолепными наши команды?
Все, кто был в рубке, невольно улыбнулись. И даже «Стремительный», вроде бы, пошел вдруг бойчее. Во всяком случае, он зачем-то дважды погудел сиреной, и пронзительный рев броненосца проник даже сквозь металлические стены, в рубку.
Статистику техники Киева накапливали целых две недели. «Стремительный» за это время совершил шумный рейд к берегам Большой Софии, потопив по дороге четыре небольших катера, причем один из этих катеров управлялся живыми. Живых, бултыхающихся среди обломков в полумиле от берега, броненосец не удостоил своим вниманием, а потом неделю безостановочно шел на юго-восток в четверть мощности. Наверняка он оставил Крым севернее, забравшись в самое сердце Черного моря. Еще пару дней такого марша — и «Стремительный» неизбежно приблизился бы к берегам турков. Но он слегка изменил курс, отклонился к северу и теперь направлялся к Кавказу.
— Ну, вот, — проворчал однажды за ужином Вася-одессит, — так, глядишь — и вокруг Крыма обойдем. Никогда не думал, что докачусь до такого…
В маршевом режиме машины броненосца работали активнее, чем во время дрейфа, а значит и статистика накапливалась быстрее. Файлы с запросами и текущими инструкциями росли и множились. Техники еле успевали их просматривать да анализировать. Вольво и Халькдафф спали урывками, Пард с Инси тоже часто ходили сонными. Правда, Парда вирг с эльфом периодически прогоняли на отдых, приговаривая: «Нам дремлющие ученики не нужны!» А Инси уходила за компанию. Хотя, если честно, то далеко не все неожиданно освободившееся время они употребляли на сон — им было чем заняться в маленькой уютной каюте на узкой постели.
На пятнадцатый день, когда утром после завтрака техники пришли в рубку, Халькдафф мельком просмотрел свежую статистику, переглянулся с Вольво, и об®явил:
— Пожалуй, хватит.
Пард знал, что последние дня три-четыре Вольво и Халькдафф употребили на переориентирование готовой, хорошо прирученной программы-селектора. Они просто меняли содержимое data-файлов, подставляя туда нужные инструкции различным менеджерам. Каждому менеджеру — свой data-файл. Все это выглядело несколько громоздко, но по предварительным прикидкам должно было действовать весьма успешно.
— Да, думаю, хватит. Четвертый день — ни одной новой инструкции.
И это было правдой — активное накопление запросов и команд продлилось всего дня три. Потом команды стали все чаще повторяться, а за вторую неделю статистика пополнилась лишь двумя новыми запросами и двумя инструкциями в ответ на них: менеджер климатических машин испросил разрешения на ежемесячную селф-диагностику, а локаторный модуль поинтересовался как поступить с перегревшимся источником техники в своем секторе. «Стремительный» тут же переключил нужную цепочку на резервный источник и велел модулю продолжать в прежнем режиме.
Целый день они репетировали: Пард сидел за командным ноутбуком, Халькдафф — за резервным. Эльф наугад посылал запросы из большого каталога, Пард вручную отвечал соответствующей инструкцией или командой. Вольво сравнивал реакцию реального компьютера и выбор Парда.
Они просидели до глубокой ночи, прервавшись только на обед, и ни разу Пард вместе с переделанной программой не ошибся. Инси сначала хлопала в ладоши после каждого верного ответа, а потом прекратила. Устала, наверное.
Заполночь Халькдафф со вздохом отодвинул ноутбук и встал, выгнувшись, как кот.
— Уф-ф-ф! Кажется, мы готовы, коллеги. Или я ничего ни в чем не понимаю, или эта железная чурка покорится нам как миленькая.
— Есть охота, — нейтрально сказал Пард и тоже встал. — Интересно, Иланд еще спать не ушел?
— Мы ж не впервые опаздываем, — пожал плечами Вольво. — Хоть раз он уходил, не накормив нас?
— Нет…
— Значит, и сейчас ждет.
— А давайте вина выпьем! — храбро предложила Инси. — За успех.
Халькдафф и Вольво заученным движением поглядели на Парда. Вопросительно. Как глядели последнее время при принятии любых решений.
Пард рассмеялся:
— Не возражаю!
Он все никак не мог привыкнуть, что все общие, не связанные со специальными знаниями решения уже почти два месяца как взвалены на него.
— Начнем утром, пожалуй, — добавил он. — На свежую голову. Так?
— Как скажешь, шеф! — хмыкнул Вольво. А ведь еще недавно Пард называл шефом вирга. — Как скажешь!
Иланд действительно ждал их. И у него, как обычно, все было готово к позднему ужину.
Даже вино.
В эту ночь Пард долго не мог заснуть, несмотря на приятный винный шум в голове. Инси тихонько лежала рядом, словно прислушивалась к его мыслям.
Но Пард все уже уснул, напоследок подумав, что за минувшие два месяца он научился едва ли не большему, чем за всю предыдущую жизнь.