Роберт Стреттон - Час нетопыря
Около 13 часов 30 минут в субботу вызванный полицией сварщик разрезал с помощью горелки бронированную дверь транспортной машины.
Внутри, в луже крови и рвоты, скрюченный, как корень итальянской сосны, с выражением несказанной муки на застывшем лице лежал капитан фон Ризенталь.
LV
С тех пор как компьютеры вошли во всеобщее употребление и стали послушными рабами человека, готовыми выполнить даже самые странные его поручения, началось продолжающееся до сегодняшнего дня соревнование между тем, чему дали шутливое определение «душа компьютера», по-английски «software», и его физическим устройством, которое без почтительности называют «hardware», то есть «железки».
Даже самые лучшие электронные устройства были бы совершенно бесполезны, если бы не существовало хитроумного способа общения с ними, ибо, с точки зрения человеческих представлений об интеллекте, компьютеры все равно что дебилы и не поймут даже самой несложной команды, если не разложить ее на простейшие элементы. Но, с другой стороны, даже самая блистательная программа, для составления которой требуются только ручка и лист бумаги, не выполнит возложенных на нее задач, если ее нельзя будет реализовать в четко работающей быстродействующей машине, которая наделена достаточно емкой оперативной памятью.
Компьютеры вооруженных сил США всегда были подлинной аристократией в мировой информатике: самые современные и самые надежные устройства были на службе у самых умных и самых оригинальных программ. Поэтому авария системы передачи команд, которая произошла 12 июня, была потрясением для американских военных информатиков. Неправильное подключение конечного звена «цепного устройства» явилось результатом механической ошибки, которая сама по себе, несмотря на роковые последствия, не влекла за собой никакой серьезной опасности стратегического масштаба. За двадцать минут был теперь разработан способ, который раз и навсегда исключает такого рода неполадки: неверное подключение вызывает короткое замыкание в контрольном мостике и отключение подающего команды компьютера. Даже удивительно, что это никому не пришло в голову раньше. Может быть, потому, что идея использования обыкновенного предохранителя казалась инженерам слишком простой и банальной. Существует неписаное правило, известное всем конструкторам: чаще всего появляются дефекты в самых простых и хорошо известных элементах, а не в экспериментальных или отличающихся большой степенью сложности системах.
Но почему все-таки «цепное устройство» направило все ракеты в одно место?
Информатики поняли, что в течение долгих лет Соединенные Штаты, по сути дела, не имели защиты на случай ядерной войны. Сущность стратегического оружия заключается в том, что первый залп ракет с ядерными зарядами приводит к уничтожению тысячи разных целей на территории противника. Эти цели разбросаны на огромной территории СССР и стран Варшавского Договора, на других континентах, в океанах, в околоземном космическом пространстве. Каждая из ракет должна сама вывести себя на ту или иную цель. Правда, цель никому заранее не известна, ибо только после использования президентом программного модуля компьютер определяет для каждой ракеты ее курс, параметры траектории и точку попадания. Вместе с тем принцип первого залпа оставался неизменным: ни в одном из вариантов ядерной войны не предусматривалась посылка такого количества ракет в одно и то же место на земле, в атмосфере или в космическом пространстве. В этом просто не было необходимости. Так называемый коэффициент поражения уже давно не превышает 2,25. Иначе говоря, совершенно достаточно поразить цель зарядом, позволяющим уничтожить ее два с четвертью раза.
Следовательно, в систему передачи команд была заложена, по всей вероятности, какая-то ужасная ошибка, которая в случае ракетно-ядерной войны привела бы Соединенные Штаты к поражению.
Информатики исключили возможность ошибки в конструкции «hardware». Центральный компьютер в Омахе был изготовлен из элементов, многократно проверенных, высшей степени надежности, тщательно покрытых кремниевой оболочкой, прошедших испытание под давлением. Каждая интегральная схема, каждое соединение, каждая механическая деталь были подвергнуты испытаниям в сто раз более строгим, чем в каких-либо иных устройствах. Вся аппаратура была изолирована от каких бы то ни было сотрясений. Поддерживались постоянная температура, которая контролировалась с точностью до десятой доли градуса, и постоянный уровень влажности. Некоторые особо чувствительные элементы работали в полном вакууме.
Ошибка коренилась, должно быть, в «software», то есть в программном обеспечении центрального компьютера стратегических ВВС. Комиссия по расследованию сосредоточила поэтому все усилия на том, чтобы разобраться в «душе» компьютера, который именовался Главной командно-аналитической системой (ГКАС), по-английски — MACAS (Main Commanding and Analytical System).
Программа для ГКАС имела вид толстой книги, насчитывающей около пятисот страниц, потому что каждое состояние триггеров и каждую операцию в блоках оперативной памяти ГКАС надо было тестировать по отдельности. У компьютера имелось, впрочем, более десятка входов и он наверняка был самым большим компьютером, если считать подключенные к нему системы его составной частью. Он был соединен с центральной системой управления войсками (то есть на практике с черным чемоданчиком, который носил за президентом его адъютант), американскими ракетными установками во всем мире, с сетью искусственных спутников связи, разведывательных и синхронизирующих спутников, командным пунктом стратегических ВВС. В его оперативную память были заложены десятки миллионов единиц информации, которая обрабатывалась непрерывно, двадцать четыре часа в сутки.
Если символы, используемые в программе ГКАС, перевести на понятный обыкновенному человеку язык, а затем сократить таким образом, чтобы они сложились в более или менее понятное целое, то разговор с ГКАС немного напоминал бы монолог в высшей степени терпеливого учителя на уроке в школе для умственно неполноценных детей. В сильном упрощении он выглядел бы так:
001. Начинай работу. Объявлена «желтая тревога».
002. Доложи, все ли твои системы действуют исправно.
0021. Если тебя что-либо беспокоит, доложи, какую их часть ты считаешь неисправной.
0022. Если все в порядке, включи контрольную лампу № 066. Проверь связь с другими системами.
003. Проверь по блоку № 1, все ли ракеты находятся в боевом положении.
0031. Если все ракеты соответствуют условиям программы № 500, включи контрольную лампу № 067.
0032. Если какая-либо из ракет не находится в боевом положении или не соответствует условиям программы № 500, то:
00321. Установи по программе № 500 номер причины неисправности.
00322. Высвети на контрольном табло номер неисправной ракеты.
00323. Высвети на контрольном табло номер причины неисправности.
004. Сохраняй состояние готовности.
005. Если с момента получения команды 004 прошло 180 секунд, отключись и вернись в положение 002.
006. Если ты снова получил команду 001, повтори все действия с 002 по 005.
007. Если с момента получения команды 007 прошло 180 секунд, отключись и вернись в положение 002.
008. Если ты снова, в третий раз, получил команду 001, повтори все действия с 002 по 005, но:
0081. Сигнализируй включением лампы № 121, что троекратное возобновление «желтой тревоги» не допускается.
0082. Предупреди дежурного офицера, что после четвертого получения команды 001 проинформируешь об этом СО (Com-off, командующего стратегическими ВВС) и PA (PreAid, военного адъютанта президента).
009. Объявлена ли «зеленая тревога»? Если не объявлена, выполни действия от 0081 по 0082 и отключись. Если «зеленая тревога» объявлена, то:
0091. Подай всем ракетам команду о полной боевой готовности в соответствии с программой В, которая записана в блоке № 2.
0092. Подай позывной сигнал синхронизирующему спутнику «Бета».
00921. Если «Бета» ответит на позывной сигнал, извести соединенный с тобой компьютер в центре НАСА.
00922. Если «Бета» не ответит на сигнал, включи лампу № 144 и доложи о неисправности.
0093. Подай сигнал РА и повторяй его до тех пор, пока РА не подтвердит прием.
010. Проверь, все ли соединенные с тобой системы функционируют исправно. Повтори все операции от 002 до 009. Их длительность не должна превышать 130 микросекунд. В случае выхода за пределы этого времени включи лампу № 605, включи автоматическое устройство и повторяй все действия от 002 по 009, сперва в нормальной, а затем в обратной последовательности. Включи аварийную лампу в системе специальной связи.
011. Объявлена ли «красная тревога»? Если не объявлена, повторяй с интервалами в 5 секунд действия от 0091 до 0093. Если «красная тревога» объявлена, то: