Новый уровень безопасности авиационных бортовых систем и других систем ответственного назначения предлагает исследование, проведенное учеными факультета вычислительной математики и кибернетики (ВМК) Московского государственного университета им. М.В. Ломоносова. Работа помогает решить проблемы функционирования критически важного программного обеспечения, связанные с компиляцией. О полученных результатах корреспонденту «Научной России» рассказал один из авторов нового подхода, кандидат физико-математических наук, доцент кафедры системного программирования факультета ВМК МГУ Виктор Вячеславович Кулямин.

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

Доцент кафедры системного программирования факультета ВМК МГУ, кандидат физико-математических наук Виктор Вячеславович Кулямин.Фото: из личного архива Виктора Кулямина

Доцент кафедры системного программирования факультета ВМК МГУ, кандидат физико-математических наук Виктор Вячеславович Кулямин.

Фото: из личного архива Виктора Кулямина

 

«Компилятор представляет собой систему, преобразующую программы, написанные на некотором языке программирования (обычно удобном для человека), в код, который может быть непосредственно выполнен на определенной вычислительной платформе, включающей аппаратное обеспечение и операционную систему. Современные компиляторы выполняют при этом довольно сложные преобразования, называемые оптимизациями. Они нацелены на то, чтобы итоговый код выполнялся как можно быстрее и расходовал при выполнении как можно меньше памяти и электроэнергии, — объяснил В.В. Кулямин. — Если целевая платформа — бортовая система реального времени, используемая в авиации и смежных областях, некоторые оптимизации могут создавать проблемы. От такой системы ожидается, что она работает детерминированно, устойчива к ошибкам, а также может быть достаточно тщательно и с приемлемыми усилиями проанализирована как на предмет отсутствия ошибок и уязвимостей, так и с целью получения гарантий детерминированности и соблюдения ограничений на время выполнения отдельных действий. Многие оптимизации разрушают детерминированность и значительно затрудняют (а иногда делают невозможным) анализ и верификацию получаемого при их применении кода, снижая или даже нарушая безопасность его применения».

Вместе с В.В. Куляминым над исследованием работали Вадим Витальевич Марченко (кафедра системного программирования ВМК МГУ) и Виталий Юрьевич Чепцов (МГУ и Институт системного программирования им. В.П. Иванникова РАН).

Авторы изучили требования, которым должны соответствовать оптимизирующие компиляторы для бортовых систем в разных областях, и определили ситуации, в которых компиляторные оптимизации могут нарушать безопасность подобных программ. Кроме того, ученые разработали и протестировали собственный безопасный компилятор, созданный на основе популярного компилятора Clang в соответствии с отечественным стандартом в области разработки безопасного программного обеспечения ГОСТ Р 71206-2024.

«Результатом выполненной В.В. Марченко исследовательской работы стала методика компиляции программ для бортовых систем реального времени, обеспечивающая выполнение требований безопасности к получаемому в итоге коду за счет ограничения небезопасных оптимизаций. Кроме того, в рамках работы был разработан инструмент безопасной компиляции на основе компилятора Clang для применения в операционной системе реального времени CLOS», — сообщил В.В. Кулямин. Операционная система CLOS, в которую ученые интегрировали новый компилятор, создана по стандарту ARINC 653, используемому при разработке вычислительных систем для авиации.

Проведенная работа пригодится при разработке и сертификации авиационного программного обеспечения и других критически важных систем. Результаты исследования были представлены на конференции «Ломоносовские чтения».

Новость подготовлена при поддержке Министерства науки и высшего образования РФ

Фото на превью: cc0collection / фотобанк 123RF

Фото на странице: из личного архива Виктора Кулямина.