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

18

Алекс очень боялся, что его любимая программа покажется кому-то творением психа-энтузиаста, этакого шизонутого изобретателя вечного двигателя. Поэтому он ничего никому не говорил. Совсем. Последнее, что он делал задолго до всех обрушившихся на него проблем, это проводил «ходовые испытания» еще не окончательно отлаженного Октопуса в локальной сети Института. Программа была написана так, чтобы могла перемещаться по сети, и находить наиболее удобное по ряду параметров место, при этом располагая свои элементы в памяти разных, подключенных к локальной сети компьютеров. Если какой-то из этих компьютеров выключали, то Октопус в последний момент успевал перенести находящийся там элемент в память другого компьютера. Чем больше машин было подключено, тем меньше ресурсов каждой машины занимал Октопус. Новое место Октопус находил, запуская туда своего рода щупальце, проверяя и прощупывая обстановку на компьютере или в другой сети. Программа также могла удалять случайно оставшиеся временные и ненужные файлы и застрявшие в памяти модули, тем самым, при необходимости, освобождая себе место в памяти и на диске. Главная задача Октопуса состояла в поиске файлов баз данных, их оценка и обработка имеющейся там информации. Готовый материал направлялся хозяину Октопуса. Связь с программой осуществлялась посредством команд, посылаемых в виде обычных писем по электронной почте — Октопус имел функции почтового клиента, и обмен информацией должен был осуществляться через анонимные почтовые серверы.

Сама мысль возникла очень давно, еще после прочтения последних пяти книг «Хроник Амбера» Роджера Желязного. Написать программу по принципу Колеса-Призрака для Интернета, казалось весьма заманчивой мыслью. Октопус Алекса оказался не столько безумной идеей, сколько бесконечно сложной и трудной задачей. Постепенно пришлось от многих задумок отказаться, замысел упростить и отработать только ряд основных функций.

Дело в том, что находящиеся в Интернете многочисленные поисковые машины имеют фиксированные адреса и располагаются каждая на своем конкретном сервере, рыская повсюду посредством личных роботов-поисковиков. Но Алексу хотелось не этого. Его целью была переползающая по Сети постоянно меняющая место, скрытная, способная к маскировке от защитных программ система поиска заданной информации. Программу Октопус пришлось наделить элементами искусственного интеллекта, способностью к примитивным оценкам и обработке информации из встреченных ею баз данных. Программа могла «учиться» — сохранять в собственной базе данных наиболее ценную, для собственного выживания, информацию. Снабдить программу способностью к самовосстановлению в случае частичного повреждения, оказалось довольно просто. Самокопирование программы в определенных обстоятельствах вообще не представляло трудностей. Это уже давно делали многочисленные вирусы и сетевые черви, алгоритмы которых были хорошо известны. По идее, эта программа должна была эволюционировать, но не «по Дарвину», а по «Ламарку» — используя полезные данные, вносить изменения в основной код. В тело программы был помещен заархивированный код ее основных модулей и библиотек. Была написана функция регенерации, на случай потери того или иного модуля. Внутренний архив периодически переписывался и обновлялся. Способность к адаптации пришлось напрямую увязать с возможностью самопереписывания и самомодернизации некоторых программных модулей. Нерабочие и поврежденные модули автоматически восстанавливались самим Октопусом. Однако окончательного, желаемого эффекта Алекс, как ему казалось, так до конца и не достиг, хотя на написание всего перечисленного у него ушло несколько лет.

Осталось ещё окончательно доработать функции перехода в другие сети. Выпросив на неделю у знакомых необходимое оборудование, Алекс на свободном столе смонтировал вторую мини-сеть, состоящую всего из двух компьютеров. Эта временная карликовая сеть была соединена с основной локальной сетью Института полноценным шлюзом и нормальным, хотя и коротким, каналом связи. В день испытаний Алекс физически отсоединил институтскую сеть от информационного канала в Интернет, и подключил на его место канал карликовой сети. Отсутствие связи в течение одного дня он заранее объяснил профилактическими работами. Надо было проверить ряд функций почти готовой, но не совсем отлаженной программы. Не особенно беспокоясь, Алекс запустил Октопуса в институтскую локальную сеть, а поскольку выход в Интернет в этот день отсутствовал, он не боялся утечки. Позже Алекс хотел вычистить Октопуса из сети, на что имелась заранее подготовленная программа-киллер. В этот день он доводил до ума ряд функций, дописывал и переписывал некоторые куски программы, постепенно исправляя шероховатости и недочеты. Он снова вычищал, и снова выпускал Октопуса, пока уже поздно вечером, когда почти все ушли, он не добился желаемого результата. Убедившись, что Октопус, как надо проходит в микро-сеть и обратно, Алекс запустил киллера, в последний раз вычистил живого Октопуса из микро-сети и локальной сети Института. Затем он отключил микро-сеть, восстановил связь с Интернетом и ушел домой.