— Ну, хорошо, черт с ними с этими муравьями. Ты начинал рассказ с усложнения компьютеров как тупикового пути развития. Если я правильно тебя понимаю, ты хочешь сказать, что в сети компы будут мощнее, чем по отдельности? Так это и ежу понятно. Ведь сейчас делают сервера, в которых по несколько процессоров стоит, а не по одному.
— Ты не торопись. Дай мысль закончить. Так вот, муравьи с их примитивным мозгом и мощной системой общения похожи на отдельные клетки единого организма. Их язык, так же как и язык нейронов головного мозга человека — это язык химических реакций.
— Блин, ну дались тебе эти муравьи… В общем, я понял: муравейник — это большой мозг. Отличная идея… для фантастического рассказа.
— Нет. Это — не большой мозг, это — альтернатива большому мозгу. Заметь, насекомые на планете существуют сотни миллионов лет. Они появились значительно раньше динозавров и многие дожили до наших дней, практически не изменившись. Эволюция до мелочей отшлифовала их организмы. Между прочим, человек уничтожил много видов птиц, животных, но ни одного вида насекомых. Огромное количество существующих изобретений в науке — это просто использование особенностей разных насекомых.
— Ну и почему за эти миллионы лет не появилось цивилизации насекомых?
— А чем муравейник тебе не цивилизация? В рамках одного вида существует иерархическое делегирование полномочий, есть, по сути, разделение труда, который может выполнять каждая особь. Так же, как и у нас: каждый может приготовить яичницу или водить машину, но постоянно этим занимаются повара и водители. Кстати, именно разделение труда на уровне большого сообщества, по сути, деление на профессии считается многими учеными признаком цивилизации. В человеческих племенах цивилизации нет, потому что сегодня все охотятся, завтра все собирают бананы, послезавтра делают одежду. У них нет отдельно воинов, педагогов, землепашцев и охотников. У муравьев это все есть.
— Хорошо, убедил. — Алекс улыбнулся. — Муравьи это тайная цивилизация планеты, но нам-то они зачем?
— Объясню. Сейчас многие компании ведут разработку серверов с несколькими параллельно работающими процессорами, в некоторых научных центрах создают компьютерные сети для проведения сложных расчетов сразу на многих параллельно работающих машинах. Но это все не то. В таких системах поломка одного процессора или компьютера останавливает работу всей системы, поскольку каждый элемент выполняет важную часть работы и резервного элемента не предусмотрено. Такие резервные элементы могут позволить себе только военные и системы управления опасными объектами.
— Ну, ясное дело, ведь, по сути, это создание двух-трех резервных простаивающих систем. Это ж ого-го как дорого, — Алекс начал понимать к чему клонит Виктор.
Алекс, как и большинство хакеров того времени, занимался взломом закрытых баз данных из любви к искусству, а не с корыстной целью. Никогда речь не шла о доступе к паролям банков, платежных систем или секретам военных организаций. Взломать платные библиотеки, порно-сайты — вот, в принципе, круг интересов того времени.
Точно так же каждый новичок программирования пытался написать свой вирус, тогда это было что-то вроде самоутверждения. Большинство таких вирусов, просто перегружали память системы, замедляя ее быстродействие. Целью было не испортить машину, а создать вирус с большей степенью защиты от обнаружения антивирусными программами. Алекс тоже писал такие вирусы, когда только начинал всерьез интересоваться программированием.
Но сейчас, когда он перешел к взлому чужих баз данных он столкнулся с проблемами работы с зашифрованными данными. Для взлома паролей, созданных даже несложными программами по кодированию, требовались такие ресурсы, что даже мощному серверу требовалось несколько часов, чтобы подобрать ключ. Поэтому требовался резкий скачок роста производительности программ дешифровки. Но пока его не может обеспечить даже "Закон Мура" гласящий, что каждые 24 месяца количество транзисторов у процессоров будет удваиваться.
— Все очень просто, — продолжал Виктор, — посредством интернета мы будем давать сотне тысяч компьютеров маленькие задачи для расчета с двойным и даже тройным дублированием. Каждый из компов будет выдавать обратно в Сеть только результат, поэтому канал связи перегружать не будут. А размер самих расчетов не будет отражаться на производительности машины, поэтому пользователь его не заметит. Дублирование поставленных задач многими машинам позволит всей системе избежать проблем, если часть их периодически будут выходить из сети или пользователи просто выключат свои компьютеры.
— Звучит, конечно, фантастически здорово, но, во-первых, я с трудом представляю сложность этой программы. А во-вторых, — Алекс сделал паузу, — как договорится с владельцами этих компов, чтобы они разрешили ими пользоваться.
— Как раз с установкой проблем меньше всего, — Виктор улыбнулся, — я думал, ты сразу догадаешься. Пишется вирус, который потом подгрузит основное приложение, а сам уничтожится.
— Но новое приложение пользователь заметит или антивирус обнаружит. А то и обнаружит сам вирус-инсталлятор
— Именно для этого ты мне и нужен. Умка, я же встречал твои работы, поэтому пригласил тебя. Я в этих антивирусных защитах не большой спец, а у тебя, слышал, получалось неплохо. Ну и с другой стороны, идея в том, что это у нас, в совке, с компами и интернетом имеют дело в основном специалисты, которые, не подключив антивирус, комп не включат. На Западе уже даже домохозяйки и секретарши пользуются Интернетом там вирусам вольготнее.
— Но почему вирус?
— Ну, хорошо, может, я не правильно выразился. Просто до этого никто не делал программ, которые дружелюбно, но без разрешения владельца, внедряются в операционную систему. Просто никому это раньше не нужно было.
— Ладно, предположим, внедришь ты вирус, который будет отбирать часть ресурсов, — Алекс не говорил, он думал вслух. — Но я так и не понял принцип работы основной программы. На машине пользователя она будет работать и получать задачи от головного компьютера, где установлена программа управления ресурсами, распределения заданий, аккумулирования результатов для дельнейшей обработки. Все равно, получается, нужен суперкомпьютер, который уже не сам будет делать расчет, а делегировать эти задачи другим, а потом их обрабатывать.
— Верно, — согласился Виктор, — но ты мыслишь слегка прямолинейно. Ты пытаешься сосредоточить в одном месте принятие решения. А важно сделать систему неуязвимой, то есть лишить ее центра принятия решения. На самом деле нужен не центр принятия решения, а центр или несколько для аккумулирования решений. То есть места, где решения можно получить.
— Знаешь, — сказал Алекс. — теоретически выглядит красиво, но, честно говоря, я смутно представляю, как это может работать.
— Я работаю над этим проектом уже больше года. Смотри сюда, — Виктор положил на столе ватман, стоявший до этого свернутым рядом с письменным столом. — Я для простоты понимания набросал саму схему взаимодействия элементов в системе. Понятно, что много еще не решенных задач и алгоритмов, но в целом работа движется. Одна из проблем — тестирование. Прототип в коде я уже набросал и можно пробовать его внедрять, но нужны машины, объединенные в сеть. А эту задачу я пока не решил. Сам я вирусы писать не очень умею, да и не хочу отвлекаться, мне с основной программой еще копаться и копаться. Поэтому тебя и пригласил. Там масса такого, чего раньше никто не делал, особенно с учетом того, что вирусность распространения — это только этап установки инсталятора. Я видел твой код — видно, что многие вещи ты не читал, а изобретал сам — вот это для меня важно.