"Компьютерная вирусология" - читать интересную книгу автора (Безруков Н.Н.)

препятствием для получения интересных результатов: в ходе пробного
прогона один бесплодный мутант убил и съел единственного, способ-
ного к размножению.


1.1.1. Первые эксперименты

В 1962 г. В.А.Высотский (V.А.Vyssotsky), Х.Д.Макилрой
(H.D.McIlroy) и Роберт Моррис (Robert Morris) -- фирма Bell
Telephone Laboratories, США -- изобрели достаточно необычную игру
"Дарвин", в которой несколько ассемблерных программ, названных
"организмами", загружались в память компьютера. Организмы, создан-
ные одним игроком (т.е. принадлежащие к одному виду), должны были
уничтожать представителей другого вида и захватывать жизненное
пространство. Победителем считался тот игрок, чьи организмы захва-
тывали всю память или набирали наибольшее количество очков. Игра
проходит на большом участке памяти, называемом ареной и управляе-
мом специальной программой -- супервизором. Вид V состоит из N(V)
особей. Каждая особь (K=1..N(V)) имеет размер S(K) (K=1..N(V),
S(K) < MAXS) и расположена в R(K) последовательных ячейках, начи-
ная с головы G(K), причем R(V) точек со смещениями
P(K,1)..P(K,R(V)) относительно головы являются защищенными. Орга-
низм, который получает управление, может использовать три вида об-
ращения к супервизору:
PROBE(n,loc) -- запрос о содержании ячейки с адресом loc (если
эта ячейка защищена, то управление передается ее обладателю, а ес-
ли нет, то возвращаются три числа -- <номер вида организма, занима-
ющего ячейку> (ноль, если ячейка свободна), <начало> и <конец>
(если ячейка свободна, то начало и конец свободного участка арены,
в который она входит; нули, если ячейка занята организмом));
KILL(loc) -- уничтожить организм по адресу loc (loc должна при-
надлежать организму другого вида и должна быть предварительно исс-
ледована PROBE любым организмом того же вида, что и нападающий);
CLAIM(n,loc) -- размножить организм на участок свободного про-
странства, включающий loc (ячейка loc должна быть предварительно
исследована с помощью PROBE и не менее S(K) ячеек должно быть сво-
бодно, возможно, в результате предыдущего KILL).
"Игра для полуночников", возникшая в фирме Bell Telephone
Laboratories, быстро приобрела популярность и в других учебных и
исследовательских центрах, например в исследовательском центре
фирмы Ксерокс в Пало Альто и в Массачусетском институте технологии
(МИТ). Отметим, что долгое время описание игры существовало только
"в устном фольклоре": статья с описанием игры была опубликована
только в 1972 г. [SP&E72], причем в ее тексте использовался термин
"вирус" применительно к одному из видов организмов.
Приблизительно в 1970 г. была создана саморазмножающаяся про-
грамма для одной из первых компьютерных сетей -- APRAnet. Программа
CREEPER, которая по некоторым данным была написана Бобом Томасом
(Bob Thomas) из BBN, путешествовала по сети, обнаруживая свое по-
явление сообщением