Измерение кинетического червя - Николаенко Андрей. Страница 15
Петя встал из-за компьютера. Его знобило, кружилась голова. Он разыскал среди вороха вещей толстый шерстяной свитер и натянул его поверх рубашки, после чего отправился на кухню и поставил на огонь чайник. Во всех его действиях был какой-то отсутствующий, тупой автоматизм, в то время как в мозгу крутились хаотичные обрывки программных кодов, музыки, рекламных роликов и недавних разговоров. Все это складывалось в чрезвычайно сложную картину, имеющую ускользающий от понимания смысл.
Он присел за стол и взял в руки банку Nesfake. Некоторое время он тупо изучал надписи на этикетке, потом оторвал ее и понес в комнату. Там он нашел фломастер и на обратной стороне этикетки написал свои имя, адрес и телефон, как того требовали правила конкурса. Графа «Город мечты» заставила его крепко задуматься. В конце концов он пожал плечами и вывел, не вполне осознавая, что делает: «Chiba city». Покончив с этикеткой, он словно лишился всех сил и некоторое время неподвижно сидел, прислушиваясь к хаосу в своей голове.
Потом он снова подсел к компьютеру, решив попробовать разобраться с ошибками в программе. К своему изумлению, Петя обнаружил, что все ошибки были незначительными и поверхностными, связанными в основном с опечатками, когда палец случайно задевал соседнюю клавишу. Он исправлял их одну за другой, и даже стал слабо надеяться, что программа все-таки заработает.
Засвистел чайник. Петя приготовил себе кружку дымящегося кофе и бутерброд с сыром и с двойной энергией принялся за работу. Он даже почувстствовал нечто вроде отрешенности, подобной той, что сопровождала набор загадочной программы.
И вот наступил момент, когда программа откомпилировалась без ошибок. С замирающим сердцем Петя запустил ее. Система выдала сообщение, что программа произвела некорректное обращение к памяти и принудительно завершена. «А что ты ожидал?» — спросил сам себя Петя. Это был тупик. Если исправить синтаксические ошибки и описания функций было относительно просто, то копаться в логике программы, которая может и не иметь оной — безнадежное дело. Однако Петя хорошо помнил о Кинетическом Черве, и теперь не сомневался, что это очередное испытание в его квесте.
Сначала он, ругнув сам себя, прицепил к компьютеру запасной винчестер и скопировал на него все свои файлы. Это следовало сделать еще перед первым запуском программы, ведь она вполне могла стереть весь винчестер. Потом он запустил отладчик и принялся трассировать программу с самого начала. Что она делала, оставалось абсолютно непонятным. Большая часть выполняемых ею инструкций была бессмысленной. Единственное, что Петя мог понять — сбой в работе происходил оттого, что программа производила запись в собственный сегмент кода. Такое часто бывает, если программа содержит скрытую ошибку… либо в самомодифицирующихся программах. Если это первый случай, то Пете не стоило даже надеяться отыскать ошибку, не зная хотя бы общей логики работы программы. Если же второй… то программе не позволяет модифицировать свой код операционная система. Значит, надо попробовать запустить программу в нулевом — привилегированном кольце защиты…
Уже поздно ночью Петя закончил отлаживать код оболочки нулевого кольца. Изменять исходный текст программы он не решился, да и вряд ли бы из этого вышло что-то путное. Вместо этого он сделал небольшую оболочку, в которую «заворачивалась» программа и которая брала на себя обработку всех некорректных действий с памятью.
Когда все было готово, он опять запустил программу. Экран очистился и долгое время не подавал признаков жизни. Клавиатура тоже не отзывалась. Петя уже протянул руку к кнопке перезагрузки комьютера, когда на экране появилось сообщение:
ОПЕРАТИВНАЯ ПАМЯТЬ: 64 МБ ТРЕБУЕТСЯ: 112 МБ
НЕ ХВАТАЕТ ПАМЯТИ
и программа завершилась. Петя тихо и истерично захихикал. Памяти тебе, сволочь, не хватает? Будет тебе память. Завтра.
Когда прошло напряжение работы, он почувствовал сильную усталость. Голова все еще болела. Глаза под опухшими веками покраснели и слезились. Не раздеваясь, он упал на диван и забылся тяжелым сном.
В полупустом салоне рейсового «Икаруса» было холодно и мерзко воняло дизельным дымом. Больше всего Петя не выносил эту комбинацию — холод и дизельный дым, проникающие из всех щелей громыхающего салона. Особенно на голодный желудок. Его начинало подташнивать. Он не позавтракал утром, потому что не хотел есть, а теперь в нем наконец-то проснулся зверский аппетит. Температура снизилась до 37 и 2, головная боль прошла, но Петя с внутренней тревогой чувствовал, что в его здоровье произошли некие серьезные и пугающие сдвиги — настолько пугающие, что он даже не решался обратиться к врачу. Интуитивно он понимал, что доигрался. Все эти эксперименты с Кинетическим Червем не прошли даром. Кирпичи мира мелко и незримо дрожали в своих гнездах, готовые рассыпаться пылью небытия. В то же время Петя чувствовал странное отупение и безразличие ко всему. Бессмысленная круговерть в голове все не прекращалась, и он не всегда понимал, кто он и где находится, теряя себя в наблюдении за проплывающими мимо заиндевелого окна серыми березовыми рощицами, растущими на обочинах пригородной дороги.
Автобус затормозил, нехотя отворились двери, испуская недовольное шипение. Петя спрыгнул со ступенек на обледеневший асфальт и вместе с небольшой толпой приехавших зашагал к огороженному железобетонными плитами периметру с ярко-желтым матерчатым транспарантом «РАДИОРЫНОК» над входом.
Попав внутрь рынка, Петя прошелся по палаткам, прицениваясь и выбирая нужный ему тип памяти. Такой сейчас трудно было найти, так как он был уже давно снят с производства. Кое-где он находил то, что нужно, но по неведомой причине шел дальше, пока не наткнулся на… Ряху!
Ряха стоял за прилавком палатки, в руке у него была наполовину опустошенная бутылка «Хамовнического». Глаза смотрели на Петю тупо и не мигая. Отчего-то Петя запаниковал. Он никак не ожидал увидеть здесь Ряху, да еще и продающего «железо».
Петя некоторое время стоял в ступоре, делая вид, что разглядывает детали и прайс-листы, хотя взгляд его не мог сфокусироваться ни на чем. При этом он не мог заставить себя сдвинуться с места и с ужасом осознавал, что не знает, как быть дальше. Это был какой-то идиотский транс, в котором не существовало ни прошлого, ни будущего, а только мучительно растянутый момент настоящего.
— Я спрашиваю, могу ли чем-нибудь помочь? — откуда-то издалека донесся до Пети голос.
Это был голос Ряхи. Он был слегка осипшим.
— Симмы по 32 мегабайта есть? — как загипнотизированный, спросил Петя.
— Вроде были. Щас посмотрим…
Ряха с утробным бульканьем глотнул пива, поставил бутылку на прилавок и повернулся к Пете спиной, копошась в каких-то коробках.
— Последние остались. Забирай со скидкой.
Ряха выложил на прилавок прозрачный пластиковый конвертик с запечатанной внутри парой симмов. Конвертик был испещрен крохотными ярко-желтыми японскими иероглифами, среди которых повторялась красная надпись латиницей «KINEN MUSHI».
— Гарантия есть? — спросил Петя, вертя конвертик в руках. — Что-то фирма левая…
— Ты что! Это же чистый джапан, не какой-нибудь Тайвань, — почти обиделся Ряха. — У меня у самого такая стоит, ни разу проблем не было. Если что — принесешь обратно, — он снова приложился к бутылке. — Квитанцию выпишу.
— Ладно, беру, — согласился Петя.
Ряха достал чистый бланк и вписал в него несколько строчек. Почерк у него оказался очень ровным и изящным, словно у девушки. После этого он достал печать, подышал на нее и приложил к бланку.
Петя отдал ему деньги и взял квитанцию.
— Спасибо, — сказал он и зашагал прочь.
— Эй, постой! — услышал он голос Ряхи позади и обернулся. — Мозги-то возьми!
Петя хлопнул себя по лбу. Он забыл забрать с собой купленную память.
— Черт, вроде бы точно помню, что взял, — смущенно сказал он Ряхе, вернувшись.
— Если помнишь, значит, взял, — насмешливо ответил Ряха, допивая пиво. — Только, наверное, это было не с тобой и не здесь.