YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Asolaria OS
Toolchain rule (operator, global β no exceptions)
Rust 1.81 with clippy. Integer arithmetic and ternary (trits) only β never float.
Pinned in rust-toolchain.toml (channel = "1.81.0", components = ["clippy", "rustfmt"]),
declared as rust-version = "1.81" in every Cargo.toml, and enforced in CI by
cargo clippy --all-targets -- -D warnings plus a hard grep that fails the build on any
f32/f64 in src/ or tests/.
Any receipt in this repository naming a toolchain other than 1.81 records a run made outside the rule. It is retained as history, not as the toolchain of record.
A real operating system on bare metal, in pure Rust. Not a hosted app β a #![no_std] #![no_main] UEFI microkernel that boots the machine directly, with no Windows or Linux underneath.
The whole system, one repo. Clone it, build the bootable .efi, run it in QEMU, boot it on real hardware.
What's in here
kernel/β the OS itself.kernel/bootβ the#![no_std] #![no_main]UEFI application (x86_64-unknown-uefi) β producesasolaria-os.efi, a bootable EFI binary.kernel/coreβ the microkernel:pid,syscall,vfs,crypto(ed25519),frame_alloc,spawn_gate,sign_gate,agent_runtime,bus_fabric,glyph_genesis,tier,link_auth, β¦kernel/scriptsβbuild-img.sh(build the.efi),qemu-test.sh(boot it in QEMU),sbom.sh.
surface/β the ASI OS human front-end (also pure Rust): terminal shells, a live fabric status strip, your own local key. The userland you see.kernel/rust-toolchain.tomlβ pins Rust 1.81 so it builds reproducibly (the crypto deps don't compile on the newest rustc β the one gotcha, handled for you).
Build + run in QEMU (no hardware needed)
Requires rustup (the pin fetches 1.81 automatically) and qemu-system-x86_64.
git clone https://github.com/JesseBrown1980/asolaria-os
cd asolaria-os/kernel
cargo build --release --target x86_64-unknown-uefi --bin asolaria-os
# -> target/x86_64-unknown-uefi/release/asolaria-os.efi (a real bootable OS)
scripts/qemu-test.sh # boots the .efi in QEMU
(scripts/build-img.sh x86_64 does the build and drops a sha-stamped copy in kernel/dist/.)
Boot it on your own metal
- Build
asolaria-os.efi(above). - Make a bootable USB β see
deploy/. The simple, safe way: a small FAT32 partition marked as an EFI System Partition, with the.eficopied toEFI/BOOT/BOOTX64.EFI. - Reboot β boot menu (often F12) β pick the UEFI USB. Disable Secure Boot if the
.efiis unsigned. - Asolaria boots on metal, before anything else. Unplug the USB to boot your normal OS again β nothing on your internal disk is touched.
The surface
surface/ runs the ASI OS front-end. On a hosted OS: sh surface/scripts/install.sh β http://127.0.0.1:4600. You mint your own local key; nothing leaves your machine. (See surface/README.md and surface/FABRIC-NODE.md for a full fabric node β recall + the 8-byte host.)
Honest boundary
- Builds + boots in QEMU β proven:
asolaria-os.eficompiles with 1.81 and QEMU-boots. - Boots on real hardware β the same
.efiis armed on the author's USB; the first bare-metal boot on any given machine is the real test (UEFI + Secure-Boot behavior varies by firmware). It is non-destructive β a removable USB; unplug it to go back. - The deeper architecture docs (driver model, userspace ABI, phase history) live in asolaria-federation-1024, the full workspace this kernel is part of.
License
MIT OR Apache-2.0. Build your own.