Недавно я посетил конференцию разработчиков операционных систем OS Day. Организаторами были Дмитрий Завалишин, автор ОС Фантом, и ИСП РАН. Это уже вторая конференция, и на этот раз она проходила совместно с РИФ. Оба эти мероприятия были приурочены к официальному открытию города Иннополис, в котором, собственно, всё и происходило.

Я расскажу только о мероприятиях OS Day, поскольку сам в большинстве из них участвовал.

Отдавая должное гостеприимному Иннополису, я скажу, что по моим ощущениям, результаты гораздо заметнее, чем в Сколково. Стройка идёт очень активно, уже вовсю работает университет, и вообще жизнь в городе действительно есть, что не может не вселять надежду на светлое будущее.


OS Day


OS Day — конференция отечественных разработчиков операционных систем. Как выразился Дмитрий Завалишин, в прошлом 2014 году он совместно с институтом системного программирования (ИСП РАН) решил собрать всех, кто так или иначе связан с разработкой операционных систем. На удивление, собралось довольно много народу, причём не только из компаний, занимающихся созданием Linux-дистрибутивов (ALT Linux, ROSA), но и из коллективов разработчиков ОС РВ. Конечно, ещё выступал и Дмитрий с экспериментальной ОС Фантом, и был интересный доклад от ИСП РАН о верификации операционных систем. Тем не менее, количество докладов по системам реального времени было гораздо больше.

ОС РВ


Причины, наверное, понятны: создание с нуля ОС общего назначения не имеет смысла, и к тому же, вряд ли осуществимо в обозримые сроки. А вот для систем реального времени, в частности, бортовых систем, создание специализированной ОС может оказаться вполне оправданной и выполнимой задачей. Ведь с одной стороны, нет открытого аналога VxWorks, а с другой — требуемая от ОС функциональность, а следовательно, и трудозатраты, гораздо ниже. Это вылилось в то, что тема ОС РВ стала основной и на второй конференции.

ИСП РАН


Докладчик из ИСП РАН Алексей Хорошилов выступил с докладом, в котором, в частности, отметил сложность применения Линукса для критически важных систем и тот факт, что Линукс, как универсальная ОС, в принципе, избыточен для систем реального времени. Кроме того, он предложил подход, позволяющий применять Линукс в системах реального времени, а именно — использовать специальный гипервизор. Идея не нова: так, в комментарии к одной из моих статей было сделано аналогичное предложение. Собственно, эта идея известна как архитектура MILS, по которой должны строиться все системы, соответствующие стандарту ARINC-653. Интересно то, что о реализации гипервизора в ИСП РАН рассказывал еще один сотрудник института — Николай Пакулин. Правда, он рассказывал скорее об обеспечении безопасности на основе гипервизора, но очевидная связь между докладами, безусловно, прослеживалась.

ГосНИИАС


Еще одной идеей, на этот раз новой, на второй конференции стало желание организаторов познакомить разработчиков и потребителей, то есть людей, которые заинтересованы в отечественных ОС. Для ОС бортовых систем таким потребителем оказался ГосНИИАС, являющийся государственным регулятором авиационных систем. Если честно, на конференции я о них услышал впервые, поэтому для получения более подробной информации лучше перейти на их сайт. От данной организации было два доклада.

Первый от Анны Кан, которая рассказывала о текущих проектах на их предприятии, и именно в её докладе прозвучала идея создания единой отечественной платформы для авионики общими усилиями, поскольку их организация столкнулась с определёнными трудностями из-за санкций.

Второй доклад был от Юрия Солоделова, который, по сути, рассказал о тех платформах (ОС и бортовых вычислителях), которые сейчас используются на предприятии. Что касается ОС, были названы три зарубежные системы: VxWorks 653 (WindRiver), LynxOS-178 (Lynx Software Technologies) и PikeOS (SYSGO). Также в докладе прозвучало, что им хотелось бы иметь отечественного конкурента, но сегодня ни одна из систем не соответствует их требованиям. Из отечественных были названы опять же три системы: МОС ОП («ВАИС-Техника»), ОС РВ Багет (она же ОС2000) (НИИСИ РАН) и ЭОС (СПб ОКБ «Электроавтоматика»). Представители двух первых компаний находились в зале и выступали с докладами, о них я расскажу чуть позже. Если я правильно понял основную проблему, все наши производители ОС РВ выпускают их на свои бортовые комплексы, что накладывает ряд ограничений на их использование. Ну и, конечно, все трясутся над исходными кодами и никому их не отдают.

Вайс-Техника


Что касается “МОС ОП”, то ее представлял Илья Мезенцев. На предыдущей конференции он тоже присутствовал, правда представляя не компанию “Вайс-Техника”, а “Раменское приборостроительное конструкторское бюро”. На этот раз он не сообщил деталей представляемой ОС. Но исходя из информации с первой конференции, я могу сказать, что эта ОС построена на основе открытой ОС “Minix 3”. К сожалению исходный код самой “МОС ОП” закрыт.

НИИСИ РАН


ОС РВ Багет, или как её назвал докладчик от НИИСИ РАН Александр Годунов, ОС2000, наверное, достаточно хорошо известна. Отмечу только, что существует целое семейство ОС Багет. Изначально была ОС2000, затем появилась ОС3000, которая, насколько я понял, имеет ARINC-653-совместимый интерфейс, а также существует ОС4000. В суть последней из них я не вникал, но понял, что там существуют какие-то проблемы с правами собственности: на ОС4000, вроде бы, претендует КБ Сухого, и может быть, даже является правообладателем данной ОС. В общем-то, политические войны выходят за рамки моей статьи. Скажу только, что Александр сделал хороший обзор стандарта ARINC-653.

На конференции также были представлены ещё две системы, которые претендуют на звание ОС для бортовых систем. Это ОС Эльбрус от “МЦСТ” и наш проект “Embox”

МЦСТ


ОС Эльбрус представлял Сергей Семенихин. В принципе, он честно признался, что ОС Эльбрус — это Debian с наложенными на ядро патчами RT-Linux и поддержки архитектуры E2K. Интересным моментом в его докладе была критика ядра Linux, а именно — тех мест, которые исправляет RT-патч. Также он покритиковал POSIX за наличие fork, отметив что понятие fork-а нет в ARINC-653.

Embox


Про собственный проект, как вы понимаете, мне трудно рассказывать. Само собой, хочется сказать, что мы самые лучшие и классные, но наверное, это не очень красиво :) Поэтому приведу только сухие факты. Проект представляли два докладчика. Андрей Терехов, как заведующий кафедрой системного программирования СПбГУ, на которой, собственно, и зародился проект, и я, Антон Бондарев, как один из основателей проекта и генеральный директор компании ООО “Ембокс”. Из преимуществ, не требующих доказательств — открытость исходного кода и кросс-платформенность проекта.

Круглый стол


При подведении итогов направления ОСРВ был проведен круглый стол, на котором возникла довольно бурная дискуссия. Все говорили о необходимости кооперации, но видение этой кооперации у каждого было свое. В результате решили, что координатором выступит ГосНИИАС как лицо заинтересованное в создании отечественной ОСРВ для бортового применения. Также, чтобы хоть как-то нащупать точки соприкосновения команд разработчиков, Дмитрий Завалишин выдвинул идею о разработке единого интерфейса для различных модулей будущей ОС. Начать решили с фреймбуфера. Посмотрим, что из этого выйдет.

Linux-дистрибутивы


Конечно, содержательная часть конференции была гораздо шире, чем построение отечественной ОСРВ. Более того, организаторы решили расширить тематику конференции и изменили её на конференцию разработчиков системного и инструментального ПО. Например, было несколько докладов от разработчиков СУБД. Но об этом чуть позже. Для начала, конечно, нужно рассказать о создателях Linux-дистрибутивов.

К сожалению, на этот раз на конференции не был представлен ALTLinux. Возможно, причиной этому послужил тот факт, что ALTLinux вошел в кооперацию с ROSA и в докладе Владимира Рубанова довольно часто встречались упоминания об ALTLinux и мелькали его эмблемки.

В итоге, на конференции было представлено три дистрибутива, созданных отечественными разработчиками: ROSA, Astra-Linux и Гослинукс

Гослинукс


Если о первых двух я, например, слышал довольно много, то о последнем я услышал впервые. Представлял его Егор Васильев, возглавляющий отдел защиты информации в “Федеральной службе судебных приставов” (ФССП). Я был очень удивлен, но обрадован. Считаю, что подобная инициатива — хороший пример использования opensource в гос. секторе. В результате, данный дистрибутив установлен на восемь с половиной тысяч рабочих мест. Он имеет только необходимый сертификат от ФСТЭК, и данный дистрибутив мне показался более открытым для пользователей, поскольку всё необходимое находится в открытом доступе, а вам только высылают наклейку от ФСТЭКа.

Astra-Linux


Astra-Linux от “НПО РусБИТех” имеет все типы сертификатов по безопасности (ФСТЭК, МО РФ, ФСБ). Докладчик Андрей Борисов называет его ОС специального назначения. Наличие сертификатов для всех ведомств позволяет применять данный дистрибутив в том числе в межведомственных системах. Интересным моментом в докладе, на мой взгляд, являлось рассказ о непрерывном жизненном цикле дистрибутива вплоть до получения сертификатов.

ROSA


Доклад Владимира Рубанова был достаточно интересный, но мало чем меня удивил. А вот что действительно порадовало, так это кооперация с ROSA и ALTLinux. Надеюсь, она будет полезна обоим производителям и главное — конечным пользователям.

СУБД


Как я уже сказал, на этот раз на конференции были представлены и базы данных. Для меня явился маленьким открытием тот факт, что у нас в стране есть разработчики баз данных. Оказалось, есть целых две команды, которые участвовали в разработке известных открытых СУБД.

PostgreSQL


Представлял данную СУБД Иван Панченко — соучредитель и один из руководителей “Постгрес Профессиональный”. Наверное, самой интересной и новой в его докладе была информация о российском вкладе в проект. Оказалось, что одним из четверых основателей проекта был программист из Красноярска (извините, имён уже не помню). А на данный момент в его компании работают три коммитера в проект.

РЕД База данных


Это новая база данных, и о ней, по крайней мере, я раньше не слышал. Поэтому в двух словах: это серверная база данных с открытым исходным кодом, основанная на проекте “Firebird”. Последний факт является самым интересным, поскольку Роман Симаков из компании “Ред Софт” является активным разработчиком базы данных Firebird.
Из других интересных особенностей стоит отметить, что эта компания является субподрядчиком вышеупомянутой ФССП, то есть их продукты используют, а также то, что компания имеет собственный Линукс-дистрибутив, о котором, впрочем, сказано не было.

Виртуализация и облака


Еще одним направлением на конференции были системы визуализации, представленные компанией Odin (бывшая Parallels), и облачной платформой на основе OpenStack от проекта TIONIX.

OpenVZ представляли два докладчика: Сергей Бронников и Павел Емельянов. Я думаю, тему контейнеров, которыми занимаются в проекте, представлять не нужно. Сергей рассказывал о, в принципе, понятных вещах, затрудняющих внедрение лёгкой виртуализации на базе контейнеров. А Павел — про проект CRUI — реализацию технологии снятия слепка процессов в Линуксе.

По поводу OpenStack тоже ничего особенно нового не услышал. Представлял проект Радик Юсупов. Звучало это приблизительно так: “мы, в принципе, делаем то же, что и Mirantis, то есть предоставляем готовые настройки и конфигурации для OpenStack”. Но насколько я понял, компания также предоставляет и собственное оборудование, правда, я не очень понял, зачем.

Другие направления и темы


Конференция длилась два дня и, конечно, я не мог рассказать о всех докладах и событиях, которые там проходили. Их было не мало: это и круглый стол “Нужна ли роботам ОС?”, и другие доклады: про мобильные ОС и совсем уж отстраненный доклад про геофизические расчеты на кластере, с предложением придумать, как такие расчеты будут вестись в будущем. Но я отмечу только один проект, без которого, наверное, сложно представить отечественное ОСестроение. Речь идет о ReactOS.

Представлять ReactOS, думаю, не нужно, информации на том же хабре хватает. Просто скажу пару слов о докладе. Докладывался, правда, не Алексей Брагин ( reactos ), а его коллега Александр Речицкий ( Jeditobe ). Основной идеей доклада был посыл, что на основе ReactOS хорошо изучается архитектура Windows. В результате, этот доклад был чуть ли не единственным затрагивающим тему обучения системному программированию на основе проектов с открытым исходным кодом. А это, как я отмечал в своей статье, является едва ли не самым эффективным способом вообще научить кого бы то ни было программированию, тем более системному.

Итоги


В сухом остатке у меня остались только положительные ощущения от конференции. Исключением, наверное, являются беспрецедентные меры безопасности для прохода на первый день конференции. Но вроде бы не зря мучились, ведь, насколько я знаю, в этот день в этом же здании проходил совет, на котором было принято решение о поддержке государством многих из описанных выше проектов и компаний. Пока что это только слова, национальную платформу уже создавали, но будем надеяться на лучшее. Радует, что государство хотя бы обратило внимание что у него есть разработчики системного ПО.

По поводу самой конференции, мне кажется, не хватало представителей промышленности, то есть потребителей, которым нужны данные продукты; они были, но пока в единичных экземплярах.

Ну и для полной картины ОСестроителей: мне кажется, стоило пригласить кого-нибудь из KolibriOS. Может быть, сама ОС так и останется прибежищем гиков, всё-таки, ассемблер — дело суровое, но коллектив разработчиков явно обладает завидной компетенцией в данном вопросе.

Комментарии (11)


  1. relexru
    15.06.2015 17:52

    Интересная получилась встреча, жаль, что наш доклад о СУБД ЛИНТЕР из-за жесткого формата первого дня так и не прозвучал, хоть и был запланирован.


    1. abondarev Автор
      15.06.2015 18:16

      Да, жаль. Но времени действительно было мало.


  1. Jeditobe
    15.06.2015 21:41

    Речицкий Александр тоже есть на Хабре, это я. Большое спасибо за упоминание нашего проекта в Вашем обзоре мероприятия. В целом, обзор получился весьма интересным!


    1. abondarev Автор
      15.06.2015 22:47

      Александр, извините, не узнал Вас в гриме:).
      Действительно не удосужился соотнести аккаунт на хабре и реального человека. Было приятно увидеть Вас лично!


      1. Jeditobe
        15.06.2015 22:49

        Взаимно!


  1. ivansimonov
    16.06.2015 00:18

    Меры безопасности были такими, поскольку на открытие Иннополиса прилетал Медведев. Поздравил с открытием города и пожелал удачи участникам ВРО. Там в это время еще и Всероссийская Робототехническая Олимпиада проходила. Наша команда серебряные медали заработала (ребятам по 10 лет).


  1. monah_tuk
    16.06.2015 06:51

    Антон, касательно вашей системы embox, насколько хороша инфраструктура для отладки? Я как понял, в том же GDB можно поглядеть только стектрейс текущего потока? Что касательно info threads, thread NN и т.п.? Просто в реальной практике пришлось, при отладке ThreadX по JTAG, допиливать OpenOCD дабы поддержать ThreadX на ARM926E-JS. Есть ли у вас какой отладочный сервер или патчи для gdb?


    1. abondarev Автор
      16.06.2015 12:56

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


      1. monah_tuk
        16.06.2015 13:40

        Ничего страшного.

        Интерес чисто праздный, мы в основном аутсорсим или уже готовые проекты или пишем под что-то, где SDK подразумевает определённую ОС. Так получается, что почти повсеместно это ThreadX (Cypress FX3, почти все фотокамеры).

        Сейчас, как я понял, у вас используется встренный gdbserver в QEMU, скорее всего, для QEMU его и нужно допиливать. Если внутриплатная отладка, то да, можно доработать OpenOCD, там главное собрать информацию о том, как сохраняются состояния потока на стеке да узнать глобальные структуры которые хранят списки потоков и т.п. информацию. Вы на каких платах с JTAG запускали свою систему?


        1. abondarev Автор
          16.06.2015 15:53

          Интересно, где у нас разрабатывается код для фотокамер:)

          Платы, ну довольно много, собственно фактически все платы за исключением больших ARM ов и x86.
          Вот некоторый список поддерживаемых платформ, не сочтите за рекламу. JTAG используем от мелких ARM ов STM32 EFM32 и другие до каких нибудь софт процессоров на ПЛИС (microblaze, LEON3).

          По поводу доработки gbdserver а для QEMU, думаю Вы правы, но пока в ручном режиме бегаем по списку потоков.


  1. abondarev Автор
    16.06.2015 12:53

    Александр, спасибо за интерес к проекту.
    Нет, пока мы не сталкивались с проблемами при отладке, поэтому пользуемся стандартным набором перечисленных Вами средств.

    По поводу многопоточности, мы для assert ов добавили стектрейс для всех потоков в системе. У нас есть команда которая позволяет вывести информацию о потоках, это конечно не в отладке но порой помогает. Поэтому я думаю что если потребуется какая то особая поддержка для gdb то ее можно будет добавить.
    У нас в свое время была идея затащить gdb сервер, например для отладки по последовательному порту, но поскольку он так и не нашел применение то был убран.