При слове «операционная система» мои друзья обычно представляем Windows, macOS или какой-нибудь дистрибутив Linux. Но за этими привычными образами прячется целый параллельный мир операционные системы реального времени (ОСРВ). Их не ставят на домашние ноутбуки, о них не пишут в популярных блогах, но именно они в данный момент контролируют высоту полёта самолёта, давление в реакторе атомохода и точность наведения ракеты.

ОС2000  она же ОСРВ «Багет 2.0»  один из самых любопытных экземпляров этого закрытого мира. Родилась в стенах Научно-исследовательского института системных исследований РАН, работает на процессорах, которые большинство программистов никогда не видели, и при этом выдерживает стандарт POSIX. Давайте разбиремся, как и зачем.

Скрытый текст

Интересный факт

ОСРВ в принципе не предназначены для конечного пользователя. Они работают без монитора, без мыши и без красивого интерфейса и это их главное достоинство. Пока VxWorks управляет марсоходами NASA, «Багет» несёт службу в недрах российских атомоходов.

Откуда взялся «Багет»

В конце 90-х российская оборонная промышленность оказалась в неловком положении: импортные системы вроде VxWorks и QNX были технически хороши, но доверять им критическую инфраструктуру всё равно что хранить государственные тайны на американских серверах. А советские ОСРВ к тому времени морально устарели настолько, что жаловаться на них было уже как-то неловко.

В 1998 году в НИИСИ РАН начали работу над системой для новой линейки вычислителей серии «Багет»  машин на процессорах архитектуры MIPS (R3000, R3081). Через четыре года, в 2002 году, появилась «ОСРВ Багет 2.0», она же ОС2000.

Архитектура MIPS R3000  основа первых вычислителей серии «Багет». Российский аналог чипы КОМДИВ-32 и КОМДИВ-64
Архитектура MIPS R3000  основа первых вычислителей серии «Багет». Российский аналог чипы КОМДИВ-32 и КОМДИВ-64

Система создавалась по модели Host/Target: код пишется на обычном Linux-хосте, компилируется кросс-компилятором и загружается на целевую железку по Ethernet или VME-шине. Такой подход до сих пор кажется архаичным программисту, привыкшему нажимать F5 в IDE, но для встраиваемых систем это абсолютная классика.

Скрытый текст

Хронология «Багета»

1998  начало разработки в НИИСИ РАН под новую линейку вычислителей. 2002  выход ОС2000 / ОСРВ «Багет 2.0». 2006  версии 3.0 и 3.6 с поддержкой ARINC 653. Сегодня  система работает в авиации, флоте и космических программах.

Архитектура: три слоя и никакой виртуальной памяти

Главное архитектурное решение ОС2000  микроядро. В противовес Linux, где драйвер является частью ядра и его ошибка кладёт всю систему, «Багет» разделяет ответственность на три чётких уровня.

  1. BSP (Board Support Package, пакет поддержки модуля)  самый нижний слой. Здесь живут драйверы устройств и диспетчер прерываний. Аппаратно-зависимый код изолирован именно тут.

  2. Процессорно-зависимая часть  несколько страниц ассемблера для сохранения и восстановления контекста при переключении задач.

  3. Микроядро  управление потоками, планировщик с жёсткими приоритетами, механизмы быстрой синхронизации.

Теперь о главном сюрпризе: в ОС2000 нет классической виртуальной памяти. Прикладные программы выполняются в режиме ядра. Никаких MMU-прерываний, никакого копирования страниц разработчик сам следит за своими указателями. Для рядового программиста это звучит как кошмар. Для инженера военной электроники — как гарантия того, что система ответит на прерывание не через «примерно 10 миллисекунд», а ровно тогда, когда нужно.

Скрытый текст

Почему это важно: детерминизм

Главное требование к ОСРВ  предсказуемость, а не скорость. Система должна ответить на прерывание за гарантированное время в любых условиях. VxWorks, QNX, «Багет»  все они жертвуют удобством разработки ради этой единственной цели. Хаотичный сборщик мусора или своп в Java-приложении здесь недопустимы в принципе.

На каком железе это работает

Процессоры серии КОМДИВ

Линейка российских MIPS-совместимых процессоров «КОМДИВ» (КОМДИВ-32, КОМДИВ-64, КОМДИВ-128)  это прямые наследники архитектуры MIPS, адаптированные для нужд отечественной оборонки. ОС2000 была портирована на них с самого начала. Позже добавили поддержку «Эльбруса» и классических Intel i486.

Забавная деталь: если вы ставите ОС2000 на обычный PC (i486 или совместимый), список поддерживаемых сетевых карт строго регламентирован. Никакого вашего «интелевского гигабита»  это ОСРВ, тут каждый такт наперечёт. Совместимость с «неправильной» сетевухой может дать непредсказуемые задержки, а это неприемлемо.

Скрытый текст

Хардкорный ретро-эксперимент

У вас завалялся старый PC с чипсетом i440BX и сетевой картой на чипе NE2000 или RTL8139? Это минимально необходимый набор для запуска ОС2000 на обычном «железе». Загрузка  через COM-порт или TFTP. Добро пожаловать в 2002 год.

POSIX-совместимость: «как Unix, только другой»

Разработчики ОС2000 с самого начала сделали ставку на POSIX 1003.1. Это решение прагматичное: если система понимает pthread, семафоры POSIX и очереди сообщений, её изучение для инженера с Unix-background занимает дни, а не месяцы.

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

Кросс-компиляция  единственный способ разрабатывать под «Багет». Вы пишете код на Linux-хосте, собираете кросс-компилятором (GCC для MIPS или i486), переносите бинарник на целевую машину по Ethernet/TFTP и запускаете. Если что-то пошло не так  отладка через COM-порт. Современному JavaScript-разработчику это покажется пыткой. Но в мире встраиваемых систем это нормальный рабочий процесс.

Авиация: SSJ-100 и требования ARINC 653

Sukhoi Superjet 100  один из гражданских самолётов, в бортовом оборудовании которого применяются принципы разработки ОС2000
Sukhoi Superjet 100  один из гражданских самолётов, в бортовом оборудовании которого применяются принципы разработки ОС2000

Гражданская авиация живёт по стандарту ARINC 653. Суть его проста и жёстка: если один программный модуль скажем, система управления закрылками начинает вести себя некорректно, это не должно никак затронуть модуль управления двигателями. Полная программная изоляция разделов, гарантированное процессорное время для каждого вот что требует ARINC 653.

ОС2000 в версиях 3.0 и 3.6 этот стандарт поддерживает. Именно поэтому система оказалась в составе бортового радиоэлектронного оборудования ряда отечественных летательных аппаратов. Реальный список засекречен, но в открытой печати фигурирует SSJ-100.

Скрытый текст

Что такое ARINC 653 и зачем он нужен

ARINC 653  авиационный стандарт разделения программных разделов (partitioning). Каждый раздел получает строго выделенное время ЦП и изолированную память. Сбой в одном разделе не может физически затронуть другой. Это принципиальное отличие от обычной многозадачности, где ошибочный процесс теоретически может испортить память соседа.

Подводные лодки: настоящий дом «Багета»

Атомная подводная лодка проекта— носитель комплекса «Булава». На подобных кораблях работают десятки вычислителей с ОСРВ
Атомная подводная лодка проекта— носитель комплекса «Булава». На подобных кораблях работают десятки вычислителей с ОСРВ

Авиация  это, конечно, хорошо. Но если говорить честно, настоящая среда обитания ОС2000  это не небо, а морские глубины.

Подводная лодка  это закрытая система, которая месяцами работает без связи с внешним миром, без возможности «пожалуйста, установите обновление», без какого-либо удалённого доступа. Давление на предельной глубине, залп торпедного аппарата, вибрация от работающего реактора  всё это создаёт условия, в которых обычная потребительская электроника просто не выживает.

Почему именно «Багет» под водой

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

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

  3. Работа только с флеш-памятью и ПЗУ никаких вращающихся дисков, которые не переносят ударные нагрузки.

  4. Детерминированный планировщик система гарантированно ответит на сигнал гироскопа или гидроакустического датчика в строго определённое время.

    Где именно работает ОС2000 на подлодке

    На современных российских атомоходах проектов 955 «Борей» и 885 «Ясень» применяется распределённая вычислительная архитектура десятки специализированных вычислителей, каждый отвечает за свою область.

  5. БИУС (Боевая информационно-управляющая система) нижний уровень: опрос датчиков, управление рулевыми машинками и клапанами балластных цистерн.

  6. Система управления движением опрос гироскопов 1000 раз в секунду. Если система «задумается» хотя бы на миллисекунду, лодка дрогнет и создаст акустический шум, который засечёт вражеский сонар.

  7. Гидроакустический комплекс обработка сигналов в реальном времени. Именно здесь предсказуемость важнее производительности.

«Буран» и космос

Советский орбитальный корабль «Буран» совершил единственный полёт в 1988 году в полностью автоматическом режиме  без экипажа
Советский орбитальный корабль «Буран» совершил единственный полёт в 1988 году в полностью автоматическом режиме  без экипажа

«Буран» 1988 года первый в истории орбитальный корабль, совершивший посадку в полностью автоматическом режиме без экипажа на борту. Система управления должна была в реальном времени обрабатывать данные от сотен датчиков, корректировать траекторию и выдерживать допуски по точке касания в несколько метров.

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

Скрытый текст

Интересный факт про «Буран»

Автоматическая посадка «Бурана» в 1988 году до сих пор остаётся уникальным достижением в истории космонавтики. Space Shuttle никогда не садился без пилота. «Буран» сделал это в условиях бокового ветра 20 м/с  и программная система управления справилась без единой ошибки.

Итоги: зачем это существует в 2026 году

ОС2000 это не тот продукт, который вы найдёте на GitHub с открытым кодом и оживлённым сообществом. Это закрытая нишевая система с ограниченным кругом пользователей и единственным поставщиком НИИСИ РАН.

Но именно в этом и смысл. «Багет» не конкурирует с Linux или Windows  он закрывает задачу, которую те принципиально не умеют решать: гарантированное время реакции, работа в экстремальных условиях, отечественная сертификация для оборонных применений.

Критерий

ОС2000

Тип ядра

Микроядро — сервисы в user-space, ядро минимально

Совместимость

POSIX 1003.1 — привычный API для Unix-разработчиков

Архитектуры

MIPS (КОМДИВ), Intel i486, «Эльбрус»

Виртуальная память

Отсутствует — только физическая адресация

Применение

Авиация, флот, космос, оборонная промышленность

Исходный код

Закрытый — поставщик НИИСИ РАН

Сертификация

Государственная приёмка для российской оборонки

Пока фронтенд-разработчики спорят о выборе очередного фреймворка, ОС2000 без лишнего шума крутится в гидроакустическом отсеке атомной подводной лодки. Здесь нет монитора, нет мыши и нет красивого интерфейса. Есть только консоль с данными о состоянии торпедных аппаратов и датчиков глубины  и микроядро «Багета», которое гарантирует ответ на прерывание за микросекунды. Без права на ошибку.

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


  1. MinimumLaw
    02.06.2026 07:43

    Привет мои нулевые. Довелось видеть это чудо живьем. Сам, правда, не писал. Только позволял делать это в привычных разработчикам средах типа Visual Studio. Я тогда схемотехником был и Linux был интересен как некоторая экзотика, отличная от MS-Dos/Windows. Как и OS/2 немного раньше. И кто б мог подумать, что это окажется востребованным, а в последствии основным. К концу нулевых в наших проектах ОС 2000 закончилась, чему все порадовались. Хотя для названных задач она вполне подходит. Хотя и заявленная изоляция процессов... Впрочем, возможно проблема именно в той версии, что была у нас.


    1. ForestDront
      02.06.2026 07:43

      Как будто я сам написал. Тоже был схемотехником в нулевые и с багетами связывался со стороны внешних устройств. Привет тебе!


  1. nv13
    02.06.2026 07:43

    Да, сколько всем крови попортили этими багетами и корундом в те годы, а так ничего и не импортозаместили - ОС то может и ничего, но вот запускалось это всё на ненашем железе со штемпелями.. Второй приход импортозамещения на моей памяти)


  1. Tzimie
    02.06.2026 07:43

    А тесла ездит с GC?


  1. NutsUnderline
    02.06.2026 07:43

    . Здесь нет монитора, нет мыши и нет красивого интерфейса.

    можно подумать нет linux которые в таких режимах работает. Даже если стоит linux без rt то вполне используются аппаратные модули которые еще жестче времянку держат.

     драйвер является частью ядра и его ошибка кладёт всю систему

    драйвер все равно надо "вылизать" от ошибок потому что глючный он все равно не сможет выполнить работу. но поскольку это встраиваемая система то драйверов то не так уж и много.

    ПЗУ никаких вращающихся дисков

    а щас то в кажном роутере диск и не один :) :)

    в общем подано все так, будто сейчас нет встраиваемых систем и все работает абы как. Сравнивать надо не с windows 3 а с ПО для каких нибуть контроллеров НИИЭТ там, Миландр, Мультиклет а то и Элекс которые вполне в масштабе микросекунд могут работать, тоже без виртуальной памяти


  1. 100h
    02.06.2026 07:43

    А нельзя было знаки препинания хотя бы расставить? Глазам больно читать. Что за неуважение к читателю?