Skip to content

Repository files navigation

Русь ОС

Русь ОС — нативный bootstrap собственной русскоязычной операционной системы.

Сейчас репозиторий уже умеет:

  • собирать загрузочный ISO через GRUB + xorriso;
  • поднимать freestanding-ядро на C;
  • запрашивать framebuffer у загрузчика и рисовать ранний boot graphics path прямо в ядре;
  • загружаться в QEMU в интерактивную раннюю консоль ядра;
  • собирать нативный userspace на C;
  • автоматически запускать recovery, экран запуска и рабочий стол из init;
  • поднимать framebufferd и materialize framebuffer ABI как /устройства/framebuffer0;
  • поднимать desktopd как системную GUI-службу с оконным backend при наличии display;
  • запускать Chromium через системную службу в режиме vendored-first, без системного fallback по умолчанию;
  • собирать bundled app-пакеты для Кодекса, Кодекс App, Обзора и Центра обновлений;
  • синхронизировать встроенные приложения через отдельную службу обновления и updater-managed app-layer;
  • упаковывать в образ оболочку, службы и системные приложения;
  • проверять boot и базовые сервисы smoke-тестами.

Что уже реально работает

Загрузка

  • make iso собирает образ сборка/русь-os.iso;
  • make тест-загрузка проверяет, что ядро грузится и поднимает prompt ранней консоли;
  • make qemu запускает ISO через serial-консоль.

Ядро

Ядро сейчас даёт:

  • инициализацию памяти;
  • русскую VFS-модель верхнего уровня;
  • сетевое состояние bootstrap-уровня;
  • multiboot2 framebuffer bootstrap и раннюю графическую заставку;
  • журнал запуска;
  • раннюю консоль ядра с русскими командами.

Доступные команды ранней консоли:

  • справка
  • список
  • показать
  • память
  • сеть
  • графика
  • журнал
  • статус
  • программы
  • очистить
  • выход

Userspace

Нативные C-бинарники уже собираются в сборка/нативные/bin:

  • оболочка
  • ии_шлюз
  • обновления
  • framebufferd
  • desktopd
  • прокси_центр_служба
  • восстановление
  • кодекс
  • кодекс_app
  • старт
  • рабочий_стол
  • экран_запуска
  • диспетчер_задач
  • обзор
  • центр_обновлений
  • документация
  • проводник
  • редактор
  • терминал
  • монитор_системы
  • прокси_центр
  • ключи_ai

Пока это ещё не self-hosted userspace внутри ядра. На текущем этапе они:

  • собираются нативно на C;
  • работают на хосте поверх зеркала файловой структуры через RUS_OS_ROOT;
  • умеют читать .речь-сценарии и реестр приложений прямо из rootfs;
  • упаковываются в дистрибутивный корень дистрибутив/корень.

Что уже связано в единый runtime:

  • init сначала запускает восстановление, затем обновления --first-boot, затем ии_шлюз, затем Старт;
  • init поднимает framebufferd, который материализует /устройства/framebuffer0 с meta.json, frontbuffer.bin и backbuffer.bin;
  • desktopd становится системной точкой входа в GUI и выбирает оконный backend или TUI fallback;
  • desktopd переживает ограниченное число crash-restart попыток и не валит систему сразу при одиночном падении стартового GUI-слоя;
  • desktopd сохраняет compositor-state сцены и активные окна в /пользователи/гость/.desktopd/scene.json;
  • desktopd и compositord ведут runtime-снимок окон, сцены и событий, который видят одинаково Диспетчер задач, shell и health-команды;
  • сцена рабочего стола рендерится в software framebuffer ABI, чтобы GUI-слой уже имел единый бинарный front/backbuffer контракт;
  • Старт показывает анимированный экран загрузки и автоматически переводит систему в Рабочий стол;
  • Экран запуска умеет менять пресет анимации, шаги старта, путь к загрузочной фотке и режим автозапуска desktop;
  • браузерный слой сначала ищет bundled/vendored Chromium, а системный chromium разрешается только через явный override;
  • updater умеет брать latest app-index из GitHub apps branch и падать назад на bundled packages из ISO;
  • актуальные версии приложений живут в /система/приложения/<id>/<version> и активируются через current;
  • обновление и откат встроенных приложений автоматически ставят GUI на hot-reload, чтобы новые .речь-версии подхватывались без reboot;
  • Рабочий стол открывает Кодекс App, Терминал, Проводник, Экран запуска, Диспетчер задач, Обзор/Chromium Shell и восстановление;
  • Диспетчер задач умеет смотреть процессы, службы, GUI runtime, recovery-отчёт, завершать процессы и запускать проверку/восстановление системы;
  • после выхода из desktop init отдаёт управление в нативную оболочку как сервисный fallback.

Следующий системный этап — реальный handoff из ядра в этот userspace.

Быстрый старт

make нативные
make iso
make тест-загрузка
make qemu

Для полной проверки:

make тест

Для vendored Chromium pipeline:

python3 инструменты/chromium/подготовить.py bootstrap
python3 инструменты/chromium/подготовить.py status
python3 инструменты/chromium/подготовить.py package
python3 инструменты/chromium/подготовить.py install-artifact vendor/chromium/dist/rus-os-chromium.tar.xz
python3 инструменты/chromium/подготовить.py download-release
python3 инструменты/chromium/подготовить.py repackage-prebuilt
python3 инструменты/подготовить_релиз.py проверить

Для bundled app-пакетов и локального app-index:

make пакеты_приложений

Тяжёлая upstream-сборка Chromium вынесена в:

.github/workflows/chromium-build.yml

`workflow_dispatch` умеет опционально публиковать готовый runtime в GitHub Release `chromium-stable`, а updater/installer умеют забирать этот runtime по `release_url`.

Структура

  • загрузчик/ — multiboot entry и linker script
  • ядро/ — freestanding kernel
  • система/нативные/ — нативная оболочка, службы и библиотеки
  • программы/ — системные приложения на C
  • дистрибутив/ — корень образа и конфигурация GRUB
  • документация/ — встроенная документация
  • инструменты/ — сборка, запуск и boot-smoke

Текущее ограничение

Проект уже даёт bootable ISO, recovery-проверку поставки, анимированный старт, materialized framebuffer ABI и автозапускаемый desktop-shell, но ещё не является полноценной self-hosted framebuffer/windowing ОС с собственным userspace compositor внутри уже загруженного ядра. Chromium-путь уже переведён на vendored-first pipeline с CI-artifact packaging, но полная upstream-сборка Chromium по-прежнему выполняется вне локального make тест.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages