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.
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.
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ů.
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
Zatím žádné komentáře.