Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Execution Flow

English | 한국어

English

Host Flow

cargo xtask build
  -> validate workspace layering
  -> build Multiboot2 nucleus
  -> sign nucleus.elf
  -> build GRUB EFI boot manager
  -> build userspace services/apps
  -> build modules and compatibility artifacts
  -> stage build/image
  -> write generated registries

cargo xtask run does not rebuild the image. It launches QEMU against the current build/image.

Staged Image Flow

build/artifacts/* + assets/image/* + vendor/*
  -> build/image/EFI/BOOT/BOOTX64.EFI
  -> build/image/nucleus.elf
  -> build/image/nucleus.elf.sig
  -> build/image/services/*
  -> build/image/apps/*
  -> build/image/system/drivers/*
  -> build/image/system/registry/*

Stage uses RUSTOS.package.toml manifests as the deployment source of truth. BOOTX64.EFI is generated by grub-mkstandalone with an embedded public key and check_signatures=enforce; GRUB loads /nucleus.elf only when /nucleus.elf.sig verifies. Microsoft/OEM Secure Boot signing of the generated GRUB EFI binary is a release pipeline step outside the repository build.

Boot Flow

UEFI firmware
  -> EFI/BOOT/BOOTX64.EFI
  -> GRUB signature policy
  -> nucleus.elf
  -> kernel executive early init
  -> scheduler root kernel task
  -> init services
  -> runtime service manager
  -> UI server
  -> desktop/session apps

The kernel and services rely on generated registries for startup policy, desktop entries, runtime launch policy, driver autoload metadata, and Windows system DLL inventory.

Runtime Flow

uiserver -> RuntimeClient -> /run/runtimed.sock -> runtimed
  -> launch desktop id or executable path
  -> create/track console session
  -> snapshot running programs
  -> update launcher/taskbar/window state

The UI server uses runtime snapshots to reconcile visible windows with running programs. Console-hosted programs and Wayland-style windows are presented by the UI server through framebuffer rendering.

Diagnostic Flow

config/rustos.toml
  -> build.rs cfg generation
  -> kernel ring/debugcon and userspace stderr
  -> logs/debugcon.log or --debugcon stdio

Use Logging Guide for logging categories, levels, and output paths.

한국어

Host Flow

cargo xtask build
  -> workspace layering 검사
  -> Multiboot2 nucleus 빌드
  -> nucleus.elf 서명
  -> GRUB EFI boot manager 빌드
  -> userspace services/apps 빌드
  -> modules와 compatibility artifacts 빌드
  -> build/image stage
  -> generated registries 작성

cargo xtask run은 image를 다시 빌드하지 않습니다. 현재 build/image를 QEMU로 실행합니다.

Staged Image Flow

build/artifacts/* + assets/image/* + vendor/*
  -> build/image/EFI/BOOT/BOOTX64.EFI
  -> build/image/nucleus.elf
  -> build/image/nucleus.elf.sig
  -> build/image/services/*
  -> build/image/apps/*
  -> build/image/system/drivers/*
  -> build/image/system/registry/*

stage는 RUSTOS.package.toml manifest를 deployment source of truth로 사용합니다. BOOTX64.EFI는 embedded public key와 check_signatures=enforce가 들어간 grub-mkstandalone 산출물이며, GRUB은 /nucleus.elf.sig/nucleus.elf를 검증할 때만 커널을 로드합니다. generated GRUB EFI binary의 Microsoft/OEM Secure Boot signing은 repository build 밖의 release pipeline 단계입니다.

Boot Flow

UEFI firmware
  -> EFI/BOOT/BOOTX64.EFI
  -> GRUB signature policy
  -> nucleus.elf
  -> kernel executive early init
  -> scheduler root kernel task
  -> init services
  -> runtime service manager
  -> UI server
  -> desktop/session apps

kernel과 service는 startup policy, desktop entry, runtime launch policy, driver autoload metadata, Windows system DLL inventory를 generated registry에서 읽습니다.

Runtime Flow

uiserver -> RuntimeClient -> /run/runtimed.sock -> runtimed
  -> desktop id 또는 executable path launch
  -> console session 생성/추적
  -> running program snapshot
  -> launcher/taskbar/window state 갱신

UI server는 runtime snapshot으로 visible window와 running program을 reconcile합니다. console-hosted program과 Wayland-style window는 framebuffer rendering으로 표시됩니다.

Diagnostic Flow

config/rustos.toml
  -> build.rs cfg generation
  -> kernel ring/debugcon and userspace stderr
  -> logs/debugcon.log or --debugcon stdio

logging category, level, output path는 로깅 가이드를 참고하세요.