Как стать автором
Обновить
27.15
СВД ВС
Надежность. Безопасность. Реальное время
Сначала показывать

Разработка HID-драйвера: шаг за шагом

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров4K


Предлагаем погрузиться в мир Human Interface Device (HID) в контексте операционной системы реального времени «Нейтрино». В статье мы расскажем про архитектуру HID и коснемся практических аспектов создания драйверов для устройств ввода.


Кроме того, затронем вопросы системной разработки и изучения драйверного API для встраиваемых систем реального времени. Расскажем, почему создание драйверов для взаимодействия с HID-устройствами является достаточно важным, но, при этом, достаточно простым процессом.

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии3

Jenkins: оптимизируя динамический пайплайн → распределённая сборка компонентов ОС

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров3.6K


В процессе улучшения подходов к менеджменту зависимостей компонентов нашей Операционной Системы появилась необходимость перейти от монолитной статической сборочной системы на основе CI/CD инструментов к динамическому распределённому подходу с порождением сотен и тысяч автономных задач. Как выяснилось в процессе, это не самый радужный сценарий использования систем автоматизации, но вполне достижимый.


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


Также частично раскроем информацию о том, как мы выполняем распределённую сборку дистрибутивов.


Ожидается много текста и примеров кода.

Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии11

Машинное обучение и встраиваемые системы. Демонстрация возможностей

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.7K


Одним из преимуществ технологий машинного обучения является их способность к обучению и адаптации на основе новых данных, что позволяет решать задачи распознавания образов, обработки естественного языка и поиска закономерностей и аномалий. Традиционно, собранные данные обрабатываются на серверах, однако для ряда задач целесообразнее (а иногда необходимо) использовать другой подход, называемый граничным машинным обучением (edge machine learning).


В этой статье мы расскажем о практическом применении нашего фреймворка машинного обучения для встраиваемых систем на примере демонстрационного стенда, который мы показывали на форуме “Армия-2023”.

Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии8

Как мы переводили проект на CMake

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров6.8K

В статье мы расскажем о том, как переводили проект с рекурсивной сборочной подсистемы ЗОСРВ "Нейтрино", представляющей собой набор расширений инструмента GNU Make на сборочную систему CMake: с какими нюансами нам пришлось столкнуться, какие преимущества мы получили в результате перевода и как это повлияло на нашу команду разработчиков.

Читать далее
Всего голосов 12: ↑11 и ↓1+13
Комментарии33

Автоматизация тестирования ОС

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.4K

Ключ к качественному и постоянному тестированию - автоматизация, которая позволяет проводить тесты множество раз за день одновременно на нескольких устройствах с разными процессорами и архитектурами.

Для реализации этой автоматизации мы используем несколько Jenkins Declarative Pipeline'ов и обширный набор инструментов, о которых рассказывается в статье.

Читать далее
Всего голосов 5: ↑4 и ↓1+5
Комментарии0

Виртуальные устройства ввода в тестировании

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.4K

В нашей ОС появилась новая фича, позволяющая разработчикам и тестировщикам производить анализ в рамках методик безопасной разработки. Новый механизм позволяет реализовывать как разнообразные сценарии тестирования UI, так и выполнять emergency-сценарии управления интерфейсом без вмешательства в кодовую базу программно-аппаратных систем. Как всё это работает вы узнаете из этой статьи.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Профилирование boot sequence операционной системы «Нейтрино»

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.9K

При использовании нашей операционной системы пользователи регулярно обращают внимание на то, что процесс её загрузки от передачи управления ядру, до начала выполнения прикладного кода, не всегда прозрачный. В результате анализа обращений мы пришли к выводу, что необходимо внедрить штатный механизм информирования и профилирования процесса загрузки системы (boot sequence). Основной особенностью внедренного решения является его децентрализованность, поскольку ОС является микроядерной и все привычные системные сервисы реализованы вне ядра. Технология прикладного профилирования (тот же gprof) в данном случае не самый подходящий инструмент.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии2

Готовим справку к интеграции в Qt Creator

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров4K

Огромный объём документации по функционалу библиотек Qt уже включён в состав дистрибутива Qt Creator. Таким образом, при работе над кодом не нужно переключаться между IDE и веб-браузером чтобы найти интересующую информацию. Очень удобно!

Но как быть, если хочется иметь свою справку на свой продукт, и чтобы её было также удобно использовать в работе в Qt Creator, наряду со стандартной справкой Qt? Чтобы можно было переходить из редактора кода непосредственно на страницы интересующих нас функций/типов/классов или же каких-то статей?

В данной статье пошагово разберём алгоритм составления и интеграции справки в Qt Creator, а также поделимся собственным опытом.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Эволюция графической подсистемы в отечественной ОС «Нейтрино»

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров4.4K

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

Рассматривать этот опыт можно с разных сторон. В статье рассмотрим процесс становления технологической независимости на примере отдельно взятой подсистемы ОС «Нейтрино». Ожидается большое число ссылок на первоисточники и обилие сведений.

Читать далее
Всего голосов 24: ↑22 и ↓2+25
Комментарии3

Методика портирования пакетов Python в операционную систему «Нейтрино»

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.9K

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

В статье рассмотрим общий подход к портированию Python-расширений в нашу ОС. Для примера возьмем NumPy, чей жизненный путь проходит следующие стадии: нативный Pyhton код →трансляция в Си (Cython) → компиляция → запаковка результатов с wrapper-ами для Python.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии4

Картографический фреймворк для отечественной ОС «Нейтрино»

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2.6K

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

Читать далее
Всего голосов 8: ↑6 и ↓2+6
Комментарии5

Мониторинг аномальной активности в операционной системе «Нейтрино»

Время на прочтение8 мин
Количество просмотров2.2K

Активности в операционной системе могут быть самыми разнообразными. Это может быть и запуск нового процесса или потока, и обращение к файловой системе, и выделение памяти, и многое другое. Могут возникнуть ситуации, когда (вследствие действий злоумышленника и\или программной\аппаратной ошибки) эта активность становится аномальной, то есть поведение системы начинает отличаться от ожидаемого. Запуск неизвестного процесса на этапе эксплуатации изделия, потребление процессом необычно большого количества памяти, установка сетевых соединений, которых быть не должно в системе - всё это примеры аномальной активности, возможно требующие внимания со стороны пользователя или разработчика.

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Подход к ведению документации на ОС: наш опыт

Время на прочтение8 мин
Количество просмотров4.1K

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии4

Менеджмент ФБ человечьим (почти) языком

Время на прочтение11 мин
Количество просмотров1.5K

Если для вашего софта или девайса потребовалось получить сертификат по функциональной безопасности (ФБ), а вы ещё не знаете, что это такое и в какую сторону «копать», то эта статья как раз для вас. Постановка задачи может содержать такие слова как «требования по SIL», «сертификат по МЭК 61508» и прочие в зависимости от степени удалённости от темы конкретного человека. Также есть много стандартов-«родственников»: IEC 61511, ISO 26262 и прочих, коих не счесть, сертификация по которым требуется заказчику – суть их примерно одна т.к. они так или иначе основаны на методологии ГОСТ Р МЭК 61508. Предупреждаю - в статье будет много букв про документацию.

TL;DR
Рейтинг0
Комментарии0

Культура безопасности при разработке вычислителей и программного обеспечения ответственного назначения

Время на прочтение12 мин
Количество просмотров4.2K
image

Распространение технологий промышленного интернета вещей, беспилотных транспортных средств и других кибер-физических систем, влияющих на безопасность людей, делает всё более актуальным соответствие программируемых электронных устройств требованиям международных стандартов в области функциональной безопасности, в частности IEC 61508 и ISO 26262.

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

Для глубокого понимания сути разработки и сертификации программно-аппаратных систем ответственного назначения, необходимо знать «трех китов» функциональной безопасности:

  • Культура безопасности (Safety Cultute)
  • Менеджмент функциональной безопасности (Functional Safety Management, FSM);
  • Доказательство безопасности (Safety Case).

В этой статье речь пойдет о о первом из них, Safety Culture. Точнее, о характерных признаках разных типов культуры безопасности и об особенностях культуры безопасности для компаний-разработчиков электрических, электронных и программных компонентов систем безопасности.
Читать дальше →
Всего голосов 4: ↑2 и ↓2+2
Комментарии9

Особенности применения языков программирования С и С++ при разработке ПО, связанного с функциональной безопасностью

Время на прочтение11 мин
Количество просмотров9.2K
image

Крис Хоббс (Chris Hobbs) в своей фундаментальной работе «Embedded Software Development for Safety-Critical Systems» [1] приводит распространенное среди программистов мнение о том, что накладывать ограничения на языки программирования, это как заказывать Пикассо создание картины, при этом запрещать ему использовать желтый цвет. Тем не менее, сложно представить себе предприятие, которое серьезно занимается разработкой программного обеспечения для систем ответственного назначения, у которого в писанных или неписанных стандартах не было бы указаний о том, какой язык программирования применять и, мало того, как его применять.

Данная статья посвящена подходу, который определен в стандарте IEC 61508 и который состоит в применении для разработки ответственного программного обеспечения безопасных подмножеств языков программирования С и С++.

Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии4

Информация

Сайт
www.kpda.ru
Дата регистрации
Дата основания
Численность
51–100 человек
Местоположение
Россия
Представитель
Игорь Дерябин