Коршунов проснулся рано утром, до света, оделся и вышел наружу. Ночь уходила, сервера небесные заканчивали профилактику и включались в режим. Всё больше деталей проступало из тьмы, и сама она отступала, терялась в брезжущем свете утра. Трофима не было видно: скорее всего, он затемно ушёл поохотиться на ближнее глюковище. "Не выдержала душа старого охотника" – усмехнулся Коршунов и зашёл обратно поискать, что сготовить на завтрак.
Он только успел состряпать немудрёную яишню на сале и сварить утренний кофе, как из редеющего тумана показался Трофим. Весь пояс его был увешан свежедобытыми глюками, да и мешок был полнёхонек. Трёх самых больших и цветастых он, из простительного охотничьего тщеславия, прицепил к поясу спереди, на обозрение. Выложил добычу рядком на рогожу у входа и, перекрестившись, присоединился к трапезе. Ел чинно, но всё поглядывал на Коршунова. Видно было, что ему не терпится обсказать как прошла охота. Коршунов, как подобает, задал ему вопрос, и рассказ полился рекой. Трофим увлёкся, жестами рук показывая вылетающих там и сям глюков и свои выстрелы. За рассказом и бренчаньем посуды, складываемой для мытья, оба не расслышали появившийся новый звук, лишь только потом Коршунов понял, что это песня. Он вышел наружу, в свет наступившего утра.
…
По улице мостовой
Спозараночку
Идёт хакер удалой
Да, на побраночку.В кошеле его звенят
Злато-серебро,
Сапоги его скрипят
Да, чёрна пÉнгвина
Ерошка шагал к ним так, как шёл бы, наверное, герой его песни: рассупоненный, откинув голову вверх и устремив взгляд в утреннее небо, сапоги (не из сказочного пенгвина, но всё ж из ладных полигончиков) топтали поникшую за ночь кэшь. Левой рукой он удерживал на сворке трёх поджарых снифферов, а справа на поводке трусил лобастый, свирепого вида плагин.
За Коршуновым зашуршал откидываемый полог-фильтр, выглянул хмурый Трофим:
– Ох, Ерофей, ой, крамольник! Вот прознает урядник про песни твои, будет тебе хакер удалой!
– А откуда ему прознать-то? – отвечал подошедший Ерошка, еще не вполне выйдя из образа – Разве что ты, дядя, по старой памяти донесешь.
Коршунов предупредительно хмыкнул, и спор, не успев разгореться, угас.
Снифферы возбуждённо поскуливали, ластились к людям, привлечённые запахом яичницы и уже разложенной приманки. Коршунов гладил их по холкам, рассматривал сигнатуры, завернул одному губу, осмотрел:
– Что-то худые они у тебя, Ерошка. Или ты не патчишь их?
– Как же не патчить, вашмилось! Раза два в неделю, самолично, каждого. И обновляю, и за версией слежу. Ну и что, что худые! Зато уж след не упустят. Звери!
Коршунов недоверчиво прищурился, но больше ничего не сказал, зашел в модуль и начал собираться. Подсумки, патронташ, плащ для скрадывания, и чем укрыться в непогоду. Повертев в руках футляр с интроскопом, положил его обратно: в чаще он вряд ли понадобится, а вместо него по весу лучше взять полдюжины контрольных точек. Рассовав всё по подсумкам, для пробы понаклонялся в стороны, попрыгал, чуть перетянул амуницию и, повесив на плечо дебаггер стволом вниз, вышел наружу. Глянул на посерьёзневшего и тоже вооружённого Трофима, кивнул:
– Собрались? Тогда, помолясь, приступим.
В след за Трофимом, Коршунов – замыкающим, спустились в низину. Раньше по ней протекал какой-то устарелый протокол. Сейчас он заилился, зарос поправками и патчами и превратился в цепочку глюковищ, на одном из которых и охотился на заре Трофим. Всё же ложбина осталась, и по ней, как прикинул Коршунов, можно было зайти далеко, не заплутав и не сбив ног. Не прошло и получаса, как они ступили под тёмную сень старого кода.
Код обступил их со сех сторон, запущенный и дикий. По обе стороны ложбины старые иерархии классов росли, ветвясь, сплетаясь вверху над головами, образуя сплошной глухой и мрачный полог. В промежутках росли какие-то бледные, искривлённые, уродливые интерфейсы, беспорядочно и густо. Ни щебета, ни шороха – только хрустит под ногами многолетний слой опавших версий. Кое-где великанские деревья классов стояли покосившись под странными углами, подточенные багами. Кое-где поваленные, с вывороченными корнями и ссылками, они гнили без использования, облепленные белёсоватыми с тленным запахом колониями стабов. Тяжело, душно и жутко было здесь путникам. Здесь, среди переплетения непонятных мыслей, проросших кодом, уже давно не было места человеку.
К концу третьего часа пути в глубину чащи они решили сделать привал. Вокруг росли уже не классы, а странного и древнего вида библиотеки ("Да тут Фортран, ничего себе!" – изумлённо покачал головой Коршунов). Без подлеска из интерфейсов, совсем почти без версий, возвышались они насколько видел глаз сумрачной колоннадой. Здесь когда-то был исток протокола, по руслу которого они пришли. Здесь же они нашли первую сброшенную кóру. Начинаясь от ложбины, она уходила влево между двумя поваленными каталогами и терялась из вида. Охотники, насторожившись, прошли вдоль неё, чем дальше, тем больше удивляясь, каким огромным был оставивший её процесс.
– Тут в одной выползине полтерабайта, не меньше – шепнул Трофим (все трое инстинктивно перешли на шёпот, и даже снифферы примолкли и не рвали поводки).
– Так – согласился Коршунов.
Он зашёл, чвакая сапогами, в самую кору, наклонился, протянул что-то через пальцы и, распрямляясь и вытирая руки, сказал:
– В нём еще и потоков как бы не тридцать. Многозадачный такой, вырос. Мне кажется, это он. И кора свежая.
Он и Трофим расчехлили оружие, проверили заряды. Снифферы взяли след, и люди вслед за ними тихо устремились в глушь. Справа от них рыжей тенью мелькал плагин.
За время недолгого бега сброшенные коры попадались еще дважды, и каждая была крупнее предыдущей. Коршунов стиснул зубы: местные власти, как всегда, тянули до последнего и вызвали его из столицы только когда стало уже поздно, ни о чём не предупредив. При виде третьей коры, уже совсем немыслимых размеров, Трофим побелел лицом, зачем-то взял наперехват своё оружье, споткнулся, упал и тут же вскочил, озираясь, и, загнанно дыша, присоединился к погоне. Снифферы уже не тянули шлейку, они перешли на мелкую трусцу и жались поближе к людям. Впрочем, их помощь больше не требовалась: вдали было уже видно, как среди зарослей библиотек ворочается исполинская туша. Хозяин здешних мест. Баг.
– Здоров! Ох, и здоров! – прошептал Коршунов.
Затаившийся рядом с ним Ерошка тоже что-то прошептал, судя по жестикуляции, матерное. Они, вскарабкавшись на низко растущую библиотеку и укрывшись среди процедур, наблюдали свою дичь или, скорее, противника, оставив вконец павшего духом Трофима присматривать за сворой. Баг был огромен, необъятен. Он, похоже, охватывал все еще живые библиотеки в окрестности. Видно, когда-то неизвестный кодер допустил его в какой-то элементарной функции. Потом на эту функцию ссылались, вызывали её, а вместе с ней – и бага, размножив, расселив по библиотекам. Теперь он хлюпал и скрежетал под ними, над ними, вокруг них, и даже Коршунову было непонятно, что с ним таким теперь делать.
– Вашмилось! Вашмилось! Может, в город сбегать, за подмогой? – прошептал Ерошка белыми губами.
– Ну, сбегаем мы. День туда, день там, два дня обратно. Представляешь, насколько он вырастет? Проще было бы вообще сюда никому не ходить, и про этот код забыть. Но что уж теперь, наворотили, теперь нам расхлёбывать.
И оба продолжили наблюдение. Ах, как сейчас пригодился бы интроскоп! Пусть не сразу, пусть хоть целый день провести здесь в укрытии, но можно было бы найти ту функцию, с которой он начался, изолировать её. Дальше было бы проще. Так ведь нет, понадеялся, решил взять не тонкостью, а силой. Контрольных точек набрал… Ну вот, пожалуйста, он, открытый, втыкай – не хочу. Коршунов поёжился, и вдруг насторожился. Кто-то шёл через лес прямо к ним.
Это был Трофим. Хожалый, по-видимому, совсем потерял голову от страха и одиночества и, привязав где-то свору, шёл к своим… и к багу. Едва заслышав его, пупырчатая масса вокруг напряглась, а затем вдруг вся сразу выстрелила собой в застывшего на поляне Трофима. Миг – и хожалый накрыт с головой бурлящей многопотоковой гадиной. А в следующий миг по багу ударили в два ствола дебаггер Коршунова и трассер Трофима в Ерошкиных руках. Каждый выстрел отстреливал один поток, но их было много, гораздо больше, чем высчитанные тридцать, и часть из них по-прежнему сжимала старого хожалого, а другие обернулись и кинулись на спрятавшихся охотников. В ход пошли контрольные точки: Коршунов бросал их метко, целя в общие функции и срубая за раз по нескольку штук, но баг атаковал со всех сторон сразу, и минуты охотников были сочтены. Помощь пришла, откуда не ждали: снизу раздался заливистый лай, и свора, оборвавшая привязь, ринулась на бага. С тонким визгом лай оборвался, и снифферы, переполнившись, бессильно повисли, но плагин настойчиво прогрызал дорогу к осаждённому хозяину, и белая пена летела с его ощеренных парсеров.
Сражаясь против нескольких врагов, баг невольно истончился, и стало видно, как между его потоков пульсируют точки вызова. Стреляя и бросая, кромсая и рубя, Коршунов краем глаза замечал эти точки. Вот натиск бага ослаб, потоки ринулись вниз, чтобы подвесить уже израненного плагина. Коршунов понял, что передышка продлится лишь секунды, после чего баг ринется на них всей своей мощью, лихорадочно зашарил по подсумкам и вытащил единственную оставшуюся контрольную точку. Ну вот, осталась одна. Теперь главное – правильно воткнуть. Он глубоко вздохнул, прикинул еще раз и запустил её в переплетение потоков за миг до того, как на него со всех сторон обрушился баг.
Он пришёл в сознание и застонал, ощутив себя придавленным свинцовой тяжестью. С трудом разлепил глаза и понял, что лежит, прижатый к земле корой. Превозмогая головную боль, посмотрел по сторонам и понял, что эта кора – всё, что осталось от бага. Понемножку, еле шевеля отдавленными руками, Коршунов выбрался на волю и, исчерпав этим все силы, упал, привалившись к упавшей библиотеке и дыша полной грудью. Недалеко от него на поляне мало-помалу развисал и слабо скулил от боли плагин. А совсем близко под прозрачным слоем нулевых символов лежал Ерошка, и лицо у него было удивительно мирным, как у спящего.
…
Коршунов закончил свой рассказ, и некоторое время в кружке молодёжи, слушавшей его, никто не проронил ни слова. Молодые люди, опустив глаза, о чём-то думали. Наконец Лидочка Аникеева открыла свой хорошенький ротик и с тщательно выписанной смесью скуки и отвращения произнесла:
– Ах, uncle Коршунов, и вольно вам рассказывать этакие ужасы на нашей party! Как будто нет никаких рассказов повеселее. Пойдёмте же, господа, я покажу вам подарок от моих parents – скажу я вам, премиленький аватарчик.
На лицах слушавших её невольно возникло похожее выражение. Когда стайка молодёжи, ведомая Лидочкой, упорхнула по парадной леснице в сад. Коршунов обнаружил, что остался в одиночестве. Вокруг него кипел бал, рассыпалась музыка, звенел смех и бокалы, но всё это было как бы снаружи, мимо, не оставляя ни отзвука в его душе. Он уже собрался было выйти на балкон, но вдруг заметил, что один из юношей не ушёл со всеми и стоит у стены рядом. Во взгляде, устремлённом на Коршунова, была невысказанная мысль, безмолвная просьба о разговоре. Коршунов подозвал его жестом.
– Я вас слушаю, молодой человек!
Юноша приблизился, сперва – неуверенно, затем, очевидно, на что-то решившись, встал перед ним.
– Mister Коршунов! То, что вы совершили, то есть, я думаю – это подвиг. Как в мифах, словно – о Персее… или Беллерофонте, и еще вы так… так замечательно всё рассказывали! Все так слушали вас! (здесь он совершенно залился краской). Скажите, что нужно, чтобы стать – как вы?
Коршунов внимательно разглядывал его: перед ним стоял городской мальчик, низкорослый, полноватый, на указательном пальце левой руки перстень с трезубцем – похоже, из Бесединых, рода старинного, но захудавшего. Точно, Антоша Беседин, их представляли сегодня.
– Я могу дать вам совет – мягко заметил Коршунов, – Могу даже взять к себе ассиситентом, хотя с непривычки вам, наверное, будет трудно. Но, кажется мне, вас привлекает не столько само дело, сколько возможность прославиться. Точнее, произвести впечатление. Я могу продолжать?
И, дождавшись от окончательно онемевшего собеседника едва заметного кивка, повёл речь дальше.
– First, вы, конечно, будете много времени проводить в странствиях, все эти frontier, и wilderness… Бесспорно, в этом есть что-то от романтического, книжного героя, способного тронуть девичью душу. Но, видите ли, предмет нашего разговора, если я правильно понимаю – настоящий child of her parents, been properly raised, и подобные книги уже год как снесены в дворницкую, а само упоминание о приключениях считается отныне детским, and therefore, скучным. Оно не найдёт должного отклика в душе, будь побеждённый лично вами баг хоть впятеро больше.
Антон внимал, не проронив ни слова.
– Second, вы исходите из предпосылки, что если вы с предметом ваших дум встречаетесь на одном балу, то вы by default принадлежите к одному обществу. Увы! Все эти Логиновы, Аникеевы, Воротаевы represent a completely different social layer. И вы, и я – элементарно не из их круга, к вам никогда не будет серьёзных чувств у девушки properly raised by her parents.
Коршунов замолк. Антон тоже поник, склонив голову, в глазах поблескивали слёзы. Молчание прервал подошедший к ним курьер. В запылённом мундире и едва очищенных от грязи сапогах, он казался на балу чем-то посторонним и чуждым. Отдав честь, курьер произнёс:
– Титулярному советнику Коршунову, срочно, лично, в собственные руки – и передал пакет с бумагами.
Коршунов быстро сломал печать, пробежал глазами письмо.
– Еду, сейчас же. Можете идти. – после чего, обернувшись к юноше, сказал:
– Найти меня просто. Правительственный кластер, третья линия. Департамент Контроля Целостности. Надумаете – приходите.
Тот поднял голову.
– Я – запомнил! Я приду.
На бегу попрощавшись, Коршунов покинул гостеприимный дом Логиновых, свистнул извозчика. Всю дорогу до дома он перечитывал содержимое пакета, взвешивая каждое слово лапидарного полицейского языка. По невыясненным причинам… по всему городу ночью открываются окна, в том числе, запертые… Подозревали хулиганство неизвестных хакеров (тем не менее, перечислены фамилии), но затем (тут – вчерашняя дата) в храме Бриана и Дионисия… осквернены иконы. Дело передано в службу Багоискательства, а дальше – ему, и как всегда, если уж дошло до икон, случай достался запущенный. Коршунов читал, и уже не дымный запах города наполнял его грудь, а ветер равнин. До Линуксаари два дня пути. У него будет время обо всём подумать.
Стойкий оловянный солдатик.
Он просыпался медленно.
Сначала где-то внутри него зажёгся свет. Среди километров проводов и труб, под многослойным панцирем брони, он был почти неощутим, но он был. Свет просто зажёгся, аккумуляторов для него хватало, и долгое время не происходило вообще ничего. Достаточно долгое время, чтобы он снова погрузился в сон. Потом внутри, опять же чуть слышно, открылись клапаны, и застоявшийся мазут по капле устремился по трубам. Вот вспыхнули горелки, не торопясь, по одной, и скоро внутри него двумя рядами заструилось тепло. Открылись заслонки. Внутрь пошёл воздух. Он мучительно прокашлялся, словно старый курильщик, дымом, застарелой копотью и нагаром, но потом задышал ровно и глубоко, как прежде. Это означало только одно: к нему снова пришли люди.
Люди… Странные создания. Сколько он себя помнил, они всегда жили в нём. Они тоже двигались, дышали, находили какие-то крошки для еды, занимались своими непонятными мелкими делами. Их движения внутри него и снаружи были беспорядочны и жалки, не сравнимы ни с могучим напряжением винтов, ни с мощью главных башен. Иногда у него повышалось давление: давление пара в котлах, весьма распространённый недуг в его возрасте. Как он знал, многие винили в этом людей. "Вот увидите, они расплодятся, и можно будет только посочувствовать вашей личной жизни" – рассуждала Леди Лекси, когда они стояли вместе в Жемчужной гавани. Как это было давно! – он помнил те мирные дни. Море удивительной прозрачной голубизны, в котором на двадцатиметровой глубине были видны лежащие на дне якоря; зелёные на лазури силуэты гор, тёплый бриз, играющий во флагах. Рядом – друзья, по-детски глупые, смешные, ничего еще не видевшие, и среди них – Лекси, со знанием дела, не замечая ухмылок соседей, рассуждающая о людях. "Да-да, и не надо посмеиваться!" – с жаром говорила она – "Сколько я видела таких: раз – и вы уже музей!". Она единственная всерьёз относилась к людям, воспринимала их как болезнь и, говорят, втихомолку травила паром. Что из этого вышло, он узнал нескоро: дороги их разошлись почти сразу же после начала войны. Только потом он услышал, краем уха своей главной антенны, что судьба Леди была незавидной. Однажды, жарким майским утром, в неё попали, а потом – еще раз. Она горела и тонула, а люди, помня прошлое, не хотели лезть в наполненные убийственным паром отсеки. Так она и ушла. Неизвестно, было ли ей утешением то, что в последние десять минут все её покинули. Она пошла на дно чистой и свободной, как ей хотелось всегда.
Впрочем, он сам относился к людям куда спокойнее. И они, и крысы, и чайки, и сотни видов разной бестолковой мелочи – всё было таким же проявлением большого мира, как солнце, волны и облака. Он был прочен, могуч и полон сил, он был готов бросить вызов всему на свете. Отряхивая сверкающую воду с боков, играючи взрёвывая машинами на полном ходу, он оглядывался вокруг, с тихой радостью ощущая вокруг себя огромный бескрайний мир. И этот мир больше не был исчеркан снарядами и дымными следами подбитых самолётов, больше ничего не чадило жарко и душно в близких джунглях, и эфир не разрывался воплем контуженных, сбитых, тонущих… Война закончилась. Он и его друзья победили.
Кому же и зачем понадобился он в этом спокойном мире? Он прислушивался к себе, ощущая всё более явный зов; тот зов, что – он знал! – скоро воплотится, станет оборотами винтов и милями на лаге. Как раньше, мимо поплывут острова, только ни один из них не будет нести красные отметки целей. При всём своём могуществе, зоркостью он похвастать не мог. Возраст, что тут поделаешь. И сейчас, втянув якоря, на самом малом выходя с рейда, он близоруко озирался вокруг: ну да, везде свои. Воды кругом тоже были безопасны. Ни малейшего повода двигать орудиями. Радар тоже почти безмолвствовал.