Prometheus is a minimal OS project built in Rust (no_std) with a deterministic kernel runtime and a semantic event pipeline.
Current focus:
- Reliable boot path (UEFI bootloader -> ELF kernel handoff).
- Deterministic runtime (IRQ/softirq/event routing/dispatch).
- Transvector/Transjector model as a portability spine for future HAL and multi-platform support.
Prometheus is built around this stack:
HAL: minimal hardware-facing primitives (timer/irq/serial/framebuffer).Transjector Layer: normalize raw platform signals into stable semantic events.Deterministic Runtime: route, filter, dispatch, and account events with bounded behavior.
Design constraints:
no_std, no heap allocators in core runtime paths.- Fixed-size buffers and tables.
- Deterministic ordering and bounded work per tick.
- Compact diagnostics through framebuffer + serial logs.
- UEFI bootloader (
x86_64-unknown-uefi) starts. - Bootloader initializes UEFI services and GOP framebuffer.
- Bootloader loads
\EFI\BOOT\KERNEL.ELFfrom FAT. - ELF
PT_LOADsegments are mapped/copied, BSS is zeroed. - Bootloader gets memory map, calls
ExitBootServices. - Control is transferred to kernel entry:
extern "C" fn kernel_main(info: *const BootInfo) -> !
Bootloader expected screen log:
Prometheus Bootloader
GOP OK
Disk OK
Kernel loaded
ExitBootServices OK
Jump to kernel
Bootloader and kernel share a strict ABI contract:
#[repr(C)]
pub struct BootInfo {
pub magic: u64,
pub framebuffer: Framebuffer,
pub memory_map: MemoryMapInfo,
pub rsdp_addr: u64,
}
#[repr(C)]
pub struct Framebuffer {
pub base: u64,
pub size: u64,
pub width: u32,
pub height: u32,
pub stride: u32,
pub format: u32,
}
#[repr(C)]
pub struct MemoryMapInfo {
pub map: *const u8,
pub size: usize,
pub desc_size: usize,
}magic value: 0x534F544345565F56.
Kernel side currently includes:
- BootInfo validation guards (
E01..E06style checks). - Framebuffer text output + serial diagnostics.
- Runtime loop with tick accounting and jitter/deadline monitoring.
- Event transport pipeline:
IRQ/softirq -> Event Queue -> Router -> Mailbox -> Task Dispatch. - Task model (deterministic scheduler skeleton, task states, wake/signal semantics).
- Transvector and Fabric primitives for state merge/write/read rules.
Core event ideas already in project:
- Event classes (
CRIT/HIGH/NORM/LOW) with controlled drain budget. - Per-task subscriptions and fan-out routing.
- Mailbox counters + overflow guard.
- Source and payload tagging for delivered events.
- Latency and deadline accounting with throttled violation logs.
This gives deterministic behavior under load instead of uncontrolled log/event flood.
Main directories:
.
├─ src/ # UEFI bootloader
├─ kernel/ # no_std kernel
│ ├─ src/
│ │ ├─ main.rs
│ │ ├─ runtime.rs
│ │ ├─ kernel_state.rs
│ │ ├─ transvector.rs
│ │ ├─ transjector.rs
│ │ ├─ framebuffer.rs
│ │ ├─ serial.rs
│ │ ├─ log.rs
│ │ └─ demo.rs
├─ run.ps1 # build + run orchestration (QEMU/OVMF/ESP)
└─ dist/ # generated runtime artifacts/logs
Bootloader:
cargo build --releaseKernel:
cd kernel
cargo build --releaseUse project runner script:
.\run.ps1It performs:
- Release build of bootloader and kernel.
- ESP layout preparation:
\EFI\BOOT\BOOTX64.EFI\EFI\BOOT\KERNEL.ELF - QEMU launch with OVMF firmware.
- Log capture into
dist\logs\.
Current state is a working foundation, not a general-purpose OS yet:
- Boot path is operational in QEMU + OVMF.
- Kernel handoff and runtime are alive and instrumented.
- Event-driven architecture is in active incremental milestones.
- Portability plan is oriented around HAL + Transjector normalization, keeping runtime semantics stable across platforms.
This project is proprietary and distributed under the terms of LICENSE.
Unauthorized use, copying, modification, and redistribution are prohibited.