Новости
Новости ИСП РАН
OS DAY, день второй: в Москве завершилась конференция разработчиков системного ПО
В Москве завершилась ежегодная научно-практическая конференция OS DAY, которая проводилась 10-11 июня для российских специалистов в области системного программирования.
Второй день конференции начался с выступлений в секции «Средства разработки и сопровождения». Первым выступил старший системный архитектор Virtuozzo Денис Силаков, который рассказал об автоматизированных средствах обнаружения и анализа ошибок в гиперконвергентных инфраструктурах Virtuozzo. Для данных целей спользуются, в частности, инструменты, основанные на двух компонентах с открытым исходным кодом: ABRT (Automatic Bug Reporting Tool, позволяет обнаружить ошибки сегментации в бинарных программах, сообщения «OOPS» от ядра Linux и др.) и Libreport (набор библиотек для составления отчётов). Эта связка зарекомендовала себя во многих дистрибутивах Linux, однако для использования в Virtuozzo потребовала доработки. В частности, уже добавлены или планируются к реализации такие функции, как обнаружение проблем в гостевых ОС виртуальных машин; динамический выбор информации, помещаемой в журнал об ошибке в зависимости от деталей инцидента и др.
Инженер-программист «РЕД СОФТ» Сергей Яриков рассказал о среде контроля и автоматизированного тестирования установочного образа операционной системы. Для реализации такого тестирования не было найдено готовых решений, поэтому в компании остановились на ряде отдельных инструментов и средств: система виртуализации Proxmox Virtual Environment, библиотека алгоритмов «компьютерного зрения» OpenCV и фреймворк для веб-приложений Django, осуществляющий связь backend и frontend. Данный комплекс уже внедрён в процесс разработки установочного образа и обеспечивает эффективный поиск неисправностей.
Старший научный сотрудник Института математики НАН Украины и участник ALT Linux Team Игорь Власенко посвятил своё выступление инструментам автоматизации сопровождения пакетов для платформ Alt Linux. В частности, он рассказал о проекте Autoimports, который занимается интеграцией различных инструментов в автоматизированные самоподдерживающиеся репозитории. В числе разработанных инструментов – библиотека SourceAnalyzer (анализ исходников проекта и определение необходимого сборочного окружения), BundleImport (создание или обновление исходных пакетов), Source::Repository::Mass (массовая обработка репозиториев). В рамках этого проекта осуществляется автоматизированное сопровождение тестового репозитория autoimports/Sisyphus, который сейчас содержит около 34000 пакетов, вдвое расширяющих основной репозиторий ALT Linux Sisyphus.
Следующим выступил замначальника отдела инфраструктуры разработки «Базальт СПО» Иван Мельников; темой его доклада стала поддержка архитектуры MIPS в дистрибутивах ALT. Он напомнил, что репозиторий Sisyphus, разрабатываемый ALT Linux Team, – это техническая база разработок «Базальт СПО». На данный момент существует два порта Sisyphus на архитектуры (ISA) семейства MIPS: для 32-битной архитектуры mipsel (развивается больше года, полностью поддерживается в Sisyphus) и для 64-битной архитектуры (временно заморожен из-за низкой востребованности). Мельников уточнил, что в ALT используется нативная сборка, а не кросс-компиляция, потому что именно такая сборка больше подходит для промышленных бинарных дистрибутивов. Для обеспечения необходимого уровня производительности для mipsel применяется модель т.н. догоняющей сборки; используются регулярные сборки и стартеркиты (небольшие установочные образы, удобные для подгонки под конкретные нужды).
Тему разработки инструментов в «Базальт СПО» продолжил Евгений Синельников – руководитель обособленного подразделения компании в Саратове. Он рассказал о решении ADFS (Active Directory File System), разработанном для управления деревом LDAP-объектов. Дерево объектов в данном решении представлено каталогами, а атрибуты объектов доступны на чтение и запись с помощью файлов. В ряде файлов атрибуты объектов представлены в формате JSON, который предоставляет дополнительную информацию о типах данных. Создание, перемещение и удаление LDAP-объектов доступно через стандартные файловые операции над каталогами. Прототип ADFS реализован на языке Haskell и опубликован под свободной лицензией.
Ведущий программист «Базальт СПО» Андрей Савченко рассказал о технических и организационных особенностях разработки дистрибутивов Linux для архитектуры Эльбрус (e2k), в частности − о реализации режима сборки дистрибутивов. Особенностями сборочницы e2k стали: обособленное сборочное оборудование, непубличный репозиторий пакетов, подстройка под особенности e2k (в частности, догоняющий режим), родная сборка ПО. Особенность системы программирования – смесь проприетарных и СПО-компонент. Савченко рассказал о текущем статусе репозитория e2k, который насчитывает около 9000 пакетов, а также об особенностях работы с компилятором lcc и его отличиях от gcc (в частности, lcc нередко видит проблемы, которые пропускает gcc, особенно это касается предупреждений). В заключение он описал главные особенности архитектуры e2k (своя система системных вызовов, своя таблица ioctl, отличное от х86 устройство стека).
Доцент кафедры прикладной математики АлтГТУ им. И.И. Ползунова Сергей Старолетов посвятил своё выступление методам разработки ПО для беспилотных летательных аппаратов (БПЛА). Вначале он рассказал об устройстве дронов и открытом проекте Ardupilot по разработке сложного системного ПО для летательных аппаратов, а также о его части Arducopter. Далее Старолетов сообщил о проекте по созданию ПО для БПЛА, обеспечивающего надёжность на четырех уровнях: уровень партицированной ОС (изоляция процессов), киберфизической системы (статическая проверка свойств безопасности и процессы-мониторы), уровень взаимодействия процессов через порты и сообщения, описанный на AADL, и уровень кода (тесты и предикаты на код). Цель проекта – в первую очередь, образовательная: создание базы для обучение формальным верификациям и ОС.
Заключительная секция конференции была посвящена встроенным ОС и ОСРВ. Первым выступил программист «Эремекс» Дмитрий Алексеев, который рассказал о статическом внедрении зависимостей в С/С++. Он начал с проблем использования компонентов в С/C++ (в частности, это децентрализованное управление конфигурацией с помощью макросов и отсутствие сопоставления исходника заголовочному файлу). Далее Алексеев рассказал о реализации инструмента FX-DJ, который с помощью метаданных создаёт список файлов для системы сборки, а также о применении метаданных в ОСРВ FX-RTOS (в ядре – 300 заменяемых компонентов).
Темой выступления инженера-программиста из Collabora Ltd. (Великобритания) Дениса Пынькина стал обзор ключевых компонентов ОС Apertis (FOSS GNU/Linux платформа на базе Debian/Ubuntu). Изначально Apertis создавался для автомобильных медиасистем, однако потом фокус сместился на встраиваемые устройства в целом. Одной из важнейших особенностей ОС является минимальный базовый набор ПО, который за редким исключением не включает проекты с лицензией GPLv3. Возможность обновления ОС обеспечивает системная библиотека libostree, которая позволяет работать в стиле git и интегрируется с различными загрузчиками. Также специально под этот проект написан Apertis Update Manager, который позволяет делать офлайн-апдейты и лёгкие откаты назад. Разработана также утилита Debos для создания кастомизированных версий ОС с использованием пакетной базы Debian.
Генеральный директор компании Embox Антон Бондарев поделился опытом разработки и применения системы сборки на основе специализированного языка программирования (DSL). Главными успехами сборки Mybuild в составе открытого проекта по созданию RTOS для встроенных систем Embox он назвал: использование только make и компилятора, простой объектно-ориентированный синтаксис, наличие средств для внедрения зависимостей, для передачи параметров к модулю и для построения полной модели конечной системы. Бондарев упомянул также ряд проблем Mybuild (в частности, сильное замедление процесса сборки), а также перечислил перспективы развития проекта, включающие отделение от Embox и реализацию на поддерживаемом языке.
Ведущий инженер отдела системного программирования НИИСИ РАН Фёдор Чемерев посвятил своё выступление средствам трассировки в ОСРВ семейства Багет, которые находятся в эксплуатации с 2002 года и постоянно совершенствуются. Последняя версия трассировщика работает с трассами, сформированными всеми предыдущими версиями ОС. В целях адаптации трассировщика к изменениям ОС разработана XSD-схема XML-файлов, описывающих записи трассы, реализована возможность анализа нескольких трасс, модель динамически реорганизуемого дерева событий, чьи узлы выполняют функцию инверсных входов и др.
Владимир Козырев (Advalange, МИФИ) рассказал о разработке и опыте применения инструментов верификации для проекта JetOS. Основная цель научно-исследовательской работы – получение платформонезависимой части ОСРВ с сертификационным пакетом (важнейшее требование – сертифицируемость в соответствии с КТ-178С). Сейчас в проекте по созданию ОСРВ JetOS участвуют ГосНИИАС совместно с ИСП РАН, ЛаБС (Advalange) и ИПМ им. Келдыша РАН. Разрабатываются следующие инструменты анализа: E178Cover (анализ структурного покрытия исходного кода), E178Time (получение оценки времени выполнения в наихудшем случае) и E178Mem (оценка использования динамической памяти: кучи и стека). Активно ведётся работа над первым, работа над остальными пока отложена.
Тему продолжил младший научный сотрудник ИСП РАН Курбанмагомед Маллачиев, который рассказал об использовании модульного подхода во встраиваемых операционных системах, успешно апробированного на ОСРВ JetOS при построении сетевой подсистемы. Главной темой доклада стал способ декомпозиции частоизменяемых подсистем на компоненты, который позволяет их гибко конструировать и конфигурировать. Реализация включает спецификацию компонента и композиции компонентов на YAML, скрипт на Python, встроенный в систему сборки, и генерацию кода на С.
Конференция завершилась общей дискуссией, которую провёл генеральный директор «DZ Systems» Дмитрий Завалишин. Основной темой стали проблемы использования языка С.
Сайт конференции: osday.ru.