Справочник
1. Введение
1.1 Обзор системы
Космопорт — это реактивная операционная система реального времени, построенная на принципах unikernel и полностью событийно-ориентированной архитектуры.
Вся система представляет собой единую реактивную гибридную базу данных, которая одновременно является и ядром операционной системы, и хранилищем всего состояния.
Горячие данные (сессии пользователей, активные операции, реактивный UI) хранятся в оперативной памяти и работают на скорости до 1,5 млн операций в секунду. Всё остальное — страницы, документы, пользовательские объекты и архивы — автоматически уходит в холодное хранилище, а критические данные с обязательным шифрованием по ГОСТ «Магма».
1.2 Архитектурная философия
Вся операционная система построена вокруг одной простой идеи: есть только состояние и события.
Любое изменение в системе — это событие в реактивной базе данных. Все компоненты рантайм, сеть, UI, драйверы, клиенты не управляют состоянием напрямую, а лишь реагируют на изменения через подписки.
Такой подход даёт предсказуемость, детерминизм, естественную изоляцию и возможность масштабирования от одного микроконтроллера до глобальной распределённой сети без изменения базовой модели.
1.3 Сценарии использования
Система предназначена для задач, где одновременно требуются высокая производительность, надёжность и жёсткие требования безопасности. Космопорт может работать в широком диапазоне сценариев — от компактных embedded-систем до крупных распределённых кластеров.
2. Архитектура системы
2.1 Компоненты
Система состоит из набора взаимосвязанных компонентов, объединённых реактивной моделью и общей базой состояния:
Ядро (unikernel) — минимальная изолированная среда выполнения, управляющая ресурсами системы.
Реактивная база данных — единый источник истины, в котором хранится всё состояние системы.
Системный рантайм — выполняет задачи, обработку событий, планирование и управление ресурсами.
Сетевая подсистема — обеспечивает обмен состоянием и событиями между узлами.
Графическая подсистема — отображает состояние системы в виде пользовательского интерфейса.
Драйверы — обеспечивают взаимодействие с оборудованием через унифицированные интерфейсы.
Клиенты — внешние участники системы (CLI, GUI, устройства, сервисы), взаимодействующие через API.
Подсистема безопасности — управляет ключами, доступом, сессиями и политиками безопасности.
Хранилище — гибридная система хранения (RAM + диск + WAL) с шифрованием и восстановлением состояния.
Все компоненты не взаимодействуют напрямую, а обмениваются данными исключительно через изменения состояния в базе данных, что обеспечивает слабую связанность, детерминизм и масштабируемость.
2.2 Специализированное ядро (Unikernel)
Unikernel (специализированное ядро) — тип компьютерной программы, которая статически скомпонована с кодом используемой ей функциональности в операционной системе.
Такие ядра создаются с помощью специализированного компилятора, который находит используемые прикладной программой сервисы операционной системы и связывает их с их реализациями в соответствующих системных библиотеках.
Некоторые особенности unikernel:
Не требует отдельной операционной системы и может работать в качестве «гостя» гипервизора.
Специализирована под нужды конкретного приложения. Функциональность ОС адаптируется под требования приложения, ресурсы системы расходуются эффективнее.
Обладает высокой производительностью по сравнению с монолитной архитектурой ядра. Это связано с тем, что все данные и файлы размещаются в едином адресном пространстве.
Повышает безопасность программной среды. В случае взлома приложения хакер получит доступ лишь к его бинарнику.
2.3 Операционная система реального времени (RTOS)
RTOS (от real-time operating system) — операционная система реального времени. Главное отличие таких систем от всех остальных — в скорости обработки внешних сигналов и своевременном реагировании.
Некоторые особенности RTOS:
Детерминизм. Система предсказуема, её поведение заранее известно.
Приоритеты задач. Задания обрабатываются по строго определённым правилам приоритетов, без «подвисаний».
Минимальная задержка переключения контекста. Реакция мгновенная.
Компактность. RTOS маленькая, лёгкая и чаще всего запускается на микроконтроллерах.
RTOS применяют там, где нужна надёжность, скорость или простота. Например, RTOS управляет системами защиты серверов, кардиостимуляторами, электронной тормозной системой в автомобиле, автопилотом, системами отслеживания биржевых котировок и бронирования билетов.
2.4 Изоляция
Цель изоляции — гарантировать, что каждый компонент может получить доступ только к своему собственному адресному пространству и ресурсам.
2.5 Событийно-ориентированная модель (EDA)
Все компоненты обмениваются информацией через события — уведомления о произошедших изменениях или действиях. Например, «пользователь зарегистрировался», «платеж обработан», «товар добавлен в корзину».
Ключевые принципы EDA:
Слабая связанность — компоненты не знают о существовании друг друга, взаимодействуют только через события.
Асинхронность — отправитель события не ждёт ответа от получателя, что повышает производительность и устойчивость системы к нагрузкам.
Однонаправленность потока событий — события описывают прошлое и не могут быть изменены после публикации, обеспечивая аудит и надёжность.
Распределённость — компоненты могут работать на разных серверах и масштабироваться независимо друг от друга.
Реактивность — система реагирует на события в реальном времени, а не по расписанию или запросу.
3. Ядро системы
3.1 Архитектура
Ядро системы представляет собой реактивную базу данных, полностью размещенную в оперативной памяти. Это единый источник истины, в котором хранится всё состояние операционной системы: процессы, ресурсы, сетевые соединения и пользовательские данные. Все подсистемы (рантайм, сеть, UI, драйверы) не управляют состоянием напрямую, а взаимодействуют с ним исключительно через операции чтения и записи в базу данных.
3.2 Состояние как поток
Состояние системы не рассматривается как набор структур в памяти, а как поток изменений внутри базы данных. Любая запись или изменение состояния фиксируется как событие, которое автоматически распространяется по системе. Компоненты не опрашивают состояние — они подписываются на изменения и реагируют на них, что устраняет необходимость в ручной синхронизации.
3.3 События
Любое изменение в базе данных представлено как событие: создание, обновление или удаление состояния. Эти события являются основным механизмом взаимодействия между всеми частями системы. Вместо прямых вызовов или сигналов компоненты реагируют на изменения в базе, что делает систему детерминированной и воспроизводимой.
3.4 Репликация
База данных может быть реплицирована между узлами, распространяя состояние операционной системы по сети. Репликация осуществляется на уровне потоков изменений или снимков состояния. Это позволяет строить распределённую ОС, где состояние синхронизируется между машинами и может быть восстановлено после сбоев.
3.5 Консистентность
Консистентность определяется правилами применения изменений к состоянию базы данных. Система поддерживает различные модели согласованности, включая строгую и eventual consistency. Конфликты при обновлении состояния разрешаются на уровне базы данных с использованием встроенных стратегий или пользовательской логики.
3.6 Подписки
Компоненты системы подписываются на изменения в базе данных, а не взаимодействуют друг с другом напрямую. Подписки позволяют получать обновления только по интересующим частям состояния. Это формирует слабосвязанную архитектуру, где взаимодействие происходит через изменения данных, а не через вызовы.
3.7 Управление состоянием
Управление состоянием включает контроль всех изменений в базе данных: валидацию, применение политик доступа, версионирование и откаты. База данных определяет допустимые переходы состояния и гарантирует их корректность. Таким образом, контроль всей операционной системы осуществляется через управление её состоянием.
4. Системный рантайм
4.1 Планировщик
Планировщик отвечает за выполнение задач, возникающих в результате изменений состояния в базе данных. Он не управляет системой напрямую, а обрабатывает очередь вычислений, сформированную реактивной моделью. Планирование может учитывать приоритеты, зависимости и дедлайны, обеспечивая предсказуемое и эффективное выполнение.
4.2 Таймеры
Таймеры используются для генерации событий времени, которые записываются в базу данных как изменения состояния. Вместо прямого управления временем, рантайм инициирует временные события (таймауты, интервалы), которые затем обрабатываются системой как обычные реактивные изменения.
4.3 Память
Подсистема управления памятью обеспечивает выделение, освобождение и защиту памяти для выполнения задач рантайма. При этом состояние системы не хранится здесь, а находится в базе данных. Память используется исключительно как ресурс для исполнения вычислений, кэширования и работы драйверов.
4.4 Прерывания
Аппаратные и программные прерывания преобразуются в события, которые записываются в базу данных. Рантайм не обрабатывает их напрямую, а транслирует в изменения состояния, позволяя системе реагировать на них через общую реактивную модель.
4.5 IPC
Межкомпонентное взаимодействие реализуется не через прямые сообщения, а через изменения состояния в базе данных. IPC в рантайме служит вспомогательным механизмом для передачи данных между вычислительными контекстами, но основная коммуникация происходит через реактивную модель.
4.6 Security model
Рантайм обеспечивает изоляцию выполнения, контроль доступа к памяти и ресурсам, а также применение политик безопасности во время исполнения. Все решения о доступе принимаются на основе состояния, хранящегося в базе данных, а рантайм выступает как механизм принудительного исполнения этих правил.
5. Сетевая подсистема
5.1 Модель сети
Сетевая подсистема рассматривается как транспорт для распространения изменений состояния между узлами. Она не является отдельным уровнем логики, а служит продолжением реактивной базы данных, обеспечивая передачу событий и данных между экземплярами системы. Любое сетевое взаимодействие в конечном итоге сводится к синхронизации состояния.
5.2 Протоколы
Система поддерживает использование любых сетевых протоколов как транспорта данных. Протоколы не встроены жёстко, а подключаются и конфигурируются как часть системы. Они используются для доставки потоков изменений состояния, а не для реализации бизнес-логики, что позволяет абстрагироваться от конкретных сетевых стандартов.
5.3 Регистрация
Регистрация сетевых протоколов и обработчиков выполняется через изменения в базе данных. Новые протоколы или обработчики объявляются как часть состояния системы и автоматически включаются в работу. Это позволяет динамически расширять сетевые возможности без перезапуска или изменения кода рантайма.
5.4 Маршрутизация
Маршрутизация определяется состоянием, хранящимся в базе данных. Правила маршрутизации описываются декларативно и применяются к потокам данных и событий. Система направляет данные между узлами и компонентами в соответствии с текущим состоянием, а не через жёстко заданную логику.
5.5 QoS
Управление качеством обслуживания реализуется через политики, заданные в базе данных. Приоритеты, ограничения пропускной способности и правила обработки трафика описываются как состояние и применяются рантаймом при передаче данных. Это позволяет динамически изменять поведение сети без вмешательства в код.
5.6 Namespace
Сетевые пространства имён используются для изоляции потоков данных, протоколов и соединений. Namespace определяются как часть состояния системы и позволяют разделять различные контексты: пользователей, сервисы или узлы. Это обеспечивает безопасность и управляемость в многопользовательской и распределённой среде.
6. Клиенты
6.1 Типы клиентов
Клиенты представляют собой внешние компоненты, которые взаимодействуют с системой через чтение и изменение состояния в базе данных. Они не содержат бизнес-логики системы, а выступают как интерфейс к ней. Тип клиента определяет форму взаимодействия, но не меняет модель работы.
CLI
Командный интерфейс, позволяющий взаимодействовать с системой через текстовые команды. Запросы пользователя преобразуются в изменения состояния базы данных, а результаты возвращаются через подписку на изменения.
GUI
Графический интерфейс, отображающий текущее состояние системы и позволяющий изменять его через визуальные элементы. Интерфейс является проекцией состояния базы данных и автоматически обновляется при его изменении.
Thin client
Облегчённый клиент, не содержащий логики выполнения. Все вычисления происходят на стороне системы, а клиент только отображает состояние и отправляет пользовательские действия.
Embedded
Встроенные клиенты, интегрированные в устройства или сервисы. Они взаимодействуют с системой напрямую через сетевой протокол, изменяя и получая состояние без пользовательского интерфейса.
6.2 Подключение к сети
Процесс подключения клиента заключается в установлении связи с системой и синхронизации начального состояния. После подключения клиент становится участником реактивной модели и получает обновления состояния в реальном времени.
Bootstrapping
Начальная инициализация клиента: получение конфигурации, ключей и точки входа в сеть. Определяет, к какому узлу подключаться и как начать взаимодействие.
Discovery
Обнаружение доступных узлов системы. Клиент может выбирать оптимальный узел на основе доступности, задержки или других параметров.
Handshake
Установление соединения с узлом, включая согласование протоколов, параметров связи и проверку допустимости подключения.
6.3 Аутентификация
Подтверждение личности клиента осуществляется через механизмы, определённые в базе данных. После аутентификации клиент получает права доступа, которые определяют, какие части состояния он может читать или изменять.
6.4 Сессии
Сессия представляет собой контекст взаимодействия клиента с системой. В рамках сессии отслеживаются подписки, права доступа и текущее состояние клиента. Сессии управляются через базу данных и могут быть восстановлены или завершены.
6.5 Протокол взаимодействия
Клиенты взаимодействуют с системой через протоколы, передающие изменения состояния и подписки. Протокол не содержит логики системы, а служит только транспортом для операций над состоянием.
6.6 Web / WASM клиенты
Клиенты, выполняющиеся в браузере или WASM-среде. Они используют стандартные сетевые протоколы и работают в изолированной среде, при этом полностью следуя реактивной модели системы.
6.7 Remote UI
Удалённый интерфейс, в котором визуальное представление формируется на стороне системы, а клиент получает уже готовую проекцию состояния. Это позволяет минимизировать нагрузку на клиент и централизовать логику интерфейса.
7. Графическая подсистема
7.1 Архитектура
Графическая подсистема является проекцией состояния, хранящегося в базе данных. Она не содержит собственной логики управления интерфейсом, а преобразует данные в визуальное представление. Любые изменения интерфейса происходят как результат изменений состояния системы.
7.2 Pipeline
Графический пайплайн преобразует состояние в команды рендера. Данные из базы данных проходят через стадии обработки: построение сцены, подготовка геометрии и формирование команд для GPU. Пайплайн не управляет логикой отображения, а только исполняет её.
7.3 Native renderer
Нативный рендерер обеспечивает прямое взаимодействие с GPU и выполнение графических команд. Он принимает подготовленные данные из пайплайна и отображает их на экране. Рендерер не принимает решений о том, что рисовать — только как это сделать эффективно.
7.4 WASM renderer
WASM-рендерер позволяет выполнять графическую логику в изолированной среде WebAssembly. Он используется для переносимых или пользовательских компонентов интерфейса, при этом оставаясь частью общей реактивной модели и не имея прямого доступа к состоянию вне контролируемых интерфейсов.
7.5 Композитинг
Подсистема композитинга объединяет различные визуальные слои в итоговое изображение. Она управляет порядком наложения, прозрачностью и изоляцией слоёв. Все параметры композитинга задаются через состояние в базе данных.
7.6 UI framework
UI-фреймворк предоставляет декларативный способ описания интерфейса как функции от состояния. Компоненты описывают, как должен выглядеть интерфейс при определённых данных, а обновления происходят автоматически при изменении состояния.
7.7 Design system
Система дизайна определяет визуальные правила: цвета, типографику, отступы и компоненты. Эти параметры также являются частью состояния и могут изменяться динамически, влияя на внешний вид всей системы без изменения кода.
7.8 Input
Пользовательский ввод (клавиатура, мышь, сенсорные события) преобразуется в изменения состояния. Вместо прямой обработки событий, ввод записывается в базу данных, после чего система реагирует на него через общую реактивную модель.
7.9 Remote UI
Интерфейс может формироваться удалённо, на стороне системы, и передаваться клиенту как поток данных или готовое представление. Клиент в этом случае выполняет роль отображающего устройства, а вся логика UI остаётся централизованной.
7.10 DB → UI
Интерфейс является прямым отображением состояния базы данных. Любое изменение данных автоматически приводит к обновлению UI без явных вызовов перерисовки. Это обеспечивает детерминированность, синхронность и отсутствие рассинхронизации между состоянием и отображением.
8. Драйверы
8.1 Архитектура
Драйверы представляют собой адаптеры между аппаратным обеспечением и реактивной моделью системы. Они не управляют устройствами напрямую в императивном стиле, а транслируют состояние устройств в изменения базы данных и наоборот.
Любое устройство описывается как набор состояний (регистры, буферы, очереди), а драйвер отвечает за синхронизацию этих состояний с физическим устройством. Таким образом, драйвер — это двунаправленный преобразователь:
hardware ⇄ state database.
Драйверы не содержат бизнес-логики и не взаимодействуют друг с другом напрямую — вся координация происходит через общее состояние системы.
8.2 HAL
HAL (Hardware Abstraction Layer) предоставляет унифицированный интерфейс к аппаратным ресурсам. Он скрывает особенности конкретного железа и предоставляет драйверам стандартные примитивы:
- доступ к памяти устройств (MMIO)
- работа с прерываниями
- DMA операции
- синхронизация
HAL не является слоем логики — это минимальный набор низкоуровневых абстракций, необходимых для реализации драйверов. Он обеспечивает переносимость системы между различными архитектурами и платформами.
8.3 Типы
Драйверы классифицируются по типу взаимодействия с устройством:
- Block devices — диски, файловые системы, хранилища
- Network devices — сетевые карты, виртуальные интерфейсы
- Character devices — последовательные порты, консоли
- GPU / Display — графические адаптеры и вывод
- Input devices — клавиатуры, мыши, сенсоры
- Virtual devices — программные устройства
Независимо от типа, каждый драйвер реализует одну и ту же модель: синхронизация состояния устройства с базой данных.
8.4 Async модель
Драйверы полностью асинхронны и встроены в событийную модель системы.
Операции с устройствами не блокируют выполнение:
- запрос записывается как изменение состояния
- драйвер инициирует операцию
- результат возвращается как событие
Прерывания от устройств не обрабатываются напрямую — они преобразуются в события базы данных, после чего система реагирует на них через подписки.
Это устраняет необходимость в блокирующих вызовах и упрощает масштабирование.
8.5 Lifecycle
Жизненный цикл драйвера управляется через состояние:
- обнаружение устройства (discovery)
- инициализация
- регистрация в системе
- активная работа
- остановка / удаление
Все этапы описываются как изменения состояния, что позволяет:
- динамически подключать устройства
- перезапускать драйверы
- восстанавливать состояние после сбоев
Драйвер не хранит внутреннего состояния вне базы данных.
8.6 Безопасность
Безопасность драйверов обеспечивается несколькими уровнями:
- изоляция выполнения (unikernel / sandbox)
- ограниченный доступ к памяти через HAL
- контроль прав доступа через базу данных
- валидация всех операций состояния
Драйвер не может напрямую повлиять на систему вне разрешённой области. Любое действие проходит через проверку политики, заданной в состоянии.
Это снижает риск компрометации системы через уязвимости в драйверах.
8.7 Разработка
Разработка драйверов ориентирована на декларативную модель:
- описание состояния устройства
- правила синхронизации
- обработка событий
Вместо написания императивного кода управления, разработчик описывает:
"как должно выглядеть состояние" и "как реагировать на изменения".
Это упрощает тестирование, так как драйвер можно запускать в изолированной среде с эмуляцией состояния без реального железа.
8.8 Виртуализация
Драйверы могут работать как с физическими, так и с виртуальными устройствами.
Виртуализация реализуется через:
- проксирование состояния
- эмуляцию устройств
- распределённые драйверы
Устройство может находиться:
- локально (физическое железо)
- удалённо (через сеть)
- виртуально (программная реализация)
Для системы это прозрачно — все устройства выглядят как состояние в базе данных.
Это позволяет строить распределённые аппаратные абстракции и переносить выполнение между узлами.
9. Безопасность
9.1 Модель
Безопасность системы построена вокруг контроля состояния и криптографической защиты на всех уровнях. Любое действие в системе возможно только при наличии соответствующего состояния и прав доступа.
Система изначально предполагает недоверенную среду: каждый компонент, узел или клиент считается потенциально небезопасным. Все взаимодействия проходят через валидацию, а доступ к данным определяется политиками, хранящимися в базе данных.
Безопасность не является отдельным модулем — она встроена в саму модель работы системы: состояние, события и доступ управляются централизованно и детерминированно.
Дополнительно система использует unikernel-подход, при котором каждый экземпляр выполняется как специализированная, изолированная среда без общего пользовательского пространства.
Это означает:
- отсутствие универсальной среды исполнения для стороннего кода
- невозможность запуска произвольных бинарников извне
- минимальную поверхность атаки
В результате система по своей архитектуре устойчива к классическим вирусам и вредоносному ПО, так как внешний код не имеет точки внедрения и не может быть выполнен вне контролируемой модели состояния.
9.2 ГОСТ (Магма)
Для защиты данных используется криптография, встроенная в операционную систему. Основной алгоритм симметричного шифрования — ГОСТ «Магма».
Шифрование применяется к:
- файлам базы данных
- снимкам состояния
- сетевым потокам (опционально)
Дешифрование возможно исключительно средствами операционной системы. Алгоритмы и ключевые операции не выносятся наружу и не делегируются сторонним библиотекам.
Все данные в состоянии покоя хранятся в зашифрованном виде, и без корректного выполнения алгоритмов системы остаются недоступными.
9.3 Ключи
Запуск операционной системы возможен только при наличии криптографического ключа запуска.
Ключ:
- генерируется специализированным генератором
- хранится на физическом носителе в защищённом месте
- имеет резервные копии в отдельных, изолированных локациях
Процесс получения ключа строго регламентирован:
- ключ выдаётся только по специальному запросу
- каждая выдача фиксируется в журнале службой безопасности
- доступ к генератору и носителям ограничен и контролируется
Без ключа запуска:
- система представляет собой набор обфусцированных бинарных файлов
- данные базы остаются зашифрованными
- доступ к состоянию практически невозможен
Ключ не хранится в системе постоянно и используется только в рамках контролируемого процесса запуска.
9.4 Auth
Аутентификация основана на проверке прав доступа, определённых в базе данных.
Идентификация может включать:
- криптографические ключи
- токены
- внешние провайдеры (при необходимости)
После успешной аутентификации клиент получает доступ только к разрешённым частям состояния. Все операции проверяются на соответствие политике доступа перед применением.
Аутентификация не даёт прямого доступа к системе — она лишь определяет границы взаимодействия с состоянием.
9.5 Изоляция
Система обеспечивает строгую изоляцию компонентов:
- каждый компонент работает в собственном адресном пространстве
- доступ к памяти и ресурсам контролируется рантаймом
- взаимодействие возможно только через изменения состояния
Даже в случае компрометации компонента:
- доступ ограничен его областью состояния
- невозможно выйти за пределы разрешённых ресурсов
- невозможно напрямую взаимодействовать с другими компонентами
Изоляция распространяется на:
- процессы
- драйверы
- сетевые пространства
- пользовательские сессии
9.6 Сеть
Сетевая безопасность реализуется как часть общей модели состояния:
- все соединения проходят проверку политик
- данные могут шифроваться на уровне транспорта
- узлы аутентифицируются перед обменом состоянием
Сетевые взаимодействия не имеют привилегий по умолчанию — любой обмен данными рассматривается как потенциально небезопасный.
Дополнительно:
- поддерживается изоляция через namespace
- возможна фильтрация и контроль трафика через политики QoS
- репликация состояния защищена криптографически
Таким образом, сеть является продолжением модели безопасности, а не отдельной уязвимой поверхностью.
10. API
10.1 System API
System API предоставляет доступ к функциональности операционной системы через контролируемые операции над состоянием.
Особенности:
- одинаково предназначено для людей и роботов
- каждый клиент получает собственную сессию с уникальным фингерпринтом и правами
- фингерпринт генерируется на основе сетевых данных и протокола подключения
- все вызовы API транслируются в изменения состояния и события, без прямого обхода модели системы
Таким образом, поведение клиентов детерминировано и контролируется, независимо от того, человек это или автоматизированный агент.
10.2 Network API
Network API обеспечивает взаимодействие между узлами системы и клиентами через сеть.
- предоставляет доступ к подпискам, публикации событий и управлению потоками данных
- поддерживает любые транспортные протоколы без изменения бизнес-логики
- API одинаков для всех участников: человек и робот получают собственные изолированные сессии и фингерпринты
- все сетевые операции проходят проверку политик безопасности и согласование состояния
10.3 ABI
ABI (Application Binary Interface) описывает низкоуровневые контракты между системой и внешними компонентами:
- определяет формат данных, вызов функций и структуру событий
- гарантирует совместимость между разными версиями системы и клиентами
- одинаково применяется для людей и роботов
- обеспечивает безопасность через проверку типов и границ данных
10.4 SDK
SDK как набор инструментов разработчика отсутствует.
- система рассчитана на низкоуровневую разработку без сторонних библиотек (nostd)
- никаких готовых инструментов, примеров или абстракций для интеграции не предоставляется
- разработка клиентов требует работы напрямую через System API и реактивную модель состояния
10.5 Ограничения
Ограничения накладываются на уровне сессий и состояния:
- лимиты на количество запросов и подписок
- права доступа к частям состояния системы
- сетевые ограничения через QoS и namespace
- невозможность обхода модели состояния через прямые вызовы или обход API
Все ограничения одинаково применяются ко всем агентам, обеспечивая равные правила для всех участников системы.
11. Многопользовательность
11.1 Пользователи
Пользователи представляют собой отдельные идентичности системы, каждая с уникальной сессией и правами доступа.
- идентификаторы пользователей фиксируются в базе состояния
- каждому пользователю назначаются индивидуальные права и роли
- пользователи могут быть любыми органическими или неорганическими формами жизни, при этом система обеспечивает одинаковое поведение и контроль
- первая точка входа — регистрация нового клиента, создание фингерпринта и выдача ключей
11.2 Сессии
Сессия — это контекст взаимодействия пользователя с системой.
- включает подписки, права доступа и текущее состояние пользователя
- сессии создаются автоматически при подключении и могут быть восстановлены после сбоя
- каждая сессия имеет уникальный фингерпринт и идентификатор для отслеживания
- существующая сессия может быть «мутирована» на новом устройстве при авторизации с тем же ключом — все данные подтягиваются в новую сессию, обеспечивая доступность в любой среде
- можно создавать разные сессии на разных устройствах с разными параметрами и правами, при этом важно сохранять первый ключ восстановления для поддержания непрерывной миграции
11.3 Окружения
Окружения позволяют изолировать работу разных пользователей или групп пользователей.
- каждое окружение имеет собственное состояние и набор ресурсов
- изменения в одном окружении не влияют на другие
- используется для тестирования, разработки и разделения рабочих пространств
11.4 Доступ
Доступ к системе и её ресурсам управляется через права и политики, определённые в базе состояния.
- права пользователя определяют, какие части состояния он может читать или изменять
- система поддерживает динамическое изменение прав в процессе работы
- контроль доступа одинаков для людей и роботов
11.5 Песочница
Песочница обеспечивает безопасную и изолированную среду для выполнения действий пользователей.
- изменения внутри песочницы фиксируются, но не влияют на основное состояние до подтверждения
- предотвращает неконтролируемое вмешательство и повреждение данных
- используется для тестирования, экспериментов и безопасного выполнения кода
12. Распределённая система
12.1 Узлы
Узлы представляют собой отдельные инстансы системы, которые совместно хранят и обрабатывают состояние.
- каждый узел содержит реплику базы данных и участвует в синхронизации событий
- узлы могут быть динамически подключены или отключены без потери данных
- все узлы используют одинаковые модели безопасности и управления сессиями
12.2 Обнаружение
Механизм discovery обеспечивает автоматическое нахождение и регистрацию узлов в сети.
- новые узлы идентифицируются через уникальные идентификаторы и фингерпринты
- система выбирает оптимальные узлы для синхронизации и маршрутизации
- discovery поддерживает масштабирование и устойчивость сети
12.3 Балансировка
Балансировка нагрузки распределяет вычисления и обработку событий между узлами.
- учитывает текущую нагрузку, приоритеты задач и географическое расположение
- динамически перенаправляет запросы и события для оптимальной производительности
- поддерживает равномерное распределение ресурсов и предотвращение перегрузок
12.4 Отказоустойчивость
Система обеспечивает непрерывную работу при сбоях отдельных узлов или сетевых сегментов.
- данные и события реплицируются между узлами для сохранения целостности
- при падении узла система автоматически перенаправляет запросы и восстанавливает состояние
- минимизирует потерю данных и простоев
12.5 Консенсус
Механизмы консенсуса гарантируют согласованность состояния между узлами.
- поддерживает строгую или eventual согласованность в зависимости от политики
- разрешает конфликты обновлений через встроенные алгоритмы или пользовательскую логику
- обеспечивает детерминированное и воспроизводимое поведение системы
12.6 География
Географическое распределение узлов учитывается при маршрутизации и синхронизации.
- узлы могут находиться в разных регионах и дата-центрах
- система оптимизирует задержки и пропускную способность в зависимости от расстояния
- позволяет создавать глобально распределённую операционную систему с высокой доступностью
13. Конфигурация
13.1 Формат
Конфигурация системы хранится в декларативном формате, описывающем состояние, параметры и политики.
- конфигурационные файлы читаются и применяются системой при запуске
- поддерживается валидация структуры и типов данных
- изменения конфигурации отражаются в реактивной модели состояния
13.2 Ядро
Параметры ядра определяют поведение системы на низком уровне.
- включает настройки планировщика, управления памятью и прерываний
- влияет на производительность и безопасность
- все изменения применяются через централизованное состояние
13.3 Сеть
Сетевая конфигурация задаёт правила подключения, маршрутизации и QoS.
- определяет доступные интерфейсы, адреса и протоколы
- включает настройки namespace и ограничения пропускной способности
- изменения синхронизируются между узлами через реактивную модель
13.4 Протоколы
Конфигурация протоколов задаёт обработку событий и взаимодействие клиентов.
- новые протоколы подключаются как состояние системы
- можно динамически изменять правила обработки и маршрутизации
- гарантируется единое поведение для всех клиентов: людей и роботов
13.5 Безопасность
Параметры безопасности определяют правила аутентификации, шифрования и доступа.
- ключи запуска и шифрования управляются централизованно
- политики контроля доступа применяются через состояние базы
- конфигурация безопасности влияет на все компоненты и узлы системы
13.6 Динамическая конфигурация
Система поддерживает изменение конфигурации во время работы без перезапуска.
- параметры могут быть изменены через обновления состояния
- новые настройки автоматически вступают в силу в реактивной модели
- обеспечивает гибкость и адаптивность системы к изменяющимся условиям
14. Протоколы
14.1 Подключение
Подключение клиентов и узлов системы осуществляется через сетевые протоколы.
- поддерживаются любые транспортные протоколы: TCP, UDP, WebSocket, QUIC и др.
- подключение фиксируется в базе состояния с назначением сессий и фингерпринтов
- все операции проходят проверку политик безопасности и консистентности
14.2 DSL (Domain Specific Language)
DSL используется для декларативного описания правил протоколов и обработки событий.
- позволяет задавать правила маршрутизации, подписки и публикации событий
- обеспечивает гибкую конфигурацию без изменения кода рантайма
- новые протоколы подключаются через описание в DSL
14.3 Плагины
Плагины позволяют расширять поддержку протоколов и обработку событий.
- подключение новых протоколов и модулей возможно без изменения ядра
- регистрация и активация через состояние системы
- сохраняется единое поведение всех клиентов и узлов независимо от подключенных плагинов
14.4 Совместимость
Система гарантирует совместимость всех протоколов с разными версиями клиентов и узлов.
- новые версии протоколов не нарушают работу старых клиентов
- все клиенты, человек или робот, взаимодействуют через единый интерфейс
- проверка типов и границ данных обеспечивает безопасное использование
14.5 Основные транспортные протоколы
- TCP/UDP — базовые сетевые соединения
- WebSocket — интерактивное взаимодействие в реальном времени
- QUIC — быстрые и надежные транспортные соединения
- HTTP/HTTPS — стандартные веб-протоколы
- gRPC / BiCode — двоичные RPC-протоколы для быстрого обмена данными
- REST / JSON-RPC — API протоколы для совместимости с внешними сервисами
- Custom — любые нестандартные протоколы через DSL или плагины
14.6 Протоколы федерации и коммуникации
- Matrix — федеративный чат и обмен сообщениями
- XMPP — обмен мгновенными сообщениями и присутствие
- Nostr — децентрализованная публикация и подписка
- ActivityPub — социальные сети и взаимодействие между сервисами
- Другие — любые протоколы федерации через плагины и DSL
15. Хранилище
15.1 Персистентность
Хранилище системы — гибридная база данных с оперативной памятью и дисковым хранением, полностью шифрованная.
- горячие данные хранятся в оперативной памяти для высокой скорости записи (1,5 млн строк/сек)
- гибридные данные (оперативка + диск) — 700 тыс строк/сек
- зашифрованные данные ГОСТ Магма — 300 тыс строк/сек
- WAL обеспечивает асинхронную запись изменений и консистентность состояния
- критические данные удаляются из оперативки после использования для защиты информации
- бинарные файлы и метаданные зашифрованы
- ключи (ID) для всех объектов и событий позволяют обеспечивать чтение O(1) — максимальная возможная скорость доступа
15.2 Snapshot
Снимки состояния базы данных фиксируют текущее состояние для восстановления и синхронизации в распределенной сети.
- создаются периодически или по событию
- сохраняются с шифрованием для защиты данных
- используются для синхронизации состояния между узлами системы
15.3 Журналирование
Все события и изменения фиксируются внутри самой базы данных — отдельного логирования на диске нет.
- база данных выступает как журнал событий
- это предотвращает утечку данных и снижает поверхность атаки
- события доступны через подписки и реактивную модель
- гарантируется консистентность и безопасность без дублирования логов
15.4 Асинхронные индексаторы
База использует реактивную модель с асинхронными акторами-индексаторами для ускорения поиска.
- полнотекстовые индексаторы для текстовых данных
- векторные индексаторы для нейросетевых приложений
- работают как автономные агенты, не блокируя базу
- поддерживают грязный поиск и сложные запросы с фильтрацией и объединениями
- интегрируются с распределенным хранилищем холодных и статических данных
15.5 Восстановление (Recovery)
При перезапуске система восстанавливает состояние из WAL и последних снимков.
- горячие данные загружаются в оперативную память для продолжения работы с максимальной производительностью
- синхронизация с другими узлами распределенной сети обеспечивает консистентность
- процесс детерминирован и безопасен даже для зашифрованных данных ГОСТ Магма
16. Мониторинг
16.1 Метрики
Система автоматически собирает метрики производительности и состояния компонентов:
- использование памяти, CPU, сетевых ресурсов
- производительность реактивных потоков и индексаторов
- скорость обработки событий и транзакций
- показатели доступности и отказоустойчивости
16.2 Журналирование
Отдельных логов на диске нет — вся фиксация событий ведется внутри системы:
- ошибки, предупреждения и аномалии фиксируются и попадают в отчеты
- предотвращается утечка данных и сокращается поверхность атаки
- при работе в гостевом режиме можно подключить стандартное журналирование хост-ОС для анализа взаимодействия
16.3 Трейсинг
Система отслеживает последовательность операций и взаимодействия компонентов:
- фиксирует события на уровне сессий и реактивных потоков
- позволяет выявлять узкие места и задержки
- интегрируется с отчетами об ошибках и предупреждениях
16.4 Отладка (Debug)
Отказоустойчивость и изолированность системы позволяют безопасно выполнять отладку:
- фиксируются некорректные вызовы, утечки памяти и плохой код
- генерируются рекомендации по оптимизации и исправлению ошибок
- доступно интерактивное наблюдение за поведением системы без остановки
16.5 Инспекция (Introspection)
Система предоставляет возможности для анализа и контроля своего состояния:
- оценка состояния сессий, окружений и индексов
- проверка реактивных потоков и состояния распределенных узлов
- автоматическое выявление потенциальных проблем и их документирование
17. Развертывание
17.1 Голое железо (Bare metal)
Развертывание напрямую на физическом железе:
- установка на "голое" оборудование с контролем всех ресурсов
- система создаёт загрузочный раздел и управляет диском
- требует наличие драйверов для используемого оборудования
- подходит для максимальной производительности и полного контроля
17.2 Хостовая установка (Hosted)
Развертывание поверх существующей хост-ОС:
- используется специальная программа «Стрелочник» для бесшовного деплоя
- возможна интеграция с гостевой ОС без её удаления
- управление ресурсами и изоляция реализуются через встроенные механизмы
17.5 CI/CD
«Стрелочник» обеспечивает бесшовное развертывание и обновление системы:
- автоматизация доставки и установки на удаленные хосты и виртуальные среды
- поддержка непрерывной интеграции и обновления без прерывания работы пользователей
- контроль целостности окружений и управление версиями
- позволяет масштабировать систему и синхронизировать состояния между узлами
18. Производительность
18.1 Задержки (Latency)
- Система оптимизирована для минимальных задержек в обработке событий и данных.
- Используется прямой доступ к аппаратным ресурсам при запуске на голом железе.
- На виртуальных платформах применяются адаптивные тайминги для компенсации накладных расходов.
18.2 Настройка под RTOS
- Поддержка высокоточного планирования потоков и акторов.
- При работе на многопроцессорных системах распределяются потоки и индексы для полной загрузки CPU.
- Используются приоритеты задач для обеспечения детерминированного отклика.
18.3 Сетевые операции
- Асинхронная обработка пакетов и событий с минимальным копированием данных.
- Поддержка zero-copy передачи для высокоскоростных сетевых интерфейсов.
- Оптимизация TCP/UDP и протоколов уровня приложения без потери согласованности состояния.
18.4 Zero-copy и I/O
- Все чтение и запись данных на горячие сегменты хранилища реализуются без дополнительных буферизаций.
- Поддержка прямого доступа к памяти для межпроцессного обмена и сетевых операций.
- Повышает производительность при больших объёмах событий и потоков данных.
18.5 Многоядерность и масштабирование
- На голом железе система использует все ядра для параллельной обработки акторов, индексаторов и сетевых потоков.
- Автономные агенты выполняются без блокировки других компонентов.
- Горячие данные и операции индексации распределяются по ядрам для максимальной производительности.
19. Примеры
19.1 IoT
- Управление умными объектами в домах и промышленности: датчики, приводы, контроллеры.
- Поддержка обмена сообщениями и событиями между устройствами в реальном времени.
- Могут использоваться легковесные платформы, включая Raspberry Pi, Arduino, ESP32.
- Обеспечивается безопасная синхронизация состояния между облаком и локальными устройствами.
19.2 Распределённые системы
- Управление датацентрами, кластеризация серверов, балансировка нагрузки.
- Игровые и симуляционные среды с миллионами событий в секунду.
- Обеспечивает консистентное состояние через распределённое хранилище и реактивные акторы.
- Подходит для космических станций, роботов и инфраструктуры умного города.
19.3 Edge и робототехника
- Прямой контроль за человекоподобными роботами и автономными транспортными средствами.
- Локальная обработка данных с минимальными задержками благодаря zero-copy и многопоточности.
- Интеграция с сенсорами и приводами для высокоточной робототехники.
- Поддержка гибридных сценариев: обработка на месте + синхронизация с центральной системой.
19.4 Безопасные среды
Управление критически важными объектами с гарантированной изоляцией и безопасностью.
Использование шифрования ГОСТ Магма и ключей запуска для защиты данных.
Подходит для финансовых систем, оборонных объектов, космических миссий.
Система сама фиксирует ошибки и предлагает рекомендации.
20. Ограничения
20.1 Архитектура
Система сама по себе универсальна, но архитектурные ограничения накладывают условия на её работу:
Сложные аппаратные платформы и специфические CPU могут требовать кастомизации ядра.
Различия в архитектурах (x86_64, ARM, RISC-V) влияют на доступность низкоуровневых инструкций и производительность.
Стратегии обхода: использование унифицированных абстракций, FFI и промежуточных слоев для взаимодействия с нестандартным железом.
20.2 Протоколы
Хотя система поддерживает любые открытые и пользовательские протоколы, ограничения возникают при работе с централизованными и проприетарными сервисами:
- Некоторые платформы используют закрытые протоколы, проприетарные API сервисов и ИИ-платформ.
- Доступ к таким протоколам может быть ограничен: требуется официальное приложение, авторизация или соблюдение условий платформы.
- Провайдеры и сервисы могут применять блокировки по IP, геолокации, белые списки и фильтрацию трафика.
- Прямое взаимодействие с такими системами не всегда возможно из-за отсутствия открытых спецификаций.
Стратегии обхода:
- использование протокольных мостов (bridges) для интеграции с закрытыми системами;
- проксирование и туннелирование через разрешённые каналы;
- использование официальных API и SDK как промежуточного слоя;
- запуск агентов, эмулирующих поведение клиента;
- маршрутизация через распределённые узлы для обхода сетевых ограничений.
Таким образом, система сохраняет универсальность, даже при взаимодействии с закрытыми и централизованными экосистемами.
20.3 Железо
Главная сложность — доступ к оборудованию:
Производители часто не предоставляют открытые драйверы (Apple, специфические Android-устройства, некоторые серверные платформы).
Отсутствие драйверов делает невозможным прямую установку и использование всех функций ОС на отдельных устройствах.
На части ПК и датацентров возможна только работа через хост-ОС или гипервизор.
Стратегии обхода:
использование стандартных API и SDK производителей;
промежуточные слои (shim) для закрытых интерфейсов;
контейнеризация и виртуализация для обхода блокировок;
unikernel-подход для минимального ядра с прямым доступом к поддерживаемому железу.
Важный момент: эффективность работы и производительность напрямую зависят от наличия драйверов и поддержки архитектуры.
21. Экосистема
21.1 Участие разработчиков
Разработка ведется исключительно в закрытой экосистеме: - доступ к исходному коду предоставляется только авторизованным участникам - запрещено использование сторонних репозиториев и open source компонентов - контроль за качеством и безопасностью изменений осуществляется внутренними ревью и тестами
21.2 Расширение платформы
Расширение платформы возможно только через официальные механизмы: - разработчики могут создавать модули и агенты внутри закрытой среды - все расширения проходят проверку безопасности и совместимости - поддерживаются стандарты взаимодействия через API и протоколы системы
21.3 Экосистема
Экосистема объединяет все компоненты системы: - пользователи, клиенты, узлы сети и сервисы - унифицированное управление сессиями, правами и безопасностью - реактивная и событийная модель обеспечивает консистентность и контроль
21.4 Для инвесторов
Инвесторы получают доступ к специализированной среде: - мониторинг состояния системы и отчетность - возможность участвовать через криптовалютные инструменты - прозрачные механизмы вложений и распределения доходов
21.5 Для проверяющих органов
Система предоставляет аудит и отчеты для регулирующих органов: - контроль безопасности, целостности и корректности работы - доступ к метрикам и событиям без раскрытия закрытого кода - поддержка проверок без компрометации данных пользователей
21.6 Лицензирование
Все компоненты лицензируются в рамках закрытой платформы: - запрещено копирование и распространение кода - использование только в авторизованных средах - соблюдение внутренних политик безопасности и конфиденциальности
21.7 Управление (Governance)
Управление экосистемой осуществляется централизованно: - принятие решений по разработке, обновлениям и безопасности - контроль доступа и распределение ролей - протоколы голосования и утверждения изменений внутри закрытой среды
21.8 Сообщение о проблемах безопасности (Security disclosure)
Все уязвимости и инциденты фиксируются и обрабатываются централизованно: - сообщения об обнаруженных проблемах проходят через защищенный канал - система автоматически предлагает рекомендации и исправления - внешнее раскрытие информации только через официальные процедуры и после внутреннего аудита
22. Глоссарий
В алфавитном порядке
- DSL (Domain Specific Language) — специализированный язык для описания поведения системы, протоколов и маршрутизации.
- HAL (Hardware Abstraction Layer) — слой абстракции оборудования, предоставляющий унифицированный доступ к железу.
- Namespace — изолированное пространство ресурсов, пользователей или сетевых потоков.
- QoS (Quality of Service) — политики управления качеством обслуживания (приоритеты, ограничения трафика).
- Recovery — процесс восстановления состояния системы после перезапуска.
- RTOS (Real-Time Operating System) — операционная система с предсказуемой задержкой обработки событий, поддерживающая управление реального времени.
- Snapshot — снимок состояния системы в определённый момент времени.
- Unikernel — минимальное изолированное ядро, включающее только необходимую функциональность для выполнения системы.
- WAL (Write-Ahead Log) — механизм асинхронной записи изменений для обеспечения восстановления и консистентности.
- Zero-copy — подход к обработке данных без лишнего копирования в памяти.
- Актор (Actor) — асинхронный компонент, обрабатывающий события и изменения состояния без блокировок.
- Горячие данные — данные, находящиеся в оперативной памяти и используемые в реальном времени.
- Звездолет — специализированный клиент, подключающийся к Космопорту, выполняющий обмен данными и командной информацией.
- Индексатор — асинхронный агент, создающий дополнительные структуры (полнотекстовые, векторные) для ускорения поиска.
- Клиент — любое устройство или приложение, взаимодействующее с системой через сессию и фингерпринт.
- Космопорт — точка входа в систему, центральная узловая станция для подключения клиентов и распределения событий.
- Магма (ГОСТ Магма) — симметричный криптографический алгоритм, используемый для шифрования данных системы.
- Мост (Bridge) — компонент, обеспечивающий взаимодействие с внешними или закрытыми протоколами и сервисами.
- Нейроузел — система аутентификации и управления сессиями, обеспечивающая безопасность и консистентность клиентов.
- Протокольный мост — механизм интеграции с централизованными или закрытыми протоколами.
- Реактивная модель — архитектура, в которой компоненты реагируют на изменения состояния через подписки, а не через прямые вызовы.
- Сессия — контекст взаимодействия клиента с системой, включающий права доступа, подписки и текущее состояние.
- Событие (Event) — любое изменение состояния (создание, обновление, удаление), распространяемое по системе.
- Состояние (State) — совокупность всех данных системы, хранящихся в базе данных и определяющих текущее поведение ОС.
- Стрелочник — система бесшовного развертывания и обновления (CI/CD) для управления версиями и доставкой.
- Терминалы — изолированные домены с собственной бизнес-логикой, ресурсами и правилами работы.
- Федерация — совокупность серверов и клиентов, объединённых в распределённую сеть для синхронизации состояния и событий.
- Фингерпринт — уникальный идентификатор клиента или сессии, формируемый на основе сетевых параметров и протокола подключения.
- Холодные данные — данные, хранящиеся на диске и используемые реже.
.___ ____________ _________ ___ ___ ________ ________________ _____________________
| |/ /\_____ \ \_ ___ \ / V \ \_____ \ / _ \\_____ \\______ \__ ___/
| / / | \/ \ \/ / . . \ / | \/ | \/ | \| ___/ | |
| | \ / | \ \___/ Y / | \ | / | \ | | |
|___|___ \\_______ /\______ /\____|____ \_______ /\___|_ /\_______ /____| |____|
\/ \/ \/ \/ \/ \/ \/
[ Терминалы ] [ Звездолеты ] [ Федерация ] [ Нейроузел ] [ Справочник ]
Космопорт ГОСТ 11.04.2026. Операционная Система RTOS/Unikernel. Первый запуск на орбиту 03.03.2026. Сделано в СССР.
[Обновить]