Обыденные представления о технической стороне «стратегической оборонной инициативы» (СОИ) сосредоточены на лазерах, пучковом оружии и тому подобных экстравагантных технических средствах. Сравнительно мало обращается внимания на то, что вся система должна будет функционировать полностью автоматически, под контролем сети компьютерных программ. «Создалось бы положение, когда принципиально важные, необратимые по своим возможным последствиям решения принимались по сути дела электронными машинами, без участия человеческого разума, политической воли, без учета критериев морали и нравственности, — отметил М. С. Горбачев. — Такое развитие событий могло бы привести к всеобщей катастрофе — даже если его изначальным импульсом послужат ошибка, просчет, технический сбой крайне сложных компьютерных систем»2.
В самом деле, поскольку система «звездных войн» должна будет прореагировать за считанные секунды, не будет времени даже для того, чтобы «разбудить президента», как выразилось одно должностное лицо Организации по осуществлению СОИ3. Компьютеры, связанные с орбитальными датчиками, должны будут провести различие между тысячами боеголовок и других средств и десятками тысяч приманок. Компьютеры должны будут рассчитать траектории всех предметов в пределах так называемого «облака угрозы» (по некоторым оценкам, информация будет поступать о 300 тыс. объектов)4. Компьютеры должны будут выбрать подходящую стратегию, определив наиболее важные цели. Компьютеры должны будут нацелить оружие, проверить, уничтожены ли ракеты и боеголовки противника. И все это необходимо сделать, по американским расчетам, за 100-300 секунд. За это время компьютеры СОИ должны будут принять решения, которые в условиях обычной войны принимались множеством специалистов по разведке, боевых командиров, генералов, комитетом начальников штабов и главнокомандующим в течение недель и даже месяцев.
«Люди, судя по всему, просто не понимают, что проблемы компьютерных программ отличаются от большинства других технических проблем. Существуют фундаментальные причины, почему программное обеспечение невозможно сделать достаточно надежным, чтобы можно было не сомневаться в том, что система „звездных войн” действительно сработает», — сказал Дэвид Парнас, крупнейший авторитет по крупномасштабному программированию5. Д. Парнас был назначен Организацией по осуществлению СОИ членом консультативного комитета «по программированию управления боевыми операциями». Ознакомившись подробнее с тем, что ждет от него Организация по осуществлению СОИ, Д. Парнас отклонил сделанное ему предложение, одновременно представив восемь технических документов, которые объясняли, почему программа не сможет работать так, как требуется.
Специалисты по компьютерам знают, что все программы, даже те, которые продаются для коммерческих целей, содержат дефекты, причем многие из них обнаруживаются лишь через годы. Иногда устранение дефектов программы продолжается спустя долгое время после развертывания нового оружия, снабженного компьютерами. Программистов, например, доставляют вертолетами на корабли, и только в процессе модификации и отладки программа становится более или менее надежной. В условиях получасовой войны, которая будет вестись с помощью системы управления СОИ, таких возможностей не будет.
Дефекты в программах — вовсе не свидетельство неаккуратного программирования, а реальный факт, с которым приходится мириться даже лучшим программистам. Кроме того, поскольку программы становятся больше, число дефектов также увеличивается, но оно растет гораздо быстрее, чем размер программы. Дефекты остаются, как правило, даже после того, как программа выброшена в продажу. Такая ситуация получает правовое оформление в том, что большинство производителей средств программирования не только не дают клиентам никаких гарантий, но и специально оговаривают это в письменном виде. Это для бытовых систем. А ведь военные компьютеры должны работать десятки лет и ни разу не сбиться. Очевидно, это нереально.
Типичные бытовые программы, как правило, насчитывают не более нескольких сот команд, дающих указание компьютеру выполнить одну из серии операций по обработке данных или какое-либо управляющее действие. Эти программы сразу после составления содержат десятки, а то и сотни дефектов. Только неоднократное использование, проверка всех возможных комбинаций могут помочь выявить дефекты. Признано, что программа, требуемая для системы «звездных войн»6, будет состоять минимум из десяти миллионов команд, хотя некоторые специалисты полагают, что их количество приблизится к ста миллионам. Представьте, что надо написать книгу объемом в десять миллионов слов. Если вы неправильно употребите несколько из них, это неприятно, но страшного ничего не случится. В программе же все «слова» должны быть поставлены безошибочно и действовать во взаимосвязи.
Можно провести такое сравнение. Челночному космическому кораблю типа «шаттл» требуется около трех миллионов команд, включая компьютеры на Земле, управляющие запуском и следящие за полетом из Хьюстона. Эта программа разрабатывалась в течение многих лет. Она бесконечно испытывалась на Земле. «Она позволила провести много успешных полетов челночного корабля, и тем не менее случаются неудачные запуски из-за дефектов в программе, — говорит Д. Парнас. — Дело в том, что при всех испытаниях ни разу не пришлось столкнуться с тем сочетанием обстоятельств, которое выявило дефект, существовавший все время. Сотрудники Организации по осуществлению СОИ говорят, что они испытывают все программы, прежде чем заложить их. Но что если они не смогут предугадать в точности все обстоятельства, с которыми столкнется программа?.. Ведь нельзя вернуться назад, устранить недостаток и снова начать ядерную войну»7.
Трагическая гибель «Челленджера» подтвердила ненадежность компьютеров: в течение по меньшей мере пятнадцати секунд до взрыва они не сигнализировали об опасности. Но эта катастрофа выявила и еще один фактор риска, существо которого предельно точно сформулировано в Заявлении Всемирного Совета Мира. В нем, в частности, говорится:
В самом деле, кому в такой ситуации может быть точно известно, был ли такой взрыв результатом неисправности систем корабля или он был уничтожен противоспутниковым оружием? Собственно, это так и останется для всех неизвестным, поскольку на взрыв моментально среагировали бы компьютеры, управляющие системой развернутых в космосе вооружений. От них поступила бы только одна команда — задействовать эти вооружения. «Кто вообще может поручиться, что тогда может произойти? — сказал М. С. Горбачев на встрече с представителями международного форума ученых за прекращение ядерных испытаний. — Сейчас пока еще летают десятки спутников и космических кораблей, но то и дело происходят всякого рода чрезвычайные происшествия с ними. А если пойдут эшелоны военных систем? Вычислительная техника ими управляет, выдает информацию, но она не занимается тем, по каким причинам что-то там происходит. В результате „решения”, от которых зависят судьба и жизнь миллионов, будут приниматься не на политическом, а на техническом уровне. Вся цивилизация окажется заложником техники»9.