Zpět na domů

OptimaOS na Rustu: jednotné jádro pro všechny platformy

OptimaOS — prototyp jádra na Rustu, řešící fragmentaci prostřednictvím runtime profilů. Odděluje mechanismy a politiky, zajišťuje memory safety a postupnou kompatibilitu s Linux ABI. Vhodné pro desktop, servery a Edge.

OptimaOS: Rust-jádro pro desktop a Edge bez forků
Advertisement 728x90

Jednotné jádro OptimaOS v Rustu: architektura pro desktop, servery a Edge

OptimaOS se vyvíjí jako jediné jádro, které podporuje desktopy, servery, Edge zařízení i AI akcelerátory bez nutnosti větvení kódu nebo překompilací. Projekt řeší problém fragmentace: místo mnoha odlišných větví s různými chybami a rozhraními používá jediný binární obraz s dynamickým runtime profilem. Jádro poskytuje mechanizmy, zatímco politiky se konfigurují dynamicky prostřednictvím policy-service.

Do roku 2026 se tradiční jádra — Linux, Windows NT, Darwin — nakopaly technický dluh. Větvení jako Android nebo embedded Linux vyžadují samostatné bezpečnostní audity a regresní testy.

Oddělení mechanismů a politik

Architektura sleduje princip UNIX: jádro poskytuje mechanismy, userspace definuje politiky. Toto je pevně zakotveno v ADR-0002.

Google AdInline article slot

Mechanismy v jádru (nezávislé na profilu):

  • Správa paměti: regiony, mmap/munmap/protect.
  • Plánovač procesů a vláken.
  • IPC šina s typovanými endpointy.
  • Capability graf pro přístup ke zdrojům.
  • Syscall ABI: optima_syscall_v0.

Politiky v runtime profilu:

  • Pravidla přístupu procesů.
  • Konfigurace userspace služeb (síťový stek, parametry).
  • Nastavení plánovače (latence vs propustnost).
  • Povolené vzory syscalls.

Při spuštění se policy soubor aplikuje prostřednictvím runtime API. Jeden binární soubor funguje pro profil home (desktop) i server.

Google AdInline article slot

Výhody Rustu v systémovém programování

Rust byl vybrán kvůli bezpečnosti paměti při kompilaci bez GC. Jádro minimalizuje TCB: #[forbid(unsafe_code)] v kernel-core, nebezpečný kód je povolen pouze v HAL (hardware/mod.rs).

Model ownership je integrován s capability grafem: zdroje jako tokény vlastnictví odpovídají lifetime semantics.

Ekosystém: cargo test, cargo build --target x86_64-unknown-uefi, podpora no_std usnadňuje vývoj operačních systémů.

Google AdInline article slot

Struktura projektu

Rust workspace s crate:

  • kernel-core: provozní engine.
  • linux-compat: most pro Linux ABI (L1/L2).
  • policy-service: správa politik.
  • device-manager: správa zařízení.
  • filesystem-service: souborové systémy.
  • network-service: síť.
  • profile-service: překryvy profilů.

Služby komunikují s jádrem prostřednictvím typovaného IPC a capability, bez přímé závislosti na kernel-core.

Klíčové moduly jádra

| Modul | Účel |

|--------|------|

| runtime.rs | KernelRuntime — stavová stroj životního cyklu. |

| syscall.rs | optima_syscall_v0, struktura Kernel. |

| ipc.rs | IPC v paměti s vlastníkem PID. |

| memory.rs | Regiony paměti, mmap/munmap/protect. |

| scheduler.rs | Plánovač. |

| capability.rs | Graf capability: grant/revoke/transfer. |

| policy.rs | Pravidla a přepsání politik. |

| audit.rs | Auditový záznam. |

| console_transport.rs | UEFI shim ↔ runtime. |

Console Transport a spouštění

Dvouvrstvá architektura (ADR-0003):

  • Fáze A (UEFI shim): transport, diagnostika, vstup/výstup. Neprovádí příkazy.
  • Fáze B (kernel-core): bod spuštění sys.*.

Životní cyklus: BootInit → ShimReady → RuntimeAttach → Interactive → Degraded. Oddělení zjednodušuje ověření: UEFI v boot režimu, runtime samostatně.

Kompatibilita s Linux ABI

linux-compat mapuje Linux syscalls na optima_syscall_v0 postupně, minimalizuje útočný povrch.

L1 (hotovo): clone, exit, nanosleep, mmap, sendmsg, recvmsg, základní epoll.

L2-A (hotovo): životní cyklus fd, poll/epoll_wait.

L2-B (hotovo): masky signálů.

L2-C (hotovo): epoll_ctl(DEL/MOD).

API je ve fázi návrhu, stabilita později. Každá fáze je ověřena testy compatibility matrix.

Plány rozvoje

Prioritní úkoly:

  • Spuštění na reálném x86_64, smoke-testy, metriky výkonu.
  • Dokončení Linux L2, přidání signalfd/eventfd.
  • Android Binder IPC.
  • Win32 L3.
  • GUI: Unicode, vykreslování obrázků.

Cíl: potvrdit hypotézu jednotného jádra bez snížení výkonu.

Co je důležité

  • Jedno jádro bez forků podporuje různé scénáře prostřednictvím runtime profilů.
  • Pevné oddělení mechanismů (jádro) a politik (userspace).
  • Rust s #[forbid(unsafe_code)] zaručuje bezpečnost paměti v TCB.
  • Postupná kompatibilita s Linux ABI: L1/L2 hotovy, ověřené.
  • Dvouvrstvý Console Transport pro bezpečné spouštění.

— Editorial Team

Advertisement 728x90

Číst dál