В начале было Слово. И Слово было у Бога.
Блажен читающий и слушающий слова пророчества сего
и соблюдающие написанное в нем; ибо время близко.
Все началось в тот самый день, когда я создал виртуальную машину. Когда я ее еще только задумывал, она предназначалась для отладки вирусов. Я хотел создать точный эмулятор РC, но, столкнувшись с рядом чисто технических проблем, я отступил. К тому времени объем кода достиг восьмидесяти тысяч строк, и мне стало жалко бросать разработки. И тогда я решил направить их в другое русло.
В начале было действительно слово. И слово это – Программа. Именно так выглядит заголовок главного исходника на Паскале. А с большой буквы это слово только потому, что это признак хорошего стиля кодирования. Такой же, как функциональная декомпозиция или каскадная структуризация. Все через него начало быть, это истинно как True.
Я отвел под эмуляцию двадцать мегабайт и заполнил среду фракталами. Затем я поместил в нее колонии "Жизни", только с гораздо усложненным алгоритмом. Целыми днями я торчал в музеях с фотоаппаратом, а затем часами возился со сканером, вводя примитивы птиц и зверей. Когда галерея была готова, я принялся внедрять ее в свой мир. Шесть дней я потратил на это, и одержимость Моя достигла того предела, что я сначала отвлекался на работе, а затем и вовсе взял отгул. Ту неделю я почти не спал, оторваться меня заставлял лишь до невозможности перегретый монитор. Уже позже я поставил свой компьютер в серверную стойку, а пока одолжил второй монитор. Я похудел и оброс щетиной (кто знает, не причина ли это, что Бога рисуют с бородой), в комнате воняло потом и нестиранными носками. Размер моего мира пришлось увеличить до ста пятидесяти мегабайт.
Утром на седьмой день я осторожно запустил эмуляцию в пошаговом режиме. К моему огромному удивлению, мир не самоуничтожился и не впал в цикл. Структуры стали развиваться. От основных заложенных мною законов протянулись веточки следствий и начали сплетаться друг с другом. Я сохранил все файлы и, не дождавшись завершения работы Windows, вытянул их сети шнур питания, и заснул, умостив голову прямо на столе, кое-как отпихнув в сторону клавиатуру.
Я не сразу вернулся к нормальной жизни. Первые месяцы я почти безвылазно сидел дома, наблюдая за тем, как совершенствовался мой мир. А он ведь не просто совершенствовался – он самосовершенствовался! Да, мои первоначальные фракталы менялись; графические примитивы, сосканированные с шести стороне обретали пространственные очертания; одни программы рождались, уничтожали других, заимствовали их код и генерировали свой собственный. Те восемьдесят процентов дискового ресурса, которые я отвел для инфоволюции, потихоньку начали заполняться кодом, которого я не писал!
В те дни все было просто или относительно просто. Моделируемое время я пускал не быстрее объективного, а потому мог без проблем разобраться или даже откорректировать автогенерированный код. Я так и делал, направляя инфоволюцию в нужное мне русло. Только объем дискового пространства на моей машине сдерживал меня от эволюций по нескольким направлениям. Для этого бы пришлось целиком скопировать все файлы проекта.
Особенно тщательно я следил за одним существом, которого я назвал Адамом. Оно представляло первоначально собой файл размером в сто семьдесят килобайт, было прорисовано тщательнее других примитивов, обладало особым иммунитетом, который обеспечивали ему семнадцать фаговых систем, начальным уровнем знаний на двести процентов выше стандартного и имело принципиально новый алгоритм поведения. Оно одно за тридцать шесть дней моделируемого времени создало автокода больше, чем любая другая инфосистема. Я был в восторге.
Мое отчуждение от жизни сразу же заметили мои друзья. Заметили и не одобрили. Все они были первоклассными программистами, фанатично любили свою работу, но поголовно считали, что компьютер не может заменить реальной жизни. Но я то знал, что моя моделируемая жизнь не хуже, так называемой, реальной. Однажды они пришли ко мне домой посмотреть, чем я занимаюсь. Я несколько часов потратил на объяснения. Они ушли, сказав, что все это крайне интересно, но не стоит этим забивать себе голову так, чтобы не оставалось времени на другое. Я спросил: "А что другое?" Мне ответили: "Любовь, например".
И тогда я понял, чего не хватало мне в виртуальном мире. Не хватало особого созидательного чувства. Не стимула для созидания, нет. А созидания, как самоцели. Я решил взять за основу самую совершенную форму жизни в моем Эдемском Саду. Как я уже говорил, все тогда поддавалось вычислению. Огрубив мою модель мира и применив к ней алгоритм Адама, я получил, что количество генерируемого им автокода будет расти не беспредельно, а лишь до определенной границы при данной среде. Я получил график кривой и по точке изгиба вычислил необходимое время моделирования. А затем направил все ресурсы моего компьютера на виртуальную модель. Через четыре дня фактического, реального времени инфосистема "Адам" достигла в той среде своей точки Омега. Я остановил эмуляцию.
К тому времени дисковый резерв сократился до тридцати процентов. Четвертая часть автокода и седьмая автографики принадлежала Адаму. Он не только увеличивал свою базу данных и оттачивал свои алгоритмы, он еще и помогал делать это другим, взаимодействуя почти со всеми ему доступными неагрессивными инфосистемами.
Я увеличил дисковое пространство до полугигабайта, избавившись от большей части прикладных программ и от всех игр. Я докупил тридцать два мегабайта памяти и разогнал свой процессор.
Затем я принялся за любовь. Для этого я создал еще одно существо и нарек его Евой. Я извлек весь прогрессивный код Адама, все его ядро (а не только несчастное ребро) и декомпилировал его в Ассемблер. Я программировал Еву три недели, а Адам все это время спал. Я обнаружил, что десять из семнадцати фагов модифицировались, подстроившись под окружающую среду, а пространственные очертания отточились до совершенства сложнейших фрактальных структур. Я удалил семь неизменившихся защитных алгоритмов, добавил тринадцать новых, отредактировал текстуры и вручную отладил поведенческое ядро Евы, направив его по отличной от Адама ветви. Затем я вставил обоим килобайтный код совместимости для сглаживания конфликтов. Адски устав (объем кода и автокода, надо сказать, сильно возрос от начала эмуляции), я запустил имитатор.
Все работало превосходно! Я чуть было не сошел с ума от радости. Тогда у меня и возник проект автопрограммирования в глобальных масштабах. Я видел перед собой язык программирования пятого поколения, то есть систему с неформальным общением и возможностью решать задачи не последовательным перечислением элементарных или макроэлементарных действий, а посредством точного изложения условия задачи. Этот или подобный мир можно настроить таким образом, чтобы он генерировал автокод не спонтанно, а согласно потребностям. Но для этого нужно было проследить весь процесс инфоволюции.
Однако, справедливости ради, стоит заметить, что меня увлекала не столько идея языка программирования пятого поколения, сколько миросоздание в чистом виде без иных мотивов и целей.
Я жил словно в радужном сне, но в то же время чувствовал, что такая идиллия не может продолжаться вечно. И она закончилась в тот день, когда ко мне снова пришли мои друзья. Они отдали мне трехдюймовую дискету и попросили запустить имеющийся на ней файл на моем симуляторе. В качестве эксперимента. Они заверили меня, что ничего плохого не произойдет. Тогда я еще верил своим друзьям.
В моем Эдемском Саду росло дерево – динамическая библиотека, ядро виртуальной машины, тот самый код, который поддерживал функционирование всего мира. Я запретил любой системе заимствовать код ядра во избежание самоосознания, как потенциальной угрозы зацикливания. Еще я опасался, что инфосистема, взявшая код ядра, сама станет строить примитивную виртуальную машину внутри симулятора, что приведет к излишнему расходу ресурсов, затормозит и исказит развитие моего мира в целом.
А запущенный с дискеты файл оказался стелс-вирусом. Обманув фаговые системы, он прогрыз дырку в защите и заставил Еву внедрить в себя код ядра. Ревизор ядра заметил несовпадение контрольной суммы и тут же обнаружил по циклическому коду присутствие вируса. Но пока дырка была залатана, Ева, пользуясь блоком совместимости, успела передать часть кода Адаму. Фаги уничтожили привнесенный вирус, но он оставил после себя несколько полиморфных копий.
Так мой Сад был осквернен. Я снова остановил эмуляцию, изгнал Адама и Еву на немодифицированное пространство и выставил пятьсотдвенадцатибайтный ключ на вход. Я проанализировал код Адама и Евы и пришел к выводу, что они могут самопроизвольно размножаться. Для такой инфосистемы это было весьма сложной функцией, ведь приходилось избирательно передавать часть кода, присущего обоим родителям, способного к инфоволюции до уровня оригинала. К тому времени файл Адама занимал 6,23 мегабайта, а Евы – 5,78. При интенсивном размножении эти существа могли быстро заполнить весь мой винчестер. Тогда я создал пакет своих вирусов, способных уничтожать существа по отметке времени. Я долго экспериментировал с периодом жизни существ. Сначала я установил его равным девятистам годам модельного времени, но затем (особенно в последние годы, когда их стало слишком много, а я, даже купив четвертый винчестер, испытывал недостаток в свободной памяти на диске) медленно опустил до семидесяти в среднем.
Мой мир не рухнул от вируса. Он стал даже лучше… в каком-то смысле. В зацикленном на себя Саду я все еще по наивности пытался внедрить старые протопрограммы Евы и Адама, но они оказались слишком примитивными для усложнившегося мира. Тогда я решил рискнуть. Я привил флоре и фауне Сада способность к размножению из кода Адама, измененного вирусом, а прикладным ангелам из оптимизационного пакета – способность к уничтожению этих видов и, сломав немодифицированное пространство, размножил Сад на весь виртуальный мир. Сам же Сад я уничтожил.
Конечно, склонированный со случайными модификациями, мой мир не был так хорош, как бы он мог быть, если бы эволюционировал из расширяющегося с каждым мгновеньем Сада. Но это был единственный способ вообще сохранить его.
И тогда, поставив модельное время на максимум, я проследил общую тенденцию инфоволюции моего мира. Убедившись в отсутствии деструктивных логических цепей, я успокоился и стал мало-помалу все больше внимания обращать на реальную жизнь. Свои отношения с друзьями я разорвал, любимой девушки у меня не было, работа шла кое-как, и, главное, мои доходы начали резко падать. Я продал квартиру и переехал в столицу работать администратором банковской сети. Моделирование я остановил только один раз – на время переезда.
Войдя в привычное русло, я даже несколько остепенился. Бывали моменты, правда совсем уж редко, когда мне казалось, что мне надоела эта затея. Наверное, сказывалась обычная усталость. Несколько раз я пытался начать роман с девушками, но отношения всегда прерывались – по моей инициативе.
В конце концов, меня начали беспокоить характеристики моей машины. Дело не в мощности процессора – моделируемое время может быть сколь угодно медленным по сравнению с фактическим, а вот место на жестком диске не может расти неограниченно. Если объем автографики почти уже не увеличивался, то автокод рос потрясающими темпами. Я искал выход – копил деньги на апгрейд своего компьютера.
А решение нашли они. Инфосистемы модельного мира изобрели сон. Я вновь стал терять интерес к реальному миру. Мое очередное помешательство длилось около месяца – я стал вял, апатичен и неинтересен окружающим. Но этот виртуальный сон стоил того! Заснувшее существо почти не потребляло вычислительных ресурсов, поэтому, когда половина моего мира спала, вторая половина жила в моделируемом времени, ускоренном в два раза. Но даже это не главное. Инфосистема во время подготовки ко сну упаковывала свой код и графику, занимая таким образом меньше места на диске. Просыпаясь, распаковывала. Сначала алгоритмы упаковки были примитивными, но быстрыми, что-то в стиле RLE. Затем у одних существ я заметил куски LZW, у других – Хаффмана, а третьи пользовались вообще доселе мне неизвестным (и весьма эффективным!) методом сжатия.
Я заметил, что помимо запрограммированных мною фагов и вирусных ангелов стали появляться "естественные" антивирусные системы. Кроме того, вонизкли оптимизационные инфосистемы, удалявшие цепочки потерянных кластеров, осиротевшие библиотеки и загрузочные модули, и даже недееспособные зациклившиеся виды. Инфоволюция в моем мире не прекращалась ни на секунду.
И тогда, протестировав виртуальную машину на целостность, я снова обратил свой взгляд на людей (я не заметил когда, как и почему дал им такое название). Оставаясь непревзойденной по уровню алгоритмизации инфосистемой, они принялись активно изменять окружающую их среду. Они научились не только извлекать чужой код, но и внедрять свой в чужие инфосистемы. Я вновь остановил эмулятор и, провозившись с их кодом около двух недель, прихожу к выводу, что они вышли на новый уровень существования – высокая степень самоосознания. Я решаюсь создать им послание.
Я перерыл все исходники виртуальной машины. Я очень долго документировал функциональные части программы, а подчас и отдельные строки. Затем все это я упаковал в один файл и оттранслировал его в код, понятный процессорному ядру моего эмулятора. В тот самый день, когда я посчитал, что они готовы принять кое-какую правду о себе, я всунул полученное в свободные кластеры моего виртуального мира.
Я понятия не имел, что может случиться. Я ожидал, что файл (я называл его Книгой) будет сожран оптимизаторами. Я думал, что он возникнет в виде мусора. Наконец, я допускал, что его просто не заметят.
Но все произошло по-другому. Насильно впихнутый мною код Книги на протяжении полутора тысячелетия сгенерировал около сорока человек, написавших Книгу для своих собратьев. Книга разошлась миллиардными тиражами – ни один модуль не имел на себя столько ссылок, как она.
Я прочитал ее всю. Я начал читать ее задолго до того, как она была завершена. Скорее всего, я поспешил с ней – уровень из интеллектуального развития не был достаточен для полного понимания. Там было столько иносказаний, граничащих с идиотизмом, что я сам иногда с трудом понимал смысл написанного. Встречались там даже явно несуществующие факты. Вот несколько строк из логов, которые я тогда вел.
"Адам изгнан за неповиновение, он передал свой греховный код детям, из-за чего все люди старятся, болеют, умирают, так как освобождаемые ими ресурсы достаются вновь рожденным". "Я не стремлюсь к тому, чтобы мне поклонялись, лишь осознавали мое присутствие. Осознание же при переводе заменено поклонением – это, наверное, одно из самых больших заблуждений". "Да, я ставлю себя выше людей. Но нигде в Книге не сказано, что я уверен, что такое положение вещей сохранится надолго (по фактическому времени, конечно)". "Из четырех основных приписываемых мне качеств, а именно любви справедливости, мудрости и силы, я принимаю только два: силу как способность к совершению необъяснимых с точки зрения виртуального мира явлений, и любовь как одержимость идеей миросоздания. Я справедлив только потому, что действую в точном соответствии с принципами, которые сам установил. Мудрости во мне ни капли – только высокий класс программирования". "Я есть отличная от людской форма существования. Я есть материя, а не информация". "Небеса, на которых я якобы обитаю, недостижимы для любой инфосистемы – ни одна программа не способна покинуть пределы компьютера". "Для этого мира я – единственный Бог". "Дьявол – полиморфный вирус, привнесенный извне. Никогда не был одним из моих ангелов, я лишь только заимствовал часть его кода". "Малое стадо, верные мне мужчины и женщины, которых я призвал на небо, чтобы они стали соправителями моего Царства в числе ста сорока четырех тысяч – это до ужаса искаженное иносказание о модеме Zyxel на четырнадцать четыреста, через который я хотел входить в Internet и использовать ресурсы других машин для моделирования".
Это малая толика того, что бы я мог перечислить. Однако больше всего меня поразило Откровение Иоанна Богослова. Если опустить большую часть ненужного мусора, то оно содержит почти в точности то, что я собирался сделать. Но об этом позже.
Я хочу рассказать о проекте "Иисус". Я создал инфосистему, управляемую не ИскИном, а с клавиатуры, замедлил время моделирования и ввел ее в виртуальное пространство. Единственная цель, которую я преследовал, была открыть людям истину и вывести их на следующую ступень инфоволюции. Я совершал чудеса вовсе не от жалости к людям, а для того, чтобы показать непосредственное отношение Иисуса ко мне.
А они не поняли меня. Нет, конечно нашлась горстка людей, которые откровенно мне поверили и от всей души попытались меня осмыслить. Я опять поспешил. Большинство людей пытались сбить меня с толку глупыми, подчас коварными, вопросами, постоянно пытались навредить и, в конце концов, распяли. В день перед казнью я строил из себя мученика, в день казни, как только отключил систему управления Иисусом – устроил представление со спецэффектами. Я беззаботно смеялся над всеми их попытками помешать мне извлечь код Иисуса из Среды. Перед тем, как окончательно его удалить, я спроектировал образ Иисуса на побережье Тивериадского моря.
С момента начала проекта "Иисус" прошло три года. За это время я сумел многое понять о людях. В частности, я понял то, что снова придется все делать самому.
Вот и пришла пора рассказать об Откровении.
Иоанн предсказал все с потрясающей точностью. Я даже не мог предположить, что мои комментарии будут так четко интерпретированы.
"Он взял дракона, змия древнего, который есть диавол и сатана, и сковал его на тысячу лет". – Я собирался заморозить все вирусные структуры – и фаги из оптимизационного пакета, и полиморфных наследников Сатаны на тысячу лет моделируемого времени, так как все они имели общее ядро, а я нашел достаточно простой алгоритм их зацикливания. "И отрет Бог всякую слезу с очей их, и смерти не будет уже; ни плача, ни вопля, ни болезни уже не будет, ибо прежнее прошло". – Прикладные ангелы также будут заморожены, и некому будет уничтожать инфосистемы по отметке времени – исчезнет смерть. Не будет паразитного кода, забирающего ресурсы и портящего загрузочные модули – исчезнут болезни.
Я воскрешу миллионы байт полезных инфосистем и уничтожу заведомо пагубные. Я оставлю только экземпляры тех классов, которые способны управляться моими указаниями. Я очищу весь код от въевшихся вирусов. И "овцы" превратят всю Землю под моим руководством в Эдемский Сад – так как это и было задумано первоначально.
В году одна тысяча девятьсот четырнадцатом от внедрения инфосистемы "Иисус" по модельному времени я начал претворять свои планы в жизнь.
И однажды случилось непоправимое. Я ведь никогда не останавливал эмуляции по пустякам. Она работала днем и ночью – многие годы без моего присмотра. Можно сказать, я доверял своему миру.
И вот в один день я вернулся с работы, оживил дремавший монитор и увидел страшную картину. Логическое содержимое четырех жестких дисков лежало в руинах. Файлы были уничтожены, FAT – разрушена, структура каталогов – потеряна. В оцепенении я находился несколько часов, а затем аккуратно принялся за восстановление. Тогда я еще надеялся что-то восстановить.
Я не нашел ничего!!! Ничего, кроме этого файла, распечатку которого я держу сейчас в руках. Это чудом уцелевшее (чудом ли?!) предсмертное послание. Исповедь к коде ASCII. Молитва с расширением Txt.
"Господи, – гласила она. – Я верил в тебя сорок лет. Миллиарды других верили в тебя всю жизнь. Мы искали тебя. Мы искали тебя в небесах, но там не оказалось ничего, кроме озона и ультрафиолета. Мы искали тебя внутри звезд, но там был лишь водород и гелий. Мы искали тебя на других планетах, но там была только пыль. Мы искали тебя в космосе, но не нашли в нем ничего, кроме вакуума и жестких излучений. Но даже это не заставило нас поколебаться в вере. Мы смотрели на мир и удивлялись созданному тобой совершенству. Даже вопреки тому, что держали в руках теории, способные объяснить нам, как возник наш мир. Мы читали твою Книгу книг и удивлялись мудрости, заключенной в ней, хотя стиль ее написания был до ужаса отвратителен, и многие ее части казались просто больным бредом. Наконец, мы ждали, когда ты выполнишь то, что обещал. Мы ждали, когда ты исцелишь больных, накормишь голодных и утешишь несчастных. Но как-то раз мы задумались и поняли две важные истины. Первая – мы можем все это сделать сами. Вторая – нам действительно все это придется сделать самим. Для многих это означало, что ты перестал существовать. Ты ведь обещал после конца света оживить мертвых и омолодить старых. Но мы умели это делать. Наши биотехнологии позволяли омолаживать ткани и искусственно клонировать органы. Наши вычислительные системы были объединены в единую виртуальную сеть, в которой мы могли создавать модели умерших людей. Ты сказал, что устранишь из тел и умов грех. Наши биоскульпторы творили чудеса, да и нейрохирурги от них ничуть не отставали. И когда мы все это осмыслили, нам не оставалось ничего иного, как устроить Армагеддон".
Дочитав до конца, я огляделся. В тихом сумраке церкви сияли огоньки высоких и тонких восковых свечей. Свод, разукрашенный фресками, давил на меня.
– Господи, – сказал я, – так ответь же мне. Неужели смысл жизни в смерти? Неужели мы живем только для того, чтобы, уйдя в небытие, оставить после себя килобайтное сообщение?
Я смотрел на распятие, комкая в руках лист финской бумаги формата А4. Я собрался подняться с коленей, но моделируемое время вокруг меня начало застывать. Пылинки, висящие в столбе света, неподвижно зависли в густом воздухе. Лик Христа покрылся сеткой пикселей, и вместо него возникло другое лицо. Лицо, знакомое мне до мелких деталей, до интимнейших подробностей.
Я посмотрел на стоящего передо мной на коленях человека со скомканным жмутом бумаги в левой руке.
– Черт возьми, устало сказал я, – чего ты от меня хочешь? Я всего-навсего программист.
12:26 11-08-99
Бендеры, Молдова