Интервью с Юрием Зыбиным о БЦВМ Салют 1, Салют 2М и Салют 7
Герович С.
В 1961 году Юрий Зыбин окончил Московский институт физики и техники и поступил на работу в Экспериментально-конструкторское бюро № 1 под руководством Главного конструктора советских космических аппаратов Сергея Королева. Он работал над навигационными системами в отделе систем управления под руководством Эрнста Гаушуса. Зыбин был одним из руководителей разработки программного обеспечения (ПО) для бортовых компьютеров космического корабля «Салют» и для адаптеров периферийной связи (АПС) на борту космической станции «Мир». С 1991 года он работал в Институте информатики и систем управления Московского высшего технического училища им. Баумана (МГТУ), ныне Московского государственного технического университета им. Баумана (МГТУ).
-
Когда вы впервые начинаете работать с бортовыми компьютерами?
-
Выполняли ли первые компьютеры «Салют» когда-либо реальные функции управления?
-
В начале 1960-х годов решение разместить компьютер на борту было очевидным или же оно вызвало споры?
-
Какие проблемы возникли в связи с документированием программного обеспечения?
-
Какие методы использовались для тестирования и отладки программного обеспечения?
- Распространялся ли накопленный вами огромный опыт и разработанные вами новые методы за пределами вашего отдела?
Герович: Когда Вы впервые начали работать с бортовыми компьютерами?
Зыбин: Я окончил Московский институт физики и техники в 1961 году, а 4 апреля того же года пришёл в фирму Королева. Через несколько дней состоялся полет Гагарина. С самого начала я занимался навигацией космических аппаратов. Год или два спустя началась лунная программа. Поскольку никто не был уверен в полной надёжности технологии, мы планировали управлять лунным полётом с Земли, но в качестве резерва разместили на борту секстант и другое навигационное оборудование, чтобы космонавты могли, например, осуществить посадку на Луну. Для этого требовалась обработка данных на борту. Это было примерно в 1964 году. К тому времени одна фирма в Зеленограде разработала компьютер «Салют-1». Это была небольшая машина весом около 5 кг. Её память имела всего 64 ячейки памяти. Проблема заключалась в том, что для расчёта траектории требовалось много памяти. Распределение обязанностей было следующим: группа Тимура Енеева в Институте прикладной математики (ИПМ) работала над программным обеспечением для полёта на Луну и обратно — определением траектории и корректировкой импульса движения; а наш отдел, возглавляемый Эрнстом Гаушусом, отвечал за расчёты, связанные с облётом Луны и лунной посадкой. Проблема заключалась в том, как выполнить все эти расчёты, используя всего 64 ячейки координат. Тем не менее, все было сделано и протестировано, документация была готова, но американцы полетели первыми, и наша программа была прекращена.
После этого наша фирма переключилась на орбитальные станции. Мы установили тот же компьютер на борту станции «Салют-1». Название станции здесь совпадало с названием машины. Главным недостатком было то, что машина была не очень мощной и требовала много ручной работы. Космонавтам приходилось проводить измерения и вводить данные; даже во время вычислений им приходилось помогать машине: память была настолько мала, что им приходилось вводить промежуточные результаты вычислений. На борту станций «Салют-2» и «Салют-3» были установлены компьютеры «Салют-2М». Они также были изготовлены в Зеленограде. «Салют-2М» был относительно продвинутой вычислительной машиной. Он имел ленточный накопитель, изготовленный на фирме, расположенной на улице Новая (сейчас она называется «Космоприбор»). Магнитная лента для этого накопителя была взята с американских аэростатов. Американцы запускали разведывательные аэростаты над советской территорией; некоторые из них падали, и с этих аэростатов брали ленты.
Мы столкнулись со следующими проблемами. Во-первых, другое бортовое оборудование плохо подходило для работы совместно с компьютером. Концепция электромагнитной совместимости ещё не была разработана. Во-вторых, поскольку всё делалось очень быстро, программное обеспечение не было должным образом протестировано. Поступало много сообщений о неисправностях, которые было трудно отсортировать — была ли это ошибка оборудования или программного обеспечения. Для станции «Салют-4» мы полностью переписали операционную систему «Салют-2М». Эта станция имела усовершенствованную навигационную систему, солнечные датчики (которые фиксировали моменты входа и выхода из тени), доплеровский измеритель скорости (на территории СССР были передатчики, которые генерировали точную, стабильную базовую частоту, и на борту имелся приёмник, измерявший скорость на основе эффекта Доплера). На станции «Салют-4» траектория рассчитывалась автоматически на борту. Как оказалось, в этом не было большой необходимости, поскольку наземный центр управления всё рассчитывал достаточно точно. Бортовая система, по сути, служила резервной.
Основное назначение этого аппарата заключалось в отображении информации для экипажа: когда состоится следующая встреча для связи, какова будет её продолжительность, когда космический аппарат войдёт в тень и так далее. Что касается различных измерений и вычислений, они не использовались, а служили резервными, исключительно в информационных целях. Этот аппарат не выключался в течение нескольких месяцев подряд и работал в обычном режиме.
На «Салюте 7», последней станции на этом корабле, несмотря на многочисленные поломки на борту, компьютер работал до последней минуты, пока не отключали питание. Также поступало множество сообщений о неисправностях компьютера — неясно, были ли это ошибки программного или аппаратного обеспечения. Диагностика в то время была недостаточно развита. Если и возникало подозрение на аппаратную неисправность, и на конструкторов компьютера оказывалось давление, они не могли однозначно опровергнуть эту гипотезу. Тем более что у этой машины не было резервирования. На борту был только «холодный» резерв: обычно работала первая машина, и только в случае её поломки включалась вторая.
В 1960-х годах в Отделе систем управления, возглавляемом Борисом Чертоком, существовали два подразделения: одно под руководством Владимира Бранеца, другое — Эрнста Гаушуса. Первоначально планировалось, что Бранец будет работать над грузовыми кораблями, а Гаушус — над орбитальными станциями. Подразделение Бранеца предпочитало бортовые компьютеры Argon, а подразделение Гаушуса — компьютеры «Салют». На основе опыта работы с «Салютом-2М» был создан проект компьютера «Салют-4». В начале 1970-х годов в подразделении Чертока постоянно велись споры о том, какой компьютер выбрать. Мы настаивали на установке «Салюта-4» на все космические аппараты, а Бранец настаивал на Argon. «Зеленоградская фирма» построила «Салют-4», но затем произошла «пауза», и его производство было отложено. Требовались дополнительные средства. В итоге средства не были выделены, и «Зеленоградская фирма» начала разработку «Салюта-4» самостоятельно.
Параллельно со станциями «Салют» началась работа над станцией «Мир». Поскольку отдел Гаушуса был перегружен, этот проект был поручен Бранецу. Отдел Бранеца более или менее завершил работу над грузовым кораблём, и у сотрудников его отдела появилось время для нового проекта. Планировалось, что «Мир» будет летать на орбите, а для наведения оборудования на Землю и звезды в Чехословакии была изготовлена вращающаяся платформа (эта работа проводилась под руководством Института космических исследований). Где бы ни находилась станция, она могла бы отслеживать определённую точку на Земле. Отдел Гаушуса получил задание разработать систему управления для этой платформы. Это было в середине 1980-х годов. В то же время Центральное специализированное конструкторское бюро в Куйбышеве под руководством Дмитрия Козлова разрабатывало новую серию спутников и совместно с Научно-исследовательским центром в Зеленограде решило построить большой вычислительный комплекс: высокоскоростную вычислительную машину с одним манчестерским кабелем, которая соединялась с отдельными единицами оборудования через периферийные обменные адаптеры (ПЭА). Фирма «Зеленоград» построила этот ПЭА. По сути, это был настоящий компьютер весом около 15—16 кг. Планировалось, что каждая система, например, система управления двигателем, будет иметь свой собственный ПЭА, который будет передавать данные в главный компьютер. Мы решили использовать этот ПЭА в качестве управляющего компьютера для вращающейся платформы на станции «Мир», и это было сделано. Как оказалось, лучшего компьютера я никогда не видел. Он работал всё время, пока «Мир» находился на орбите. Сама станция «Мир» была оснащена компьютерами «Аргон-16», но поскольку они были недостаточно мощными, компания «Бранец» разработала бортовую сеть таким образом, чтобы «Аргон» можно было позже заменить компьютерами «Салют-4», которые в то время находились в разработке. Компания «Бранец» отвечала за систему управления «Миром»; они использовали как компьютеры «Аргон-16», так и «Салют-4», и им постоянно приходилось их менять. В один день на станцию доставляли один компьютер, в другой — другой; постоянно случались сбои. Первый установленный нами ПЭА работал на «Мире» постоянно, без единого сбоя. Позже к нему были добавлены другие ПЭА по мере расширения функционала и установки другого оборудования, но этот первый ПЭА оставался центральной частью системы.
Меня поражает, насколько неблагодарными иногда бывают люди. Никто не поблагодарил главного конструктора этого ПЭА, Анатолия Щагина. О нём можно было бы написать статью в газете или наградить медалью. На мой взгляд, подобного компьютера никогда не существовало. Он имел тройное резервирование и был построен на 16-слойных керамических платах. За весь период эксплуатации у него не было ни одной неисправности.
Позже, параллельно со станцией «Мир», мы начали работать над «Бураном». На «Буране» был установлен большой бортовой компьютер. В то время как во всех предыдущих проектах всё программное обеспечение писалось отдельным отделом, на «Буране» каждый писал свой собственный фрагмент и тестировал его по мере возможности. Задача отдела Гаушуса заключалась в том, чтобы всё собрать воедино и протестировать. В действительности, тесты были довольно поверхностными. Чудом был успешный полёт «Бурана». Они были правы, что не запустили его во второй раз. Хорошо известно, что большинство проблем возникает в точках соединения: кто-то неправильно выразился, кто-то неправильно понял и так далее. Даже несмотря на то, что были даны специальные инструкции о том, как избежать таких ситуаций, никто не мог дать гарантий.
Герович: После того, как фирма из Зеленограда передала вам «Салют-1», занимались ли они каким-либо программированием этой машины? Вносили ли они какие-либо модификации в аппаратную часть?
Зыбин: Нет, мы сами занимались всем программированием. Никаких модификаций аппаратной части не было. Позже они разработали модель «Салют-2М», которая имела ленточный накопитель и больший объём памяти (кажется, 256 ячеек памяти), и мы перешли на эту новую модель.
Герович: Кто писал программы — инженеры, разбирающиеся в проблемах управления, или специалисты по вычислительной технике?
Зыбин: Программное обеспечение для первых компьютеров «Салют» писала группа под руководством Виктора Александровича Шарова. Они создавали программы на основе алгоритмов, разработанных нами и Институтом прикладной математики. Для компьютера «Салют-2М» группа Шарова написала как операционную систему, так и приложения. Поскольку на станции «Салют-6» было много сбоев, мы решили переписать операционную систему «Салют-2М». Этот проект был поручен мне, и мы выполнили его в группе Шарова и в других группах под моим руководством.
Ситуация с ПЭА (персональный электронный блок управления) на станции «Мир» была иной. В ПЭА уже была встроенная операционная система, написанная фирмой «Зеленоград». Она имела систему отладки, а программирование велось на машинно-ориентированном языке. Можно было использовать языки высокого уровня, например, Basic. В этом случае тот, кто писал алгоритм, писал и программу. Программисты тоже помогали, но в основном занимались проблемами обмена данными.
«Мир» имел распределённый комплекс. На борту был установлен один ПЭА, и существовал цифровой канал связи с наземным пунктом управления. На земле находился ПЭА и расположенный рядом с ним персональный компьютер. Когда оператор на борту видел что-то интересное на Земле, он мог повернуть вращающуюся платформу и направить её в нужном направлении, после чего платформа отслеживала это место. То же самое можно было сделать и с земли. В пределах зоны видимости наземные и бортовые системы работали параллельно и скоординировано. Сначала наземный пункт управления осуществлялся из Австралии, позже его перенесли в Европу, но это было уже тогда, когда я уехал. Это был очень хороший компьютер, но дорогой: он стоил около 100 000 рублей.
В Зеленограде находился крупный комплекс по проектированию и производству компьютеров. Во главе стояла одна организация, состоящая из множества подразделений. Разные модели «Салюта» производились разными людьми, но все они носили одно и то же название.
Герович: На борту станции «Мир» были и компьютеры «Аргон-16», и «Салют-4». Какой из них постоянно выходил из строя?
Зыбин: На этот вопрос лучше ответит Бранец. Мы не стали вдаваться в подробности. У нас была определённая конкуренция [с отделом Бранеца], поэтому обмена информацией не было. Это не было дружеским соперничеством. Гаушус и Бранец боролись за первенство с переменным успехом. Иногда Гаушус одерживал верх, иногда Бранец. Когда в последний раз победил Бранец, Алексей Елисеев предложил Гаушусу перейти в Московское высшее техническое училище имени Баумана (МВТУ), и Гаушус согласился. Став ректором МВТУ, Елисеев решил реформировать его структуру и создал семь научно-исследовательских институтов, соответствующих семи факультетам МВТУ. В этих институтах исследования проводятся отдельно от обучения. Он пригласил ведущих инженеров из промышленности возглавить эти институты. В МВТУ раньше было так: студент заканчивает обучение, поступает в аспирантуру, становится профессором, а затем заведующим кафедрой. Он преподаёт теоретические знания; сам он ничего не разрабатывал, и, следовательно, не может преподавать практические знания. Но срок Елисеева оказался слишком коротким, всего пять лет. Он не ожидал, что старые кадры не проголосуют за него. Конечно, они чувствовали себя зажатыми. А здесь преподавание — это главное. Поэтому все заведующие кафедрами проголосовали против него на выборах. Он ушёл, и последние 10 лет они пытаются вернуть всё на круги своя, но им не хватает власти для этого.
Герович: Вы упомянули, что первые компьютеры «Салюта» выполняли в основном резервную функцию на случай отказа наземного управления.
Зыбин: Они выполняли не только резервную функцию, но и функцию мониторинга. Наземное управление производит вычисления, бортовой компьютер производит вычисления, и если они совпадают, значит, всё в порядке.
Герович: Эти компьютеры действительно использовались?
Зыбин: Лунная программа не стартовала, поэтому в данном случае все было сделано напрасно. На станции «Салют» экипаж использовал компьютер для собственных нужд. Машина рассчитывала время следующего сеанса связи, помогала в планировании и так далее. Когда наземный комплекс активирован, все наземные станции слежения работают.
Герович: Бывали ли ситуации, когда приходилось переключать управление с земли на бортовой компьютер?
Зыбин: Нет, таких случаев не было. Если на орбитальной станции возникает проблема, её обычно можно отложить на неделю или месяц. В отличие от этого, во время полёта к Луне или во время лунной посадки проблемы отложить нельзя. Здесь процессы необратимы, и существуют определённые временные интервалы, когда необходимо выполнить определённые действия, и здесь абсолютно необходима резервная система.
Герович: Когда бортовой компьютер начал выполнять основные функции?
Зыбин: Планировалось, что первые станции «Салют» будут летать на орбите, и у них была аналоговая система управления. По сути, станция просто летит и ничего особенного не делает. Позже добавились новые задачи: для проведения различных экспериментов станцию нужно было направлять в ту или иную сторону. У этих станций не было вращающейся платформы, поэтому маневрировать приходилось всей станции. На «Салюте-7» мы подключили компьютер «Салют-2М» к аналоговому контуру управления, и с помощью этого компьютера станция могла делать всё необходимое. «Салют-2М» манипулировал сигналами от различных датчиков и мог «обмануть» аналоговую систему управления и заставить её выполнять то, что требовалось. На «Салюте-7» компьютер был частью системы управления. Он использовался для многих экспериментов и для коррекции траектории. На «Мире», конечно, машина также активно использовалась. Космический корабль «Союз-ТК» имел цифровую систему управления на базе компьютеров «Аргон-16».
Герович: На «Союзе-ТК» бортовой компьютер был неотъемлемой частью системы управления. Что бы произошло, если бы он вышел из строя?
Зыбин: На борту была резервная аналоговая система управления.
Герович: В начале 1960-х годов решение установить на борту компьютер было очевидным или спорным?
Зыбин: Для лунной программы это было очевидным решением, поскольку все понимали, что рисковать нельзя. В данном случае это было абсолютно необходимо. На первых станциях «Салют» эти машины, а возможно, и вся навигационная система, были установлены в основном потому, что существовал отдел, занимавшийся этими вопросами, и всё зависело от личных контактов. Они договорились установить это оборудование, и на этом всё. В этом не было большой необходимости, но все считали это важным.
Герович: Были ли какие-либо сомнения в надёжности этой технологии в полёте?
Зыбин: Нет, таких сомнений не было. Главная проблема заключалась в нехватке оборудования. Мы построили первый «Салют» и думали, что он будет последним. Его запустили, а затем поступил заказ на строительство следующего. Каждые два года мы строили новый «Салют», и каждый раз думали, что он последний. Лозунг был: «Чтобы всё сделать быстро, ничего не меняйте; запускайте как есть». И всё же каждый раз мы что-то меняли. Такая политика — «это последняя станция; обновления не нужны» — замедляла всё. Политика заключалась в том, что компьютерное оборудование тоже не нуждалось в обновлении. Так продолжалось со всеми станциями «Салют».
Герович: Какие проблемы возникли в связи с программной документацией?
Зыбин: Для «Салюта-1» документации практически не было. Описание инструкций было плохим. Например, сложение описывалось так: этот флаг устанавливается здесь, эти цифры меняются в регистрах и так далее. Было много нюансов, и программисту приходилось во всём разбираться. Машина была недоработана; повсюду были скрытые проблемы. Даже сложение выполнялось по-разному в разное время. Всё зависело от истории: если что-то оставалось после предыдущей операции, то буфер нужно было очистить или что-то в этом роде. У наших программистов практически не было документации. Они получали аппаратное обеспечение и какие-то заметки, которые конструкторы набросали для собственного пользования. Нашим программистам приходилось во всём разбираться самостоятельно. В конце концов, они это сделали и создали свою собственную документацию, и после этого всё стало хорошо.
Документация для «Салют-2М» была улучшена, и у ПЭА появилась полная документация, содержащая лишь одну ошибку, связанную с временными функциями. Эта ошибка была обнаружена во время наземных испытаний. Поскольку эти компьютеры работали в реальном времени, несколько раз в секунду они получали сигналы точного времени, а также сигналы тактовой частоты (1000 Гц). Операционная система выполняла определённые задачи по включению чего-либо в определённые моменты. Мы заметили, что некоторые из этих задач просто пропускались и не выполнялись. Машина работала со сбоями! Мы вызвали главного конструктора. Оказалось, в операционной системе была ошибка. Сигналы точного времени и сигналы тактовой частоты поступали в систему асинхронно от разных генераторов. Однако машина ожидала, что они будут синхронными, и поэтому пропускала их. При тестировании на симуляторе оба сигнала поступали от одного генератора, и эта ошибка не проявилась. В документации не было указано, что сигналы должны быть синхронными, а мы использовали разные генераторы, что и привело к сбою. Это было обнаружено во время наземных испытаний, и мы потратили на это около месяца. Нам было трудно понять, почему это происходит. В конце концов, они это исправили; они выпустили патч для операционной системы. После этого ни одной проблемы не возникало.
Герович: В какой степени компьютер контролировал действия космонавтов? Устанавливала ли машина ограничения на то, что мог делать космонавт?
Зыбин: Вначале мы старались ограничить всё. На «Салюте-1» космонавт должен был ввести код (например, данные из первого столбца измерений секстанта). Затем машина проверяла данные на согласованность. Гарантий, конечно, не было, но проводилась приблизительная проверка. Если он пропускал цифру в старшей позиции, он получал сообщение об ошибке. Однако, если ошибка возникала в младшей позиции, обнаружить её было невозможно. Мы поступали так: мы требовали от космонавта ввести данные дважды. Если они совпадали оба раза, то считалось, что они верны.
Герович: Мог ли космонавт игнорировать ограничения, установленные машиной? Машина лишь предупреждала космонавта о возможной ошибке или же твёрдо указывала ему на необходимость повторного выполнения задания?
Зыбин: Если он совершал ошибку на позиции высокого порядка, машина снова и снова выдавала сообщение «Введите первый код».
Герович: То есть, он ничего не мог сделать, пока машина не примет его данные?
Зыбин: Верно.
Герович: А если, скажем, в алгоритме была ошибка, и из-за этого корректные данные были отклонены, мог ли он что-нибудь с этим сделать?
Зыбин: Ничего. На космонавта в этом отношении рассчитывать нельзя. Например, один читал лекцию космонавтам и объяснял, как ввести «синус равен 0,8». Гагарин спросил: «Но здесь уже показан ноль и десятичная точка. А если синус равен полутора, как мне тогда это ввести?» Этому ему следовало бы научиться ещё в школе.
Герович: Вы больше полагались на машину, чем на человека?
Зыбин: Верно. На «Салюте-7», где нужно было управлять самой станцией, космонавт имел возможность вносить корректировки с помощью ручного контроллера. Машина получала сигналы с этой колонки и вносила корректировки. Здесь возникает дилемма. С одной стороны, вы можете захотеть ограничить использование машины на случай, если она выдаст ошибку или неправильно использует данные. С другой стороны, если установить такие ограничения, вы часто не сможете использовать машину. Последнее произошло в автоматической системе стыковки, разработанной компанией «Бранец». Они установили строгие ограничения на диапазон скоростей, но так случилось, что датчик выдавал неверные данные [в результате скорость рассчитывалась неправильно], и система управления стыковкой просто отключилась. Пришлось выполнять ручную стыковку.
Герович: Могли ли космонавты вносить какие-либо корректировки в аппарат, чтобы, например, исправить этот диапазон скоростей?
Зыбин: Первоначально они не могли. Позже, когда был установлен «Салют-2М» с ленточным накопителем, они смогли вносить корректировки с помощью ленты. После этого для космического корабля «Союз» в «Бранеце» была предусмотрена возможность ввода новых программ. Тем не менее, корректировки вносились только в том случае, если что-то не получалось с первого раза.
Герович: Были ли случаи, когда космонавт на борту вносил корректировки в программу на основе инструкций с Земли?
Зыбин: Думаю, были, но точно сказать не могу. Такая возможность существовала на «Салюте-2М». На «Салюте» не было цифровой линии связи; они использовали телетайпную систему «Строка». Поскольку мы предусмотрели возможность корректировки программ, мы связали компьютер со «Строкой» и вводили новые программы и корректировали старые через эту систему. Станция долго находится на орбите; возникают новые задачи; и мы предусмотрели возможность проведения операций, которые ранее не были предусмотрены, и это широко использовалось. На всякий случай была также возможность для космонавтов получать программы с Земли по голосовой связи и затем вводить их в компьютер. Мы никогда не использовали этот путь; мы все передавали по телетайпу.
Герович: То есть, хотя и существовала возможность корректировать программы для «Салюта-2М» на борту, эта возможность никогда не использовалась, верно?
Зыбин: Верно, мы ею никогда не пользовались.
Герович: Космонавтов обучали основам компьютерного программирования или только функциям оператора?
Зыбин: Их учили вводить информацию.
Герович: На более поздних моделях космических станций и кораблей у космонавтов были функции, требующие более глубокого понимания работы компьютера?
Зыбин: Нет, совсем наоборот. Космонавты, использовавшие ПЭА, устанавливали только режим и даже не прикасались к клавиатуре. Всё управлялось с Земли, а ручной контроллер использовался космонавтами только для корректировок.
Герович: Какие аргументы приводились в ходе дебатов о том, какой компьютер установить — «Аргон-16» или «Салют-4»? Каковы были преимущества и недостатки одной машины по сравнению с другой?
Зыбин: Споры в основном касались набора инструкций. Никто тогда не думал о надёжности. На самом деле, сравнение было очень сложным. У «Салюта-4» был набор инструкций Unified Series, который считался более продвинутым. Он действительно был более продвинутым, но этот фактор оказался незначительным. Возьмём персональный компьютер: у него ужасный набор инструкций, и все же… На самом деле, с любым набором инструкций можно сделать что угодно. Если процессор быстрый, то набор инструкций не имеет значения. Наши дебаты были сосредоточены на незначительных факторах — как мы теперь знаем, — но тогда это казалось крайне важным.
Герович: Как эти машины сравнивались по весу и скорости?
Зыбин: «Салюты» всегда были легче и считались более совершенными. Бранец утверждал, что «Аргоны» широко использовались, устанавливались на артиллерию, были лучше испытаны, но это были незначительные факторы.
Герович: Как была решена проблема надёжности?
Зыбин: Надёжность обеспечивалась за счёт резервирования. В PEA используется тройное резервирование; в Argon, насколько я понимаю, — двойное резервирование.
Герович: В случае с «Аргоном» использовалось ли «горячее» резервирование? То есть, оба компьютера работали параллельно?
Зыбин: Честно говоря, я не знаю. Я был погружен в алгоритмы и программы и не особо интересовался аппаратной частью. Гаушус и Шаров принимали активное участие в этих дискуссиях.
Герович: Какие методы использовались для тестирования и отладки программного обеспечения?
Зыбин: Тестирование программного обеспечения для космической станции «Мир» было чрезвычайно тщательным. Прежде чем программист писал программу, он должен был чётко описать, что эта программа будет делать. После этого он писал программу, а другой программист получал отдельное задание написать тесты для этой программы. Каждая программа тестировалась таким образом, и после их интеграции разные программисты снова назначались для тестирования этого интегрированного продукта. Именно поэтому программное обеспечение для ПЭА было сделано так хорошо.
Для «Бурана» мы также запланировали множество тестов, но времени не хватило. Организация работы была сложной: Черток отвечал за всю систему управления, а основную систему управления разрабатывала фирма Пилюгина. Последняя спроектировала диспетчерскую машину. Интеграция всего программного обеспечения была поручена нам, то есть Чертоку. Было сложно разобраться, кто за что отвечает. С одной стороны, за всё отвечал Черток, с другой — фирма Пилюгина. Мы разработали систему тестирования, но времени не хватило, и мы просто кое-как справились. Приближался крайний срок, и на нас оказывали давление. Чтобы всё тщательно протестировать, потребовалось бы, наверное, ещё два года. Протестировать всё [в отведённое время] было невозможно. Нам удалось завершить тестирование обычной последовательности операций, но ничего не тестировалось на нерегулярные последовательности. Все мы опасались. К счастью, всё работало в обычной последовательности. После этого вопросов не возникало.
Герович: Были ли попытки написать две параллельные программы для одной и той же задачи, чтобы создать избыточность программного обеспечения?
Зыбин: Это не имело бы смысла. Какую из них вы бы тогда выбрали? Гораздо лучше поручить написание тестов для всех функций программы другому человеку.
Герович: Вы использовали американский опыт каким-либо образом?
Зыбин: Нет, не использовали. Практически никакой литературы по этому вопросу не существовало. Она появилась лишь позже. У нас было ощущение, что нам нечего было у них заимствовать. По крайней мере, из имеющейся литературы следовало, что они либо ошибались, либо пытались ввести в заблуждение. Например, они писали, что используют определённые методы в своих алгоритмах, хотя эти методы иногда не сходились и приводили к сбою. Нашим главным приоритетом всегда была надёжность. Наши методы, возможно, были несколько примитивными, но мы считали их более надёжными.
Например, американцы в то время широко использовали метод Калмана для обработки данных измерений. И мы, и Институт прикладной математики тщательно его проверили, и оказалось, что при больших погрешностях измерений он выдаёт бессмысленные результаты. Мы сразу же его отвергли; мы использовали метод среднеквадратичного отклонения и отсеяли все лишнее. Они же поступили иначе; они действовали прямолинейно. Всё это время у нас было ощущение, что они ошибаются, или, может быть, они просто опубликовали неверный подход, и мы не знали, каков их настоящий подход.
Герович: В разработке программного обеспечения часто бывает так, что программист держит детали программы в голове, и если он недоступен, то понять программу очень сложно.
Зыбин: Да, Шаров именно такой человек. По этой причине в какой-то момент его перевели на другие задачи, а его программное обеспечение переписали таким образом, чтобы любой мог понять, как это сделано, и критиковать программу. Но на ранних этапах эта проблема была широко распространена.
Герович: Когда была введена эта дисциплина программирования?
Зыбин: Примерно в то время, когда мы работали над программным обеспечением для станции «Салют-4». Для машины «Салют-2М» мы ввели правило: прежде чем начать программировать, необходимо написать словесное описание того, что будет делать программа и как. Вы даёте описание, и только потом начинаете программировать. Программа должна содержать комментарии. С первыми машинами такого не было. Например, на станции «Салют-2» они включили систему, и возникла проблема. Они сразу же её выключили. Шаров затем провёл неделю в Евпатории [центре управления полётами], пытаясь найти ошибку. Никто не мог ему помочь; он сидел совсем один и просматривал телеметрические данные. Гаушус сказал ему: «Полёт скоро закончится, а ты всё ещё будешь сидеть здесь и искать ошибку?» Это привело к вопросу о предоставлении надлежащей документации, чтобы можно было получить помощь или замену, если программист заболеет. Кстати, в отделах Branets, мне кажется, до сих пор всё по-старому: каждый знает только свою часть работы, и никакой надлежащей документации нет.
Герович: В своих мемуарах Черток описывает случаи, когда автор программы отсутствовал, и никто не мог понять программу.
Зыбин: Многое зависит от конкретных людей. Компания Branets не дошла до этого, и всё осталось как прежде.
Герович: Бранец по-прежнему возглавляет отдел?
Зыбин: Нет, теперь он отвечает за весь комплекс систем управления, вместо Чертока. Сначала Чертока сменил Виктор Легостаев, но последнему вскоре поручили другие задачи. Он отвечает за контакты с американцами, за производство инвалидных колясок и так далее.
Герович: Ваш огромный опыт и разработанные вами новые методы получили какое-либо распространение за пределами вашего отдела?
Зыбин: Гаушус ушёл в 1986 году, а я — в 1991. После этого Шаров был назначен начальником отдела, и всё это дело постепенно сошло на нет. Шаров с нами в хороших отношениях, но он склонен слишком пристально относиться к мелочам. Он закончил разработку системы «Сигма» для космической станции «Мир» (с ПЭА). Я не знаю, чем он сейчас занимается.
Герович: Большое спасибо за интервью.
Москва, 24 мая 2002 г.
Помещена в музей с разрешения автора 26 марта 2026