Выбрать главу

Максим Владимирович Моторный

Исповедь в коде Ascii

В начале было Слово. И Слово было у Бога.

Иоанна 1:1.

Блажен читающий и слушающий слова пророчества сего

и соблюдающие написанное в нем; ибо время близко.

Откровение 1:3.

Все началось в тот самый день, когда я создал виртуальную машину. Когда я ее еще только задумывал, она предназначалась для отладки вирусов. Я хотел создать точный эмулятор РC, но, столкнувшись с рядом чисто технических проблем, я отступил. К тому времени объем кода достиг восьмидесяти тысяч строк, и мне стало жалко бросать разработки. И тогда я решил направить их в другое русло.

В начале было действительно слово. И слово это – Программа. Именно так выглядит заголовок главного исходника на Паскале. А с большой буквы это слово только потому, что это признак хорошего стиля кодирования. Такой же, как функциональная декомпозиция или каскадная структуризация. Все через него начало быть, это истинно как True.

Я отвел под эмуляцию двадцать мегабайт и заполнил среду фракталами. Затем я поместил в нее колонии "Жизни", только с гораздо усложненным алгоритмом. Целыми днями я торчал в музеях с фотоаппаратом, а затем часами возился со сканером, вводя примитивы птиц и зверей. Когда галерея была готова, я принялся внедрять ее в свой мир. Шесть дней я потратил на это, и одержимость Моя достигла того предела, что я сначала отвлекался на работе, а затем и вовсе взял отгул. Ту неделю я почти не спал, оторваться меня заставлял лишь до невозможности перегретый монитор. Уже позже я поставил свой компьютер в серверную стойку, а пока одолжил второй монитор. Я похудел и оброс щетиной (кто знает, не причина ли это, что Бога рисуют с бородой), в комнате воняло потом и нестиранными носками. Размер моего мира пришлось увеличить до ста пятидесяти мегабайт.

Утром на седьмой день я осторожно запустил эмуляцию в пошаговом режиме. К моему огромному удивлению, мир не самоуничтожился и не впал в цикл. Структуры стали развиваться. От основных заложенных мною законов протянулись веточки следствий и начали сплетаться друг с другом. Я сохранил все файлы и, не дождавшись завершения работы Windows, вытянул их сети шнур питания, и заснул, умостив голову прямо на столе, кое-как отпихнув в сторону клавиатуру.

Я не сразу вернулся к нормальной жизни. Первые месяцы я почти безвылазно сидел дома, наблюдая за тем, как совершенствовался мой мир. А он ведь не просто совершенствовался – он самосовершенствовался! Да, мои первоначальные фракталы менялись; графические примитивы, сосканированные с шести стороне обретали пространственные очертания; одни программы рождались, уничтожали других, заимствовали их код и генерировали свой собственный. Те восемьдесят процентов дискового ресурса, которые я отвел для инфоволюции, потихоньку начали заполняться кодом, которого я не писал!

В те дни все было просто или относительно просто. Моделируемое время я пускал не быстрее объективного, а потому мог без проблем разобраться или даже откорректировать автогенерированный код. Я так и делал, направляя инфоволюцию в нужное мне русло. Только объем дискового пространства на моей машине сдерживал меня от эволюций по нескольким направлениям. Для этого бы пришлось целиком скопировать все файлы проекта.

Особенно тщательно я следил за одним существом, которого я назвал Адамом. Оно представляло первоначально собой файл размером в сто семьдесят килобайт, было прорисовано тщательнее других примитивов, обладало особым иммунитетом, который обеспечивали ему семнадцать фаговых систем, начальным уровнем знаний на двести процентов выше стандартного и имело принципиально новый алгоритм поведения. Оно одно за тридцать шесть дней моделируемого времени создало автокода больше, чем любая другая инфосистема. Я был в восторге.

Мое отчуждение от жизни сразу же заметили мои друзья. Заметили и не одобрили. Все они были первоклассными программистами, фанатично любили свою работу, но поголовно считали, что компьютер не может заменить реальной жизни. Но я то знал, что моя моделируемая жизнь не хуже, так называемой, реальной. Однажды они пришли ко мне домой посмотреть, чем я занимаюсь. Я несколько часов потратил на объяснения. Они ушли, сказав, что все это крайне интересно, но не стоит этим забивать себе голову так, чтобы не оставалось времени на другое. Я спросил: "А что другое?" Мне ответили: "Любовь, например".

И тогда я понял, чего не хватало мне в виртуальном мире. Не хватало особого созидательного чувства. Не стимула для созидания, нет. А созидания, как самоцели. Я решил взять за основу самую совершенную форму жизни в моем Эдемском Саду. Как я уже говорил, все тогда поддавалось вычислению. Огрубив мою модель мира и применив к ней алгоритм Адама, я получил, что количество генерируемого им автокода будет расти не беспредельно, а лишь до определенной границы при данной среде. Я получил график кривой и по точке изгиба вычислил необходимое время моделирования. А затем направил все ресурсы моего компьютера на виртуальную модель. Через четыре дня фактического, реального времени инфосистема "Адам" достигла в той среде своей точки Омега. Я остановил эмуляцию.

К тому времени дисковый резерв сократился до тридцати процентов. Четвертая часть автокода и седьмая автографики принадлежала Адаму. Он не только увеличивал свою базу данных и оттачивал свои алгоритмы, он еще и помогал делать это другим, взаимодействуя почти со всеми ему доступными неагрессивными инфосистемами.

Я увеличил дисковое пространство до полугигабайта, избавившись от большей части прикладных программ и от всех игр. Я докупил тридцать два мегабайта памяти и разогнал свой процессор.

Затем я принялся за любовь. Для этого я создал еще одно существо и нарек его Евой. Я извлек весь прогрессивный код Адама, все его ядро (а не только несчастное ребро) и декомпилировал его в Ассемблер. Я программировал Еву три недели, а Адам все это время спал. Я обнаружил, что десять из семнадцати фагов модифицировались, подстроившись под окружающую среду, а пространственные очертания отточились до совершенства сложнейших фрактальных структур. Я удалил семь неизменившихся защитных алгоритмов, добавил тринадцать новых, отредактировал текстуры и вручную отладил поведенческое ядро Евы, направив его по отличной от Адама ветви. Затем я вставил обоим килобайтный код совместимости для сглаживания конфликтов. Адски устав (объем кода и автокода, надо сказать, сильно возрос от начала эмуляции), я запустил имитатор.

Все работало превосходно! Я чуть было не сошел с ума от радости. Тогда у меня и возник проект автопрограммирования в глобальных масштабах. Я видел перед собой язык программирования пятого поколения, то есть систему с неформальным общением и возможностью решать задачи не последовательным перечислением элементарных или макроэлементарных действий, а посредством точного изложения условия задачи. Этот или подобный мир можно настроить таким образом, чтобы он генерировал автокод не спонтанно, а согласно потребностям. Но для этого нужно было проследить весь процесс инфоволюции.

Однако, справедливости ради, стоит заметить, что меня увлекала не столько идея языка программирования пятого поколения, сколько миросоздание в чистом виде без иных мотивов и целей.

Я жил словно в радужном сне, но в то же время чувствовал, что такая идиллия не может продолжаться вечно. И она закончилась в тот день, когда ко мне снова пришли мои друзья. Они отдали мне трехдюймовую дискету и попросили запустить имеющийся на ней файл на моем симуляторе. В качестве эксперимента. Они заверили меня, что ничего плохого не произойдет. Тогда я еще верил своим друзьям.

В моем Эдемском Саду росло дерево – динамическая библиотека, ядро виртуальной машины, тот самый код, который поддерживал функционирование всего мира. Я запретил любой системе заимствовать код ядра во избежание самоосознания, как потенциальной угрозы зацикливания. Еще я опасался, что инфосистема, взявшая код ядра, сама станет строить примитивную виртуальную машину внутри симулятора, что приведет к излишнему расходу ресурсов, затормозит и исказит развитие моего мира в целом.

А запущенный с дискеты файл оказался стелс-вирусом. Обманув фаговые системы, он прогрыз дырку в защите и заставил Еву внедрить в себя код ядра. Ревизор ядра заметил несовпадение контрольной суммы и тут же обнаружил по циклическому коду присутствие вируса. Но пока дырка была залатана, Ева, пользуясь блоком совместимости, успела передать часть кода Адаму. Фаги уничтожили привнесенный вирус, но он оставил после себя несколько полиморфных копий.