Русь ОС — нативный bootstrap собственной русскоязычной операционной системы.
Сейчас репозиторий уже умеет:
- собирать загрузочный
ISOчерезGRUB + xorriso; - поднимать freestanding-ядро на
C; - запрашивать framebuffer у загрузчика и рисовать ранний boot graphics path прямо в ядре;
- загружаться в
QEMUв интерактивную раннюю консоль ядра; - собирать нативный userspace на
C; - автоматически запускать recovery, экран запуска и рабочий стол из
init; - поднимать
framebufferdи materializeframebuffer 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 и раннюю графическую заставку;
- журнал запуска;
- раннюю консоль ядра с русскими командами.
Доступные команды ранней консоли:
справкасписокпоказатьпамятьсетьграфикажурналстатуспрограммыочиститьвыход
Нативные C-бинарники уже собираются в сборка/нативные/bin:
оболочкаии_шлюзобновленияframebufferddesktopdпрокси_центр_службавосстановлениекодекскодекс_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
appsbranch и падать назад на 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 тест.